Skip to content

Commit 6ce24da

Browse files
committed
add the option to use adjacent cues as prompts during transcription
1 parent 5967c8a commit 6ce24da

File tree

9 files changed

+66
-88
lines changed

9 files changed

+66
-88
lines changed

Makefile

+24-65
Original file line numberDiff line numberDiff line change
@@ -28,28 +28,11 @@ BROWSER := python -c "$$BROWSER_PYSCRIPT"
2828

2929
install:
3030
if [ ! -e ".$(PYTHON)" ]; then ~/.pyenv/versions/$(PYTHON)/bin/python3 -m venv .$(PYTHON); fi
31-
.$(PYTHON)/bin/pip install --upgrade pip setuptools wheel; \
32-
cat requirements.txt | xargs -L 1 .$(PYTHON)/bin/pip install; \
33-
cat requirements-stretch.txt | xargs -L 1 .$(PYTHON)/bin/pip install; \
34-
cat requirements-llm.txt | xargs -L 1 .$(PYTHON)/bin/pip install; \
35-
cat requirements-dev.txt | xargs -L 1 .$(PYTHON)/bin/pip install; \
3631
.$(PYTHON)/bin/pip install -e . --ignore-installed
37-
cp ./bin/subaligner_1pass .$(PYTHON)/bin/subaligner_1pass
38-
cp ./bin/subaligner_2pass .$(PYTHON)/bin/subaligner_2pass
39-
cp ./bin/subaligner_batch .$(PYTHON)/bin/subaligner_batch
40-
cp ./bin/subaligner_convert .$(PYTHON)/bin/subaligner_convert
41-
cp ./bin/subaligner_train .$(PYTHON)/bin/subaligner_train
42-
cp ./bin/subaligner_tune .$(PYTHON)/bin/subaligner_tune
43-
cp ./bin/subaligner .$(PYTHON)/bin/subaligner
32+
.$(PYTHON)/bin/pip install -e ".[harmony]"
4433

4534
uninstall:
46-
rm -f .$(PYTHON)/bin/subaligner
47-
rm -f .$(PYTHON)/bin/subaligner_1pass
48-
rm -f .$(PYTHON)/bin/subaligner_2pass
49-
rm -f .$(PYTHON)/bin/subaligner_batch
50-
rm -f .$(PYTHON)/bin/subaligner_convert
51-
rm -f .$(PYTHON)/bin/subaligner_train
52-
rm -f .$(PYTHON)/bin/subaligner_tune
35+
.$(PYTHON)/bin/pip uninstall subaligner
5336

5437
install-basic:
5538
.$(PYTHON)/bin/pip install -e '.' --no-cache-dir
@@ -71,44 +54,33 @@ install-harmony:
7154

7255
build-gzip:
7356
mkdir -p dist
74-
tar -czf dist/subligner.tar.gz subaligner bin requirements.txt setup.py README.md LICENCE
57+
tar -czf dist/subligner.tar.gz subaligner bin pyproject.toml README.md LICENCE
7558

7659
build-rpm:
7760
mkdir -p BUILD RPMS SRPMS SOURCES BUILDROOT
78-
tar -czf SOURCES/subligner.tar.gz subaligner bin requirements.txt setup.py README.md LICENCE
61+
tar -czf SOURCES/subligner.tar.gz subaligner bin pyproject.toml README.md LICENCE
7962

8063
test:
8164
if [ ! -e ".$(PYTHON)" ]; then ~/.pyenv/versions/$(PYTHON)/bin/python3 -m venv .$(PYTHON); fi
82-
.$(PYTHON)/bin/pip install --upgrade pip setuptools wheel; \
83-
cat requirements.txt | xargs -L 1 .$(PYTHON)/bin/pip install; \
84-
cat requirements-stretch.txt | xargs -L 1 .$(PYTHON)/bin/pip install; \
85-
cat requirements-llm.txt | xargs -L 1 .$(PYTHON)/bin/pip install; \
86-
cat requirements-dev.txt | xargs -L 1 .$(PYTHON)/bin/pip install
65+
.$(PYTHON)/bin/pip install -e . --ignore-installed
66+
.$(PYTHON)/bin/pip install -e ".[dev]"
8767
PYTHONPATH=. .$(PYTHON)/bin/python -m unittest discover
88-
-.$(PYTHON)/bin/pycodestyle subaligner tests examples misc bin/subaligner bin/subaligner_1pass bin/subaligner_2pass bin/subaligner_batch bin/subaligner_convert bin/subaligner_train bin/subaligner_tune setup.py --ignore=E203,E501,W503 --exclude="subaligner/lib"
68+
-.$(PYTHON)/bin/pycodestyle subaligner tests examples misc bin/subaligner bin/subaligner_1pass bin/subaligner_2pass bin/subaligner_batch bin/subaligner_convert bin/subaligner_train bin/subaligner_tune setup.py --ignore=E203,E501,E902,W503 --exclude="subaligner/lib"
8969

9070
test-all: ## run tests on every Python version with tox
9171
.$(PYTHON)/bin/tox
9272

9373
test-int: ## integration test
9474
if [ ! -e ".$(PYTHON)" ]; then ~/.pyenv/versions/$(PYTHON)/bin/python3 -m venv .$(PYTHON); fi
95-
.$(PYTHON)/bin/pip install --upgrade pip setuptools wheel; \
96-
cat requirements.txt | xargs -L 1 .$(PYTHON)/bin/pip install; \
97-
cat requirements-stretch.txt | xargs -L 1 .$(PYTHON)/bin/pip install; \
98-
cat requirements-llm.txt | xargs -L 1 .$(PYTHON)/bin/pip install; \
99-
cat requirements-dev.txt | xargs -L 1 .$(PYTHON)/bin/pip install
10075
.$(PYTHON)/bin/pip install -e . --ignore-installed
101-
( \
102-
source .$(PYTHON)/bin/activate; \
103-
radish -b tests/integration/radish tests/integration/feature; \
104-
)
76+
.$(PYTHON)/bin/pip install -e ".[dev]"
77+
source .$(PYTHON)/bin/activate
78+
radish -b tests/integration/radish tests/integration/feature;
10579

10680
pydoc: clean-doc ## generate pydoc HTML documentation based on docstrings
10781
if [ ! -e ".$(PYTHON)" ]; then ~/.pyenv/versions/$(PYTHON)/bin/python3 -m venv .$(PYTHON); fi
108-
.$(PYTHON)/bin/pip install --upgrade pip setuptools wheel; \
109-
cat requirements.txt | xargs -L 1 .$(PYTHON)/bin/pip install; \
110-
cat requirements-stretch.txt | xargs -L 1 .$(PYTHON)/bin/pip install; \
111-
cat requirements-llm.txt | xargs -L 1 .$(PYTHON)/bin/pip install; \
82+
.$(PYTHON)/bin/pip install -e . --ignore-installed
83+
.$(PYTHON)/bin/pip install -e ".[dev]"
11284
.$(PYTHON)/bin/python -m pydoc -w subaligner; mv subaligner.html docs/index.html
11385
.$(PYTHON)/bin/python -m pydoc -w subaligner.embedder; mv subaligner.embedder.html docs
11486
.$(PYTHON)/bin/python -m pydoc -w subaligner.exception; mv subaligner.exception.html docs
@@ -128,32 +100,30 @@ pydoc: clean-doc ## generate pydoc HTML documentation based on docstrings
128100

129101
coverage: ## check code coverage quickly with the default Python
130102
if [ ! -e ".$(PYTHON)" ]; then ~/.pyenv/versions/$(PYTHON)/bin/python3 -m venv .$(PYTHON); fi
131-
.$(PYTHON)/bin/pip install --upgrade pip setuptools wheel; \
132-
cat requirements.txt | xargs -L 1 .$(PYTHON)/bin/pip install; \
133-
cat requirements-stretch.txt | xargs -L 1 .$(PYTHON)/bin/pip install; \
134-
cat requirements-llm.txt | xargs -L 1 .$(PYTHON)/bin/pip install; \
135-
cat requirements-dev.txt | xargs -L 1 .$(PYTHON)/bin/pip install
103+
.$(PYTHON)/bin/pip install -e . --ignore-installed
104+
.$(PYTHON)/bin/pip install -e ".[dev]"
136105
.$(PYTHON)/bin/coverage run --source subaligner -m unittest discover
137106
.$(PYTHON)/bin/coverage report
138107
.$(PYTHON)/bin/coverage html
139108
$(BROWSER) htmlcov/index.html
140109

141110
manual: clean-manual ## generate manual pages
142111
if [ ! -e ".$(PYTHON)" ]; then ~/.pyenv/versions/$(PYTHON)/bin/python3 -m venv .$(PYTHON); fi
143-
.$(PYTHON)/bin/pip install --upgrade pip setuptools wheel; \
144-
cat requirements-site.txt | xargs -L 1 .$(PYTHON)/bin/pip install; \
145-
SPHINXAPIDOC=../.$(PYTHON)/bin/sphinx-apidoc SPHINXBUILD=../.$(PYTHON)/bin/sphinx-build make -C ./site html; \
146-
.$(PYTHON)/bin/python -m sphinx -T -b html -d ./site/build/doctrees -D language=en ./site/source ./site/build/html; \
112+
.$(PYTHON)/bin/pip install -e . --ignore-installed
113+
.$(PYTHON)/bin/pip install -e ".[dev]"
114+
SPHINXAPIDOC=../.$(PYTHON)/bin/sphinx-apidoc SPHINXBUILD=../.$(PYTHON)/bin/sphinx-build make -C ./site html
115+
.$(PYTHON)/bin/python -m sphinx -T -b html -d ./site/build/doctrees -D language=en ./site/source ./site/build/html
147116
$(BROWSER) ./site/build/html/index.html
148117

149118
test-dist:
150119
if [ ! -e ".$(PYTHON)" ]; then ~/.pyenv/versions/$(PYTHON)/bin/python3 -m venv .$(PYTHON); fi
151-
.$(PYTHON)/bin/pip install --upgrade pip setuptools wheel; \
152120
.$(PYTHON)/bin/pip install -e .
153121

154122
dist: clean-dist test-dist
155-
cat requirements-dev.txt | xargs -L 1 .$(PYTHON)/bin/pip install; \
156-
.$(PYTHON)/bin/python setup.py sdist bdist_wheel
123+
.$(PYTHON)/bin/pip install -e . --ignore-installed
124+
.$(PYTHON)/bin/pip install -e ".[dev]"
125+
.$(PYTHON)/bin/pip install build
126+
.$(PYTHON)/bin/python -m build --sdist --wheel
157127

158128
release:
159129
.$(PYTHON)/bin/twine upload dist/*
@@ -164,22 +134,11 @@ pipenv-install:
164134

165135
profile:
166136
if [ ! -e ".$(PYTHON)" ]; then ~/.pyenv/versions/$(PYTHON)/bin/python3 -m venv .$(PYTHON); fi
167-
.$(PYTHON)/bin/pip install --upgrade pip setuptools wheel; \
168-
cat requirements.txt | xargs -L 1 .$(PYTHON)/bin/pip install; \
169-
cat requirements-stretch.txt | xargs -L 1 .$(PYTHON)/bin/pip install; \
170-
cat requirements-llm.txt | xargs -L 1 .$(PYTHON)/bin/pip install; \
171-
cat requirements-dev.txt | xargs -L 1 .$(PYTHON)/bin/pip install; \
137+
.$(PYTHON)/bin/pip install -e . --ignore-installed
138+
.$(PYTHON)/bin/pip install -e ".[dev]"
172139
.$(PYTHON)/bin/python -c "import misc.profiler; misc.profiler.generate_profiles()"
173140
.$(PYTHON)/bin/kernprof -v -l ./misc/profiler.py
174141

175-
app: clean-wheels
176-
if [ ! -e ".$(PYTHON)" ]; then ~/.pyenv/versions/$(PYTHON)/bin/python3 -m venv .$(PYTHON); fi
177-
.$(PYTHON)/bin/pip install --upgrade pip setuptools wheel; \
178-
cat requirements-dev.txt | xargs -L 1 .$(PYTHON)/bin/pip install; \
179-
.$(PYTHON)/bin/pip wheel --no-cache-dir --wheel-dir=./wheels -r requirements.txt -r requirements-stretch.txt -r requirements-llm.txt; \
180-
STRETCH_OFF=True .$(PYTHON)/bin/python setup.py bdist_wheel -d ./wheels; \
181-
.$(PYTHON)/bin/pex subaligner==$(SUBALIGNER_VERSION) --repo=./wheels --platform $(PLATFORM) --no-pypi --no-build --python-shebang="/usr/bin/env python3" -e subaligner -o subaligner-$(PLATFORM).app; \
182-
183142
docker-build:
184143
docker build --build-arg RELEASE_VERSION=$(SUBALIGNER_VERSION) -f docker/Dockerfile-Ubuntu20 .
185144
docker build --build-arg RELEASE_VERSION=$(SUBALIGNER_VERSION) -f docker/Dockerfile-Ubuntu22 .

README.md

+5-4
Original file line numberDiff line numberDiff line change
@@ -105,18 +105,19 @@ $ subaligner -m transcribe -v video.mp4 -ml eng -mr whisper -mf small -o subtitl
105105
$ subaligner -m transcribe -v video.mp4 -ml zho -mr whisper -mf medium -o subtitle_aligned.srt
106106
$ subaligner -m transcribe -v video.mp4 -ml eng -mr whisper -mf turbo -ip "your initial prompt" -o subtitle_aligned.srt
107107
$ subaligner -m transcribe -v video.mp4 -s subtitle.srt -ml eng -mr whisper -mf turbo -o subtitle_aligned.srt
108+
$ subaligner -m transcribe -v video.mp4 -s subtitle.srt -upp -ml eng -mr whisper -mf turbo -o subtitle_aligned.srt
108109
```
109110
```
110111
# Alignment on segmented plain texts (double newlines as the delimiter)
111112
112-
$ subaligner -m script -v test.mp4 -s subtitle.txt -o subtitle_aligned.srt
113+
$ subaligner -m script -v video.mp4 -s subtitle.txt -o subtitle_aligned.srt
113114
$ subaligner -m script -v https://example.com/video.mp4 -s https://example.com/subtitle.txt -o subtitle_aligned.srt
114115
```
115116
```
116117
# Alignment on multiple subtitles against the single media file
117118
118-
$ subaligner -m script -v test.mp4 -s subtitle_lang_1.txt -s subtitle_lang_2.txt
119-
$ subaligner -m script -v test.mp4 -s subtitle_lang_1.txt subtitle_lang_2.txt
119+
$ subaligner -m script -v video.mp4 -s subtitle_lang_1.txt -s subtitle_lang_2.txt
120+
$ subaligner -m script -v video.mp4 -s subtitle_lang_1.txt subtitle_lang_2.txt
120121
```
121122
```
122123
# Alignment on embedded subtitles
@@ -130,7 +131,7 @@ $ subaligner -m dual -v video.mkv -s embedded:stream_index=0 -o subtitle_aligned
130131
$ subaligner --languages
131132
$ subaligner -m single -v video.mp4 -s subtitle.srt -t src,tgt
132133
$ subaligner -m dual -v video.mp4 -s subtitle.srt -t src,tgt
133-
$ subaligner -m script -v test.mp4 -s subtitle.txt -o subtitle_aligned.srt -t src,tgt
134+
$ subaligner -m script -v video.mp4 -s subtitle.txt -o subtitle_aligned.srt -t src,tgt
134135
$ subaligner -m dual -v video.mp4 -s subtitle.srt -tr helsinki-nlp -o subtitle_aligned.srt -t src,tgt
135136
$ subaligner -m dual -v video.mp4 -s subtitle.srt -tr facebook-mbart -tf large -o subtitle_aligned.srt -t src,tgt
136137
$ subaligner -m dual -v video.mp4 -s subtitle.srt -tr facebook-m2m100 -tf small -o subtitle_aligned.srt -t src,tgt

pyproject.toml

+1
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ dependencies = [
5454
"pbr==4.0.2",
5555
"pkgconfig~=1.5.5",
5656
"pluggy==0.13.1",
57+
"psutil~=7.0.0",
5758
"pyasn1==0.4.8",
5859
"pyasn1-modules==0.2.7",
5960
"pybind11~=2.11.1",

site/source/usage.rst

+5-4
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,17 @@ Make sure you have got the virtual environment activated upfront.
2828
(.venv) $ subaligner -m transcribe -v video.mp4 -ml zho -mr whisper -mf medium -o subtitle_aligned.srt
2929
(.venv) $ subaligner -m transcribe -v video.mp4 -ml eng -mr whisper -mf turbo -ip "your initial prompt" -o subtitle_aligned.srt
3030
(.venv) $ subaligner -m transcribe -v video.mp4 -s subtitle.srt -ml eng -mr whisper -mf turbo -o subtitle_aligned.srt
31+
(.venv) $ subaligner -m transcribe -v video.mp4 -s subtitle.srt -upp -ml eng -mr whisper -mf turbo -o subtitle_aligned.srt
3132

3233
**Alignment on segmented plain texts (double newlines as the delimiter)**::
3334

34-
(.venv) $ subaligner -m script -v test.mp4 -s subtitle.txt -o subtitle_aligned.srt
35+
(.venv) $ subaligner -m script -v video.mp4 -s subtitle.txt -o subtitle_aligned.srt
3536
(.venv) $ subaligner -m script -v https://example.com/video.mp4 -s https://example.com/subtitle.txt -o subtitle_aligned.srt
3637

3738
**Alignment on multiple subtitles against the single media file**::
3839

39-
(.venv) $ subaligner -m script -v test.mp4 -s subtitle_lang_1.txt -s subtitle_lang_2.txt
40-
(.venv) $ subaligner -m script -v test.mp4 -s subtitle_lang_1.txt subtitle_lang_2.txt
40+
(.venv) $ subaligner -m script -v video.mp4 -s subtitle_lang_1.txt -s subtitle_lang_2.txt
41+
(.venv) $ subaligner -m script -v video.mp4 -s subtitle_lang_1.txt subtitle_lang_2.txt
4142

4243

4344
**Alignment on embedded subtitles**::
@@ -50,7 +51,7 @@ Make sure you have got the virtual environment activated upfront.
5051
(.venv) $ subaligner --languages
5152
(.venv) $ subaligner -m single -v video.mp4 -s subtitle.srt -t src,tgt
5253
(.venv) $ subaligner -m dual -v video.mp4 -s subtitle.srt -t src,tgt
53-
(.venv) $ subaligner -m script -v test.mp4 -s subtitle.txt -o subtitle_aligned.srt -t src,tgt
54+
(.venv) $ subaligner -m script -v video.mp4 -s subtitle.txt -o subtitle_aligned.srt -t src,tgt
5455
(.venv) $ subaligner -m dual -v video.mp4 -s subtitle.srt -tr helsinki-nlp -o subtitle_aligned.srt -t src,tgt
5556
(.venv) $ subaligner -m dual -v video.mp4 -s subtitle.srt -tr facebook-mbart -tf large -o subtitle_aligned.srt -t src,tgt
5657
(.venv) $ subaligner -m dual -v video.mp4 -s subtitle.srt -tr facebook-m2m100 -tf small -o subtitle_aligned.srt -t src,tgt

subaligner/__init__.py

+2
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,5 @@
1515
os.environ["TF_CPP_MIN_LOG_LEVEL"] = "3"
1616
os.environ["TF_CPP_MIN_VLOG_LEVEL"] = "0"
1717
logging.getLogger("tensorflow").disabled = True
18+
19+
os.environ["TF_USE_LEGACY_KERAS"] = "1"

subaligner/__main__.py

+12-5
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@
44
[-sil {afr,amh,ara,arg,asm,aze,ben,bos,bul,cat,ces,cmn,cym,dan,deu,ell,eng,epo,est,eus,fas,fin,fra,gla,gle,glg,grc,grn,guj,heb,hin,hrv,hun,hye,ina,ind,isl,ita,jbo,jpn,kal,kan,kat,kir,kor,kur,lat,lav,lfn,lit,mal,mar,mkd,mlt,msa,mya,nah,nep,nld,nor,ori,orm,pan,pap,pol,por,ron,rus,sin,slk,slv,spa,sqi,srp,swa,swe,tam,tat,tel,tha,tsn,tur,ukr,urd,vie,yue,zho}]
55
[-fos] [-tod TRAINING_OUTPUT_DIRECTORY] [-o OUTPUT] [-t TRANSLATE] [-os OFFSET_SECONDS]
66
[-ml {afr,amh,ara,arg,asm,aze,ben,bos,bul,cat,ces,cmn,cym,dan,deu,ell,eng,epo,est,eus,fas,fin,fra,gla,gle,glg,grc,grn,guj,heb,hin,hrv,hun,hye,ina,ind,isl,ita,jbo,jpn,kal,kan,kat,kir,kor,kur,lat,lav,lfn,lit,mal,mar,mkd,mlt,msa,mya,nah,nep,nld,nor,ori,orm,pan,pap,pol,por,ron,rus,sin,slk,slv,spa,sqi,srp,swa,swe,tam,tat,tel,tha,tsn,tur,ukr,urd,vie,yue,zho}]
7-
[-mr {whisper}] [-mf {tiny,tiny.en,small,medium,medium.en,base,base.en,large-v1,large-v2,large-v3,large,turbo}] [-ip INITIAL_PROMPT] [-tr {helsinki-nlp,whisper,facebook-mbart}]
8-
[-tf TRANSLATION_FLAVOUR] [-mpt MEDIA_PROCESS_TIMEOUT] [-sat SEGMENT_ALIGNMENT_TIMEOUT] [-lgs] [-d] [-q] [-ver]
7+
[-mr {whisper}] [-mf {tiny,tiny.en,small,medium,medium.en,base,base.en,large-v1,large-v2,large-v3,large,turbo}] [-ip INITIAL_PROMPT] [-mcl MAX_CHAR_LENGTH]
8+
[-tr {helsinki-nlp,whisper,facebook-mbart,facebook-m2m100}] [-tf TRANSLATION_FLAVOUR] [-mpt MEDIA_PROCESS_TIMEOUT] [-sat SEGMENT_ALIGNMENT_TIMEOUT] [-wt] [-upp] [-lgs] [-d] [-q] [-ver]
99
1010
Subaligner command line interface
1111
1212
optional arguments:
1313
-h, --help show this help message and exit
1414
-s SUBTITLE_PATH [SUBTITLE_PATH ...], --subtitle_path SUBTITLE_PATH [SUBTITLE_PATH ...]
15-
File path or URL to the subtitle file (Extensions of supported subtitles: .ass, .smi, .scc, .vtt, .stl, .txt, .sbv, .ssa, .sub, .ttml, .xml, .srt, .ytt, .dfxp, .sami, .tmp) or selector for the embedded subtitle (e.g., embedded:page_num=888 or embedded:stream_index=0)
15+
File path or URL to the subtitle file (Extensions of supported subtitles: .vtt, .srt, .ass, .sbv, .sub, .txt, .ttml, .ssa, .dfxp, .ytt, .stl, .tmp, .smi, .scc, .sami, .xml) or selector for the embedded subtitle (e.g., embedded:page_num=888 or embedded:stream_index=0)
1616
-l MAX_LOGLOSS, --max_logloss MAX_LOGLOSS
1717
Max global log loss for alignment
1818
-so, --stretch_on Switch on stretch on subtitles)
@@ -36,14 +36,18 @@
3636
Flavour variation for a specific LLM recipe supporting transcription
3737
-ip INITIAL_PROMPT, --initial_prompt INITIAL_PROMPT
3838
Optional text to provide the transcribing context or specific phrases
39-
-tr {helsinki-nlp,whisper,facebook-mbart}, --translation_recipe {helsinki-nlp,whisper,facebook-mbart}
39+
-mcl MAX_CHAR_LENGTH, --max_char_length MAX_CHAR_LENGTH
40+
Maximum number of characters for each generated subtitle segment
41+
-tr {helsinki-nlp,whisper,facebook-mbart,facebook-m2m100}, --translation_recipe {helsinki-nlp,whisper,facebook-mbart,facebook-m2m100}
4042
LLM recipe used for translating subtitles
4143
-tf TRANSLATION_FLAVOUR, --translation_flavour TRANSLATION_FLAVOUR
4244
Flavour variation for a specific LLM recipe supporting translation
4345
-mpt MEDIA_PROCESS_TIMEOUT, --media_process_timeout MEDIA_PROCESS_TIMEOUT
4446
Maximum waiting time in seconds when processing media files
4547
-sat SEGMENT_ALIGNMENT_TIMEOUT, --segment_alignment_timeout SEGMENT_ALIGNMENT_TIMEOUT
4648
Maximum waiting time in seconds when aligning each segment
49+
-upp, --use_prior_prompting
50+
Whether to use the previous subtitle cue as the current prompt.
4751
-lgs, --languages Print out language codes used for stretch and translation
4852
-d, --debug Print out debugging information
4953
-q, --quiet Switch off logging information
@@ -225,6 +229,8 @@ def main():
225229
default=60,
226230
help="Maximum waiting time in seconds when aligning each segment"
227231
)
232+
parser.add_argument("-upp", "--use_prior_prompting", action="store_true",
233+
help="Whether to use the previous subtitle cue as the current prompt.")
228234
parser.add_argument("-lgs", "--languages", action="store_true",
229235
help="Print out language codes used for stretch and translation")
230236
parser.add_argument("-d", "--debug", action="store_true",
@@ -371,7 +377,8 @@ def main():
371377
subtitle, frame_rate = transcriber.transcribe_with_subtitle_as_prompts(video_file_path=local_video_path,
372378
subtitle_file_path=local_subtitle_path,
373379
language_code=stretch_in_lang,
374-
max_char_length=FLAGS.max_char_length)
380+
max_char_length=FLAGS.max_char_length,
381+
use_prior_prompting=FLAGS.use_prior_prompting)
375382
aligned_subs = subtitle.subs
376383
else:
377384
print("ERROR: Unknown mode {}".format(FLAGS.mode))

subaligner/network.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44
import psutil
55
import numpy as np
66
import tensorflow as tf
7-
import tensorflow.keras.optimizers as tf_optimizers
7+
import keras.optimizers as tf_optimizers
88

99
from typing import Tuple, Optional, List, Generator
10-
from tensorflow.keras.layers import (
10+
from keras.layers import (
1111
Dense,
1212
Input,
1313
LSTM,
@@ -19,14 +19,14 @@
1919
Bidirectional,
2020
)
2121

22-
from tensorflow.keras.callbacks import (
22+
from keras.callbacks import (
2323
EarlyStopping,
2424
ModelCheckpoint,
2525
TensorBoard,
2626
CSVLogger,
2727
)
28-
from tensorflow.keras.models import Model, load_model, save_model
29-
from tensorflow.keras import backend as K
28+
from keras.models import Model, load_model, save_model
29+
from keras import backend as K
3030
from .utils import Utils
3131
from .logger import Logger
3232
from .exception import TerminalException

0 commit comments

Comments
 (0)