Spaces:
Running
Running
jhj0517
commited on
Commit
·
eeb932b
1
Parent(s):
c7918de
Refactor parameters
Browse files- modules/translation/deepl_api.py +21 -24
modules/translation/deepl_api.py
CHANGED
@@ -98,8 +98,8 @@ class DeepLAPI:
|
|
98 |
fileobjs: list,
|
99 |
source_lang: str,
|
100 |
target_lang: str,
|
101 |
-
is_pro: bool,
|
102 |
-
add_timestamp: bool,
|
103 |
progress=gr.Progress()) -> list:
|
104 |
"""
|
105 |
Translate subtitle files using DeepL API
|
@@ -145,31 +145,22 @@ class DeepLAPI:
|
|
145 |
if file_ext == ".srt":
|
146 |
parsed_dicts = parse_srt(file_path=file_path)
|
147 |
|
148 |
-
batch_size = self.max_text_batch_size
|
149 |
-
for batch_start in range(0, len(parsed_dicts), batch_size):
|
150 |
-
batch_end = min(batch_start + batch_size, len(parsed_dicts))
|
151 |
-
sentences_to_translate = [dic["sentence"] for dic in parsed_dicts[batch_start:batch_end]]
|
152 |
-
translated_texts = self.request_deepl_translate(auth_key, sentences_to_translate, source_lang,
|
153 |
-
target_lang, is_pro)
|
154 |
-
for i, translated_text in enumerate(translated_texts):
|
155 |
-
parsed_dicts[batch_start + i]["sentence"] = translated_text["text"]
|
156 |
-
progress(batch_end / len(parsed_dicts), desc="Translating..")
|
157 |
-
|
158 |
-
subtitle = get_serialized_srt(parsed_dicts)
|
159 |
-
|
160 |
elif file_ext == ".vtt":
|
161 |
parsed_dicts = parse_vtt(file_path=file_path)
|
162 |
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
|
|
|
|
|
|
|
173 |
subtitle = get_serialized_vtt(parsed_dicts)
|
174 |
|
175 |
if add_timestamp:
|
@@ -196,8 +187,14 @@ class DeepLAPI:
|
|
196 |
text: list,
|
197 |
source_lang: str,
|
198 |
target_lang: str,
|
199 |
-
is_pro: bool):
|
200 |
"""Request API response to DeepL server"""
|
|
|
|
|
|
|
|
|
|
|
|
|
201 |
|
202 |
url = 'https://api.deepl.com/v2/translate' if is_pro else 'https://api-free.deepl.com/v2/translate'
|
203 |
headers = {
|
|
|
98 |
fileobjs: list,
|
99 |
source_lang: str,
|
100 |
target_lang: str,
|
101 |
+
is_pro: bool = False,
|
102 |
+
add_timestamp: bool = True,
|
103 |
progress=gr.Progress()) -> list:
|
104 |
"""
|
105 |
Translate subtitle files using DeepL API
|
|
|
145 |
if file_ext == ".srt":
|
146 |
parsed_dicts = parse_srt(file_path=file_path)
|
147 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
148 |
elif file_ext == ".vtt":
|
149 |
parsed_dicts = parse_vtt(file_path=file_path)
|
150 |
|
151 |
+
batch_size = self.max_text_batch_size
|
152 |
+
for batch_start in range(0, len(parsed_dicts), batch_size):
|
153 |
+
batch_end = min(batch_start + batch_size, len(parsed_dicts))
|
154 |
+
sentences_to_translate = [dic["sentence"] for dic in parsed_dicts[batch_start:batch_end]]
|
155 |
+
translated_texts = self.request_deepl_translate(auth_key, sentences_to_translate, source_lang,
|
156 |
+
target_lang, is_pro)
|
157 |
+
for i, translated_text in enumerate(translated_texts):
|
158 |
+
parsed_dicts[batch_start + i]["sentence"] = translated_text["text"]
|
159 |
+
progress(batch_end / len(parsed_dicts), desc="Translating..")
|
160 |
|
161 |
+
if file_ext == ".srt":
|
162 |
+
subtitle = get_serialized_srt(parsed_dicts)
|
163 |
+
elif file_ext == ".vtt":
|
164 |
subtitle = get_serialized_vtt(parsed_dicts)
|
165 |
|
166 |
if add_timestamp:
|
|
|
187 |
text: list,
|
188 |
source_lang: str,
|
189 |
target_lang: str,
|
190 |
+
is_pro: bool = False):
|
191 |
"""Request API response to DeepL server"""
|
192 |
+
if source_lang not in list(DEEPL_AVAILABLE_SOURCE_LANGS.keys()):
|
193 |
+
raise ValueError(f"Source language {source_lang} is not supported."
|
194 |
+
f"Use one of {list(DEEPL_AVAILABLE_SOURCE_LANGS.keys())}")
|
195 |
+
if target_lang not in list(DEEPL_AVAILABLE_TARGET_LANGS.keys()):
|
196 |
+
raise ValueError(f"Target language {target_lang} is not supported."
|
197 |
+
f"Use one of {list(DEEPL_AVAILABLE_TARGET_LANGS.keys())}")
|
198 |
|
199 |
url = 'https://api.deepl.com/v2/translate' if is_pro else 'https://api-free.deepl.com/v2/translate'
|
200 |
headers = {
|