BatchalignHK 0.7.18.post12__tar.gz → 0.7.19.post1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/BatchalignHK.egg-info/PKG-INFO +6 -3
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/BatchalignHK.egg-info/SOURCES.txt +1 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/BatchalignHK.egg-info/requires.txt +5 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/PKG-INFO +6 -3
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/cli/cli.py +6 -1
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/__init__.py +1 -1
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/analysis/eval.py +31 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/asr/__init__.py +1 -0
- batchalignhk-0.7.19.post1/batchalign/pipelines/asr/oai_whisper.py +97 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/dispatch.py +4 -3
- batchalignhk-0.7.19.post1/batchalign/version +3 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/setup.py +6 -1
- batchalignhk-0.7.18.post12/batchalign/version +0 -3
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/BatchalignHK.egg-info/dependency_links.txt +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/BatchalignHK.egg-info/entry_points.txt +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/BatchalignHK.egg-info/top_level.txt +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/LICENSE +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/MANIFEST.in +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/README.md +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/__init__.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/__main__.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/cli/__init__.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/cli/dispatch.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/constants.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/document.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/errors.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/formats/__init__.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/formats/base.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/formats/chat/__init__.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/formats/chat/file.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/formats/chat/generator.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/formats/chat/lexer.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/formats/chat/parser.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/formats/chat/utils.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/formats/textgrid/__init__.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/formats/textgrid/file.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/formats/textgrid/generator.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/formats/textgrid/parser.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/models/__init__.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/models/resolve.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/models/speaker/__init__.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/models/speaker/config.yaml +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/models/speaker/infer.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/models/speaker/utils.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/models/training/__init__.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/models/training/run.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/models/training/utils.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/models/utils.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/models/utterance/__init__.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/models/utterance/cantonese_infer.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/models/utterance/dataset.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/models/utterance/execute.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/models/utterance/infer.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/models/utterance/prep.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/models/utterance/train.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/models/wave2vec/__init__.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/models/wave2vec/infer_fa.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/models/whisper/__init__.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/models/whisper/infer_asr.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/models/whisper/infer_fa.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/analysis/__init__.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/asr/num2chinese.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/asr/rev.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/asr/tencent.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/asr/utils.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/asr/whisper.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/asr/whisperx.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/base.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/cleanup/__init__.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/cleanup/cleanup.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/cleanup/disfluencies.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/cleanup/parse_support.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/cleanup/retrace.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/cleanup/support/filled_pauses.eng +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/cleanup/support/replacements.eng +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/cleanup/support/test.test +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/fa/__init__.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/fa/wave2vec_fa.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/fa/whisper_fa.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/morphosyntax/__init__.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/morphosyntax/coref.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/morphosyntax/en/irr.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/morphosyntax/fr/apm.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/morphosyntax/fr/apmn.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/morphosyntax/fr/case.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/morphosyntax/ja/verbforms.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/morphosyntax/ud.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/pipeline.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/speaker/__init__.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/speaker/nemo_speaker.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/translate/__init__.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/translate/gtrans.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/translate/seamless.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/translate/utils.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/utr/__init__.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/utr/rev_utr.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/utr/utils.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/utr/whisper_utr.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/utterance/__init__.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/utterance/ud_utterance.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/tests/__init__.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/tests/conftest.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/tests/formats/chat/test_chat_file.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/tests/formats/chat/test_chat_generator.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/tests/formats/chat/test_chat_lexer.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/tests/formats/chat/test_chat_parser.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/tests/formats/chat/test_chat_utils.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/tests/formats/textgrid/test_textgrid.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/tests/pipelines/analysis/test_eval.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/tests/pipelines/asr/test_asr_pipeline.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/tests/pipelines/asr/test_asr_utils.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/tests/pipelines/cleanup/test_disfluency.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/tests/pipelines/cleanup/test_parse_support.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/tests/pipelines/fa/test_fa_pipeline.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/tests/pipelines/fixures.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/tests/pipelines/test_pipeline.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/tests/pipelines/test_pipeline_models.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/tests/test_document.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/utils/__init__.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/utils/config.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/utils/dp.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/utils/utils.py +0 -0
- {batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: BatchalignHK
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.19.post1
|
|
4
4
|
Summary: Python Speech Language Sample Analysis
|
|
5
5
|
Author: Brian MacWhinney, Houjun Liu
|
|
6
6
|
Author-email: macw@cmu.edu, houjun@cmu.edu
|
|
@@ -36,16 +36,19 @@ Requires-Dist: blobfile
|
|
|
36
36
|
Requires-Dist: sentencepiece
|
|
37
37
|
Requires-Dist: tencentcloud-sdk-python-common
|
|
38
38
|
Requires-Dist: tencentcloud-sdk-python-asrgoogletrans
|
|
39
|
+
Requires-Dist: openai-whisper>=20240930
|
|
39
40
|
Provides-Extra: dev
|
|
40
41
|
Requires-Dist: pytest; extra == "dev"
|
|
41
42
|
Provides-Extra: train
|
|
42
43
|
Requires-Dist: accelerate~=0.27; extra == "train"
|
|
44
|
+
Provides-Extra: docs
|
|
45
|
+
Requires-Dist: mkdocs-material; extra == "docs"
|
|
46
|
+
Requires-Dist: mkdocs-click; extra == "docs"
|
|
43
47
|
Dynamic: author
|
|
44
48
|
Dynamic: author-email
|
|
45
49
|
Dynamic: classifier
|
|
46
50
|
Dynamic: description
|
|
47
51
|
Dynamic: description-content-type
|
|
48
|
-
Dynamic: license-file
|
|
49
52
|
Dynamic: provides-extra
|
|
50
53
|
Dynamic: requires-dist
|
|
51
54
|
Dynamic: summary
|
|
@@ -59,6 +59,7 @@ batchalign/pipelines/analysis/__init__.py
|
|
|
59
59
|
batchalign/pipelines/analysis/eval.py
|
|
60
60
|
batchalign/pipelines/asr/__init__.py
|
|
61
61
|
batchalign/pipelines/asr/num2chinese.py
|
|
62
|
+
batchalign/pipelines/asr/oai_whisper.py
|
|
62
63
|
batchalign/pipelines/asr/rev.py
|
|
63
64
|
batchalign/pipelines/asr/tencent.py
|
|
64
65
|
batchalign/pipelines/asr/utils.py
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: BatchalignHK
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.19.post1
|
|
4
4
|
Summary: Python Speech Language Sample Analysis
|
|
5
5
|
Author: Brian MacWhinney, Houjun Liu
|
|
6
6
|
Author-email: macw@cmu.edu, houjun@cmu.edu
|
|
@@ -36,16 +36,19 @@ Requires-Dist: blobfile
|
|
|
36
36
|
Requires-Dist: sentencepiece
|
|
37
37
|
Requires-Dist: tencentcloud-sdk-python-common
|
|
38
38
|
Requires-Dist: tencentcloud-sdk-python-asrgoogletrans
|
|
39
|
+
Requires-Dist: openai-whisper>=20240930
|
|
39
40
|
Provides-Extra: dev
|
|
40
41
|
Requires-Dist: pytest; extra == "dev"
|
|
41
42
|
Provides-Extra: train
|
|
42
43
|
Requires-Dist: accelerate~=0.27; extra == "train"
|
|
44
|
+
Provides-Extra: docs
|
|
45
|
+
Requires-Dist: mkdocs-material; extra == "docs"
|
|
46
|
+
Requires-Dist: mkdocs-click; extra == "docs"
|
|
43
47
|
Dynamic: author
|
|
44
48
|
Dynamic: author-email
|
|
45
49
|
Dynamic: classifier
|
|
46
50
|
Dynamic: description
|
|
47
51
|
Dynamic: description-content-type
|
|
48
|
-
Dynamic: license-file
|
|
49
52
|
Dynamic: provides-extra
|
|
50
53
|
Dynamic: requires-dist
|
|
51
54
|
Dynamic: summary
|
|
@@ -79,6 +79,7 @@ def handle_verbosity(verbosity):
|
|
|
79
79
|
|
|
80
80
|
@click.group()
|
|
81
81
|
@click.pass_context
|
|
82
|
+
@click.version_option(VERSION_NUMBER)
|
|
82
83
|
@click.option("-v", "--verbose", type=int, count=True, default=0, help="How loquacious Batchalign should be.")
|
|
83
84
|
def batchalign(ctx, verbose):
|
|
84
85
|
"""process .cha and/or audio files in IN_DIR and dumps them to OUT_DIR using recipe COMMAND"""
|
|
@@ -144,8 +145,10 @@ def align(ctx, in_dir, out_dir, whisper, wav2vec, **kwargs):
|
|
|
144
145
|
|
|
145
146
|
@batchalign.command()
|
|
146
147
|
@common_options
|
|
148
|
+
@click.option("--whisper_oai/--rev",
|
|
149
|
+
default=False, help="Use the OpenAI's Whisper implementation instead of Rev.AI (default).")
|
|
147
150
|
@click.option("--whisper/--rev",
|
|
148
|
-
default=False, help="Use
|
|
151
|
+
default=False, help="Use Huggingface's Whisper implementation instead of Rev.AI (default).")
|
|
149
152
|
@click.option("--tencent/--rev",
|
|
150
153
|
default=False, help="Use Tencent instead of Rev.AI (default).")
|
|
151
154
|
@click.option("--whisperx/--rev",
|
|
@@ -176,6 +179,8 @@ def transcribe(ctx, in_dir, out_dir, lang, num_speakers, **kwargs):
|
|
|
176
179
|
asr = "whisperx"
|
|
177
180
|
if kwargs["tencent"]:
|
|
178
181
|
asr = "tencent"
|
|
182
|
+
if kwargs["whisper_oai"]:
|
|
183
|
+
asr = "whisper_oai"
|
|
179
184
|
|
|
180
185
|
def writer(doc, output):
|
|
181
186
|
doc.content.insert(0, CustomLine(id="Comment", type=CustomLineType.INDEPENDENT,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from .pipeline import BatchalignPipeline
|
|
2
2
|
from .base import BatchalignEngine
|
|
3
|
-
from .asr import WhisperEngine, RevEngine, WhisperXEngine, TencentEngine
|
|
3
|
+
from .asr import WhisperEngine, RevEngine, WhisperXEngine, TencentEngine, OAIWhisperEngine
|
|
4
4
|
|
|
5
5
|
from .morphosyntax import StanzaEngine, CorefEngine
|
|
6
6
|
from .cleanup import NgramRetraceEngine, DisfluencyReplacementEngine
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/analysis/eval.py
RENAMED
|
@@ -14,6 +14,34 @@ from batchalign.utils.dp import align, ExtraType, Extra, Match
|
|
|
14
14
|
import logging
|
|
15
15
|
L = logging.getLogger("batchalign")
|
|
16
16
|
|
|
17
|
+
def conform(x):
|
|
18
|
+
result = []
|
|
19
|
+
for i in x:
|
|
20
|
+
if "'s" in i.strip():
|
|
21
|
+
result.append(i.split("'")[0])
|
|
22
|
+
result.append("is")
|
|
23
|
+
elif "americanstyle" == i.strip():
|
|
24
|
+
result.append("american")
|
|
25
|
+
result.append("style")
|
|
26
|
+
elif "postwar" == i.strip():
|
|
27
|
+
result.append("post")
|
|
28
|
+
result.append("war")
|
|
29
|
+
elif "farmhouse" == i.strip():
|
|
30
|
+
result.append("farm")
|
|
31
|
+
result.append("house")
|
|
32
|
+
elif "aa" == i.strip():
|
|
33
|
+
result.append("a")
|
|
34
|
+
result.append("a")
|
|
35
|
+
elif "hmm" == i.strip():
|
|
36
|
+
result.append("hm")
|
|
37
|
+
elif "_" in i.strip():
|
|
38
|
+
for j in i.strip().split("_"):
|
|
39
|
+
result.append(j)
|
|
40
|
+
else:
|
|
41
|
+
result.append(i)
|
|
42
|
+
|
|
43
|
+
return result
|
|
44
|
+
|
|
17
45
|
class EvaluationEngine(BatchalignEngine):
|
|
18
46
|
tasks = [ Task.WER ]
|
|
19
47
|
|
|
@@ -64,6 +92,9 @@ class EvaluationEngine(BatchalignEngine):
|
|
|
64
92
|
gold_final = gold_forms
|
|
65
93
|
forms_final = forms_finished
|
|
66
94
|
|
|
95
|
+
gold_final = conform(gold_final)
|
|
96
|
+
forms_final = conform(forms_final)
|
|
97
|
+
|
|
67
98
|
# dp!
|
|
68
99
|
alignment = align(forms_final, gold_final, False)
|
|
69
100
|
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
from batchalign.document import *
|
|
2
|
+
from batchalign.pipelines.base import *
|
|
3
|
+
from batchalign.pipelines.asr.utils import *
|
|
4
|
+
from batchalign.models import WhisperASRModel, BertUtteranceModel, BertCantoneseUtteranceModel
|
|
5
|
+
|
|
6
|
+
import pycountry
|
|
7
|
+
|
|
8
|
+
import logging
|
|
9
|
+
L = logging.getLogger("batchalign")
|
|
10
|
+
|
|
11
|
+
from batchalign.utils.utils import correct_timing
|
|
12
|
+
from batchalign.models import resolve
|
|
13
|
+
|
|
14
|
+
import whisper
|
|
15
|
+
|
|
16
|
+
class OAIWhisperEngine(BatchalignEngine):
|
|
17
|
+
|
|
18
|
+
@property
|
|
19
|
+
def tasks(self):
|
|
20
|
+
# if there is no utterance segmentation scheme, we only
|
|
21
|
+
# run ASR
|
|
22
|
+
if self.__engine:
|
|
23
|
+
return [ Task.ASR, Task.UTTERANCE_SEGMENTATION ]
|
|
24
|
+
else:
|
|
25
|
+
return [ Task.ASR ]
|
|
26
|
+
|
|
27
|
+
def __init__(self, model=None, lang="eng"):
|
|
28
|
+
|
|
29
|
+
# try to resolve our internal model
|
|
30
|
+
res = resolve("whisper", lang)
|
|
31
|
+
if res:
|
|
32
|
+
model, base = res
|
|
33
|
+
else:
|
|
34
|
+
model = "openai/whisper-large-v3"
|
|
35
|
+
base = "openai/whisper-large-v3"
|
|
36
|
+
|
|
37
|
+
if lang == "mys":
|
|
38
|
+
language = "Malay"
|
|
39
|
+
else:
|
|
40
|
+
language = pycountry.languages.get(alpha_3=lang).name
|
|
41
|
+
if language == "Yue Chinese":
|
|
42
|
+
language = "Cantonese"
|
|
43
|
+
if "greek" in language.lower():
|
|
44
|
+
language = "Greek"
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
self.__whisper = whisper.load_model("turbo")
|
|
48
|
+
self.__lang = lang
|
|
49
|
+
self.__language = language
|
|
50
|
+
|
|
51
|
+
if resolve("utterance", self.__lang) != None:
|
|
52
|
+
L.debug("Initializing utterance model...")
|
|
53
|
+
if lang != "yue":
|
|
54
|
+
self.__engine = BertUtteranceModel(resolve("utterance", lang))
|
|
55
|
+
else:
|
|
56
|
+
# we have special inference procedure for cantonese
|
|
57
|
+
self.__engine = BertCantoneseUtteranceModel(resolve("utterance", lang))
|
|
58
|
+
L.debug("Done.")
|
|
59
|
+
else:
|
|
60
|
+
self.__engine = None
|
|
61
|
+
|
|
62
|
+
def generate(self, source_path, **kwargs):
|
|
63
|
+
res = self.__whisper.transcribe(source_path,
|
|
64
|
+
word_timestamps=True,
|
|
65
|
+
language=self.__language)
|
|
66
|
+
turns = []
|
|
67
|
+
for i in res["segments"]:
|
|
68
|
+
turn = []
|
|
69
|
+
for j in i["words"]:
|
|
70
|
+
turn.append({
|
|
71
|
+
"type": "text",
|
|
72
|
+
"ts": j["start"],
|
|
73
|
+
"end_ts": j["end"],
|
|
74
|
+
"value": j["word"]
|
|
75
|
+
})
|
|
76
|
+
turns.append({
|
|
77
|
+
"elements": turn,
|
|
78
|
+
"speaker": 0
|
|
79
|
+
})
|
|
80
|
+
doc = process_generation({"monologues": turns},
|
|
81
|
+
self.__lang,
|
|
82
|
+
utterance_engine=self.__engine)
|
|
83
|
+
# define media tier
|
|
84
|
+
media = Media(type=MediaType.AUDIO, name=Path(source_path).stem, url=source_path)
|
|
85
|
+
doc.media = media
|
|
86
|
+
|
|
87
|
+
return correct_timing(doc)
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
# model="openai/whisper-large-v2", language="english"
|
|
91
|
+
|
|
92
|
+
# e = WhisperEngine()
|
|
93
|
+
# tmp = e.generate("./batchalign/tests/pipelines/asr/support/test.mp3", 1)
|
|
94
|
+
# tmp.model_dump()
|
|
95
|
+
# file = "./batchalign/tests/pipelines/asr/support/test.mp3"
|
|
96
|
+
|
|
97
|
+
|
|
@@ -7,7 +7,7 @@ from batchalign import (WhisperEngine, WhisperFAEngine, StanzaEngine, RevEngine,
|
|
|
7
7
|
NgramRetraceEngine, DisfluencyReplacementEngine, WhisperUTREngine,
|
|
8
8
|
RevUTREngine, EvaluationEngine, WhisperXEngine, NemoSpeakerEngine,
|
|
9
9
|
StanzaUtteranceEngine, CorefEngine, Wave2VecFAEngine, SeamlessTranslationModel, TencentEngine,
|
|
10
|
-
GoogleTranslateEngine)
|
|
10
|
+
GoogleTranslateEngine, OAIWhisperEngine)
|
|
11
11
|
|
|
12
12
|
from batchalign import BatchalignPipeline
|
|
13
13
|
from batchalign.models import resolve
|
|
@@ -20,7 +20,7 @@ L = logging.getLogger("batchalign")
|
|
|
20
20
|
|
|
21
21
|
# default for all languages
|
|
22
22
|
DEFAULT_PACKAGES = {
|
|
23
|
-
"asr": "
|
|
23
|
+
"asr": "whisper_oai",
|
|
24
24
|
"utr": "whisper_utr",
|
|
25
25
|
"fa": "whisper_fa",
|
|
26
26
|
"speaker": "nemo_speaker",
|
|
@@ -138,7 +138,8 @@ def dispatch_pipeline(pkg_str, lang, num_speakers=None, **arg_overrides):
|
|
|
138
138
|
engines.append(TencentEngine(lang=lang))
|
|
139
139
|
elif engine == "gtrans":
|
|
140
140
|
engines.append(GoogleTranslateEngine())
|
|
141
|
-
|
|
141
|
+
elif engine == "whisper_oai":
|
|
142
|
+
engines.append(OAIWhisperEngine())
|
|
142
143
|
|
|
143
144
|
L.debug(f"Done initalizing packages.")
|
|
144
145
|
return BatchalignPipeline(*engines)
|
|
@@ -58,7 +58,8 @@ setup(
|
|
|
58
58
|
"sentencepiece",
|
|
59
59
|
"tencentcloud-sdk-python-common",
|
|
60
60
|
"tencentcloud-sdk-python-asr"
|
|
61
|
-
"googletrans"
|
|
61
|
+
"googletrans",
|
|
62
|
+
"openai-whisper>=20240930"
|
|
62
63
|
],
|
|
63
64
|
extras_require={
|
|
64
65
|
'dev': [
|
|
@@ -67,6 +68,10 @@ setup(
|
|
|
67
68
|
'train': [
|
|
68
69
|
'accelerate~=0.27',
|
|
69
70
|
],
|
|
71
|
+
'docs': [
|
|
72
|
+
'mkdocs-material',
|
|
73
|
+
'mkdocs-click'
|
|
74
|
+
],
|
|
70
75
|
# 'speaker': [
|
|
71
76
|
# "nemo-toolkit~=1.21.0",
|
|
72
77
|
# "omegaconf~=2.3.0",
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/BatchalignHK.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/BatchalignHK.egg-info/entry_points.txt
RENAMED
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/BatchalignHK.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/formats/chat/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/formats/chat/generator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/formats/textgrid/__init__.py
RENAMED
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/formats/textgrid/file.py
RENAMED
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/formats/textgrid/generator.py
RENAMED
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/formats/textgrid/parser.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/models/speaker/__init__.py
RENAMED
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/models/speaker/config.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/models/training/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/models/training/utils.py
RENAMED
|
File without changes
|
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/models/utterance/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/models/utterance/dataset.py
RENAMED
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/models/utterance/execute.py
RENAMED
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/models/utterance/infer.py
RENAMED
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/models/utterance/prep.py
RENAMED
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/models/utterance/train.py
RENAMED
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/models/wave2vec/__init__.py
RENAMED
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/models/wave2vec/infer_fa.py
RENAMED
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/models/whisper/__init__.py
RENAMED
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/models/whisper/infer_asr.py
RENAMED
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/models/whisper/infer_fa.py
RENAMED
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/analysis/__init__.py
RENAMED
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/asr/num2chinese.py
RENAMED
|
File without changes
|
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/asr/tencent.py
RENAMED
|
File without changes
|
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/asr/whisper.py
RENAMED
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/asr/whisperx.py
RENAMED
|
File without changes
|
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/cleanup/__init__.py
RENAMED
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/cleanup/cleanup.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/cleanup/retrace.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/fa/__init__.py
RENAMED
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/fa/wave2vec_fa.py
RENAMED
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/fa/whisper_fa.py
RENAMED
|
File without changes
|
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/morphosyntax/coref.py
RENAMED
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/morphosyntax/en/irr.py
RENAMED
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/morphosyntax/fr/apm.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/morphosyntax/ud.py
RENAMED
|
File without changes
|
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/speaker/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/translate/__init__.py
RENAMED
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/translate/gtrans.py
RENAMED
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/translate/seamless.py
RENAMED
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/translate/utils.py
RENAMED
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/utr/__init__.py
RENAMED
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/utr/rev_utr.py
RENAMED
|
File without changes
|
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/utr/whisper_utr.py
RENAMED
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/pipelines/utterance/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/tests/pipelines/fixures.py
RENAMED
|
File without changes
|
{batchalignhk-0.7.18.post12 → batchalignhk-0.7.19.post1}/batchalign/tests/pipelines/test_pipeline.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|