summaryrefslogtreecommitdiffstats
path: root/roles/caption/templates
diff options
context:
space:
mode:
Diffstat (limited to 'roles/caption/templates')
-rwxr-xr-xroles/caption/templates/process-captions.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/roles/caption/templates/process-captions.py b/roles/caption/templates/process-captions.py
index f3f317d..6f6b013 100755
--- a/roles/caption/templates/process-captions.py
+++ b/roles/caption/templates/process-captions.py
@@ -47,6 +47,7 @@ TRIM_AUDIO = False
MODEL = os.environ.get('MODEL', 'large') # Set to tiny for testing
WORK_DIR = "{{ emacsconf_caption_dir }}"
JSON_FILE = os.path.join(WORK_DIR, 'talks.json')
+DO_SRV2 = False
# ----------------------------------------------------------------
@@ -94,7 +95,7 @@ def get_files_to_work_on(directory):
else:
val['base'] = os.path.join(os.path.dirname(val['video'] or val['audio']),
base_name(val['video'] or val['audio']))
- if ALWAYS or (not 'vtt' in val or not 'srv2' in val):
+ if ALWAYS or (not 'vtt' in val or (DO_SRV2 and not 'srv2' in val)):
if not 'audio' in val and 'video' in val:
# No audio, need to convert it
val = extract_audio(val)
@@ -141,6 +142,8 @@ def generate_captions(work):
result = clean_up_timestamps(result)
with open(new_file, 'w') as vtt:
whisper.utils.write_vtt(result['segments'], file=vtt)
+ with open(work['base'] + '.txt')
+ whisper.utils.write_txt(result['segments'], file=txt)
work['vtt'] = new_file
if 'srv2' in work: del work['srv2']
return work
@@ -209,7 +212,7 @@ if len(needs_work) > 0:
if work['audio']:
if ALWAYS or not 'vtt' in work:
work = generate_captions(work)
- if ALWAYS or not 'srv2' in work:
+ if DO_SRV2 and (ALWAYS or not 'srv2' in work):
work = generate_srv2(work)
# print("Aligning words", audio_file, datetime.datetime.now())
# word_cuts = align_words(cuts)