Spaces:
Sleeping
Sleeping
Eason Lu
commited on
Commit
·
3cc60a3
1
Parent(s):
ea307e6
solving conflict
Browse filesFormer-commit-id: f1806577d7055d0cc9b0f3a06cebc11d99a400f9
- SRT.py +7 -5
- pipeline.py +9 -31
SRT.py
CHANGED
|
@@ -109,7 +109,6 @@ class SRT_script():
|
|
| 109 |
|
| 110 |
self.segments = segments # need memory release?
|
| 111 |
|
| 112 |
-
|
| 113 |
|
| 114 |
def set_translation(self, translate:str, id_range:tuple, model, video_name, video_link=None):
|
| 115 |
start_seg_id = id_range[0]
|
|
@@ -196,15 +195,18 @@ class SRT_script():
|
|
| 196 |
seg.translation = lines[i].split(":" or ":")[1]
|
| 197 |
except:
|
| 198 |
seg.translation = lines[i]
|
| 199 |
-
|
| 200 |
-
pass
|
| 201 |
|
| 202 |
def split_seg(self, seg, threshold):
|
| 203 |
# evenly split seg to 2 parts and add new seg into self.segments
|
| 204 |
-
|
| 205 |
-
|
|
|
|
|
|
|
|
|
|
| 206 |
if seg.translation[0] == ',':
|
| 207 |
seg.translation = seg.translation[1:]
|
|
|
|
| 208 |
source_text = seg.source_text
|
| 209 |
translation = seg.translation
|
| 210 |
src_commas = [m.start() for m in re.finditer(',', source_text)]
|
|
|
|
| 109 |
|
| 110 |
self.segments = segments # need memory release?
|
| 111 |
|
|
|
|
| 112 |
|
| 113 |
def set_translation(self, translate:str, id_range:tuple, model, video_name, video_link=None):
|
| 114 |
start_seg_id = id_range[0]
|
|
|
|
| 195 |
seg.translation = lines[i].split(":" or ":")[1]
|
| 196 |
except:
|
| 197 |
seg.translation = lines[i]
|
| 198 |
+
|
|
|
|
| 199 |
|
| 200 |
def split_seg(self, seg, threshold):
|
| 201 |
# evenly split seg to 2 parts and add new seg into self.segments
|
| 202 |
+
|
| 203 |
+
# ignore the initial comma to solve the recursion problem
|
| 204 |
+
if len(seg.source_text) > 2:
|
| 205 |
+
if seg.source_text[:2] == ', ':
|
| 206 |
+
seg.source_text = seg.source_text[2:]
|
| 207 |
if seg.translation[0] == ',':
|
| 208 |
seg.translation = seg.translation[1:]
|
| 209 |
+
|
| 210 |
source_text = seg.source_text
|
| 211 |
translation = seg.translation
|
| 212 |
src_commas = [m.start() for m in re.finditer(',', source_text)]
|
pipeline.py
CHANGED
|
@@ -133,24 +133,17 @@ else:
|
|
| 133 |
|
| 134 |
# use stable-whisper
|
| 135 |
model = stable_whisper.load_model('base')
|
| 136 |
-
transcript = model.transcribe(audio_path
|
| 137 |
-
(
|
| 138 |
-
|
| 139 |
-
|
| 140 |
-
|
| 141 |
-
|
| 142 |
-
|
| 143 |
-
)
|
| 144 |
-
# transcript.to_srt_vtt(srt_file_en)
|
| 145 |
transcript = transcript.to_dict()
|
| 146 |
srt = SRT_script(transcript['segments']) # read segments to SRT class
|
| 147 |
|
| 148 |
-
#Write SRT file
|
| 149 |
-
|
| 150 |
-
# from whisper.utils import WriteSRT
|
| 151 |
-
# with open(srt_file_en, 'w', encoding="utf-8") as f:
|
| 152 |
-
# writer = WriteSRT(RESULT_PATH)
|
| 153 |
-
# writer.write_result(transcript, f)
|
| 154 |
else:
|
| 155 |
srt = SRT_script.parse_from_srt_file(srt_file_en)
|
| 156 |
|
|
@@ -241,21 +234,6 @@ def get_response(model_name, sentence):
|
|
| 241 |
)
|
| 242 |
|
| 243 |
return response['choices'][0]['message']['content'].strip()
|
| 244 |
-
|
| 245 |
-
# if model_name == "text-davinci-003":
|
| 246 |
-
# prompt = f"Please help me translate this into Chinese:\n\n{s}\n\n"
|
| 247 |
-
# # print(prompt)
|
| 248 |
-
# response = openai.Completion.create(
|
| 249 |
-
# model=model_name,
|
| 250 |
-
# prompt=prompt,
|
| 251 |
-
# temperature=0.1,
|
| 252 |
-
# max_tokens=2000,
|
| 253 |
-
# top_p=1.0,
|
| 254 |
-
# frequency_penalty=0.0,
|
| 255 |
-
# presence_penalty=0.0
|
| 256 |
-
# )
|
| 257 |
-
# return response['choices'][0]['text'].strip()
|
| 258 |
-
pass
|
| 259 |
|
| 260 |
|
| 261 |
# Translate and save
|
|
@@ -283,7 +261,7 @@ for sentence, range in tqdm(zip(script_arr, range_arr)):
|
|
| 283 |
|
| 284 |
srt.check_len_and_split()
|
| 285 |
srt.write_srt_file_translate(f"{RESULT_PATH}/{VIDEO_NAME}/{VIDEO_NAME}_zh.srt")
|
| 286 |
-
|
| 287 |
|
| 288 |
if not args.only_srt:
|
| 289 |
assSub_zh = srt2ass(f"{RESULT_PATH}/{VIDEO_NAME}/{VIDEO_NAME}_zh.srt", "default", "No", "Modest")
|
|
|
|
| 133 |
|
| 134 |
# use stable-whisper
|
| 135 |
model = stable_whisper.load_model('base')
|
| 136 |
+
transcript = model.transcribe(audio_path)
|
| 137 |
+
# (
|
| 138 |
+
# transcript
|
| 139 |
+
# .split_by_punctuation(['.', '。', '?'])
|
| 140 |
+
# .merge_by_gap(.15, max_words=3)
|
| 141 |
+
# .merge_by_punctuation([' '])
|
| 142 |
+
# .split_by_punctuation(['.', '。', '?'])
|
| 143 |
+
# )
|
|
|
|
| 144 |
transcript = transcript.to_dict()
|
| 145 |
srt = SRT_script(transcript['segments']) # read segments to SRT class
|
| 146 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 147 |
else:
|
| 148 |
srt = SRT_script.parse_from_srt_file(srt_file_en)
|
| 149 |
|
|
|
|
| 234 |
)
|
| 235 |
|
| 236 |
return response['choices'][0]['message']['content'].strip()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 237 |
|
| 238 |
|
| 239 |
# Translate and save
|
|
|
|
| 261 |
|
| 262 |
srt.check_len_and_split()
|
| 263 |
srt.write_srt_file_translate(f"{RESULT_PATH}/{VIDEO_NAME}/{VIDEO_NAME}_zh.srt")
|
| 264 |
+
srt.write_srt_file_bilingual(f"{RESULT_PATH}/{VIDEO_NAME}/{VIDEO_NAME}_bi.srt")
|
| 265 |
|
| 266 |
if not args.only_srt:
|
| 267 |
assSub_zh = srt2ass(f"{RESULT_PATH}/{VIDEO_NAME}/{VIDEO_NAME}_zh.srt", "default", "No", "Modest")
|