Add files using upload-large-folder tool
Browse files- LICENSE-CODE.txt +21 -0
- LICENSE-WEIGHTS.txt +9 -0
- README.md +36 -0
- SCTK/CHANGELOG +370 -0
- SCTK/DISCLAIMER +12 -0
- SCTK/Dockerfile +25 -0
- SCTK/LICENSE.md +32 -0
- SCTK/README.md +146 -0
- SCTK/TODO +58 -0
- SCTK/makefile +52 -0
- SCTK/src/sclite/sgml.h +22 -0
- ensemble.py +184 -0
- infer.py +268 -0
- kenlm_models_order_3/ady.arpa +0 -0
- kenlm_models_order_3/aln.arpa +0 -0
- kenlm_models_order_3/bas.arpa +0 -0
- kenlm_models_order_3/bew.arpa +0 -0
- kenlm_models_order_3/bxk.arpa +0 -0
- kenlm_models_order_3/cgg.arpa +0 -0
- kenlm_models_order_3/el-CY.arpa +0 -0
- kenlm_models_order_3/hch.arpa +0 -0
- kenlm_models_order_3/kcn.arpa +0 -0
- kenlm_models_order_3/koo.arpa +0 -0
- kenlm_models_order_3/led.arpa +0 -0
- kenlm_models_order_3/lke.arpa +0 -0
- kenlm_models_order_3/lth.arpa +0 -0
- kenlm_models_order_3/meh.arpa +0 -0
- kenlm_models_order_3/mmc.arpa +0 -0
- kenlm_models_order_3/pne.arpa +0 -0
- kenlm_models_order_3/qxp.arpa +0 -0
- kenlm_models_order_3/ruc.arpa +0 -0
- kenlm_models_order_3/rwm.arpa +0 -0
- kenlm_models_order_3/sco.arpa +0 -0
- kenlm_models_order_3/tob.arpa +0 -0
- kenlm_models_order_3/top.arpa +0 -0
- kenlm_models_order_3/ttj.arpa +0 -0
- kenlm_models_order_3/ukv.arpa +0 -0
- kenlm_models_order_3/ush.arpa +0 -0
- models-01-mms-1b-l1107-tuned-commonvoice-train-data/preprocessor_config.json +9 -0
- models-01-mms-1b-l1107-tuned-commonvoice-train-data/tokenizer_config.json +49 -0
- models-01-mms-1b-l1107-tuned-commonvoice-train-data/trainer_state.json +482 -0
- models-01-mms-1b-l1107-tuned-commonvoice-train-data/vocab.json +1 -0
- models-03-mms-1b-all-tuned-commonvoice-all-data/config.json +107 -0
- models-03-mms-1b-all-tuned-commonvoice-all-data/preprocessor_config.json +9 -0
- models-03-mms-1b-all-tuned-commonvoice-all-data/special_tokens_map.json +6 -0
- models-03-mms-1b-all-tuned-commonvoice-all-data/tokenizer_config.json +49 -0
- models-03-mms-1b-all-tuned-commonvoice-all-data/trainer_state.json +514 -0
- models-03-mms-1b-all-tuned-commonvoice-all-data/vocab.json +1 -0
- requirements.txt +21 -0
- solution.ipynb +297 -0
LICENSE-CODE.txt
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
MIT License
|
| 2 |
+
|
| 3 |
+
Copyright (c) 2025 Igor Ivanov
|
| 4 |
+
|
| 5 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
| 6 |
+
of this software and associated documentation files (the "Software"), to deal
|
| 7 |
+
in the Software without restriction, including without limitation the rights
|
| 8 |
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
| 9 |
+
copies of the Software, and to permit persons to whom the Software is
|
| 10 |
+
furnished to do so, subject to the following conditions:
|
| 11 |
+
|
| 12 |
+
The above copyright notice and this permission notice shall be included in all
|
| 13 |
+
copies or substantial portions of the Software.
|
| 14 |
+
|
| 15 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
| 16 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
| 17 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
| 18 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
| 19 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
| 20 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
| 21 |
+
SOFTWARE.
|
LICENSE-WEIGHTS.txt
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
CC-BY-NC-4.0
|
| 2 |
+
https://creativecommons.org/licenses/by-nc/4.0/
|
| 3 |
+
|
| 4 |
+
The model weights are a derivative work of the following models,
|
| 5 |
+
obtained by fine-tuning on the Common Voice datasets.
|
| 6 |
+
|
| 7 |
+
https://huggingface.co/facebook/mms-1b-fl102
|
| 8 |
+
https://huggingface.co/facebook/mms-1b-l1107
|
| 9 |
+
https://huggingface.co/facebook/mms-1b-all
|
README.md
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: cc-by-nc-4.0
|
| 3 |
+
tags:
|
| 4 |
+
- automatic-speech-recognition
|
| 5 |
+
- mms
|
| 6 |
+
- pytorch
|
| 7 |
+
metrics:
|
| 8 |
+
- wer
|
| 9 |
+
---
|
| 10 |
+
|
| 11 |
+
## Shared Task: Mozilla Common Voice Spontaneous Speech ASR
|
| 12 |
+
https://www.codabench.org/competitions/10820/
|
| 13 |
+
Inference code and weights of the 1st place solution in 3 of 4 subtasks:
|
| 14 |
+
- Multilingual General
|
| 15 |
+
- Best small model
|
| 16 |
+
- Unseen Languages
|
| 17 |
+
|
| 18 |
+
Author: Igor Ivanov (team "vecxoz")
|
| 19 |
+
|
| 20 |
+
This repository contains both fine-tuned model weights and
|
| 21 |
+
the inference code used to obtain the winning scores.
|
| 22 |
+
Code and weights are licensed separately.
|
| 23 |
+
License for code: MIT
|
| 24 |
+
License for weights: CC-BY-NC-4.0
|
| 25 |
+
License for `SCTK` distribution can be found in the corresponding subdirectory.
|
| 26 |
+
|
| 27 |
+
The model weights are a derivative work of the following models,
|
| 28 |
+
obtained by fine-tuning on the Common Voice datasets.
|
| 29 |
+
https://huggingface.co/facebook/mms-1b-fl102
|
| 30 |
+
https://huggingface.co/facebook/mms-1b-l1107
|
| 31 |
+
https://huggingface.co/facebook/mms-1b-all
|
| 32 |
+
|
| 33 |
+
The test dataset is not included according to the Common Voice requirements.
|
| 34 |
+
Empty directory structure of the dataset is retained for clarity.
|
| 35 |
+
|
| 36 |
+
Please see `paper.pdf` and `solution.ipynb` for the details and code entry point.
|
SCTK/CHANGELOG
ADDED
|
@@ -0,0 +1,370 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
SCTK Version 2.4.XXX - Release SOON - This is a list of changes in the master branch thus far
|
| 2 |
+
[*] Added support sclit support for Ukraninian
|
| 3 |
+
[*] Corrected many compiler warnings for newer OSX and Ubuntu compilers
|
| 4 |
+
[*] sclite and asclite makefiles updated for standard C and C++ compiler flags
|
| 5 |
+
[*] Commit ID 82955db made a fix that is not backward compatable for CTM2CTM scoring.
|
| 6 |
+
see the commit message.
|
| 7 |
+
[*] Documented the optional word scoring and add test cases.
|
| 8 |
+
[*] Documented the Input Dependent GLM Rules in doc/GLMRules.
|
| 9 |
+
[*] Added the Arabic, Mandarin, and English GLMs into doc/trans_rules
|
| 10 |
+
[*] Added a test case for an unsolved asclite bug (commit https://github.com/usnistgov/SCTK/commit/cf4ee3f583980329e7f46cb81dcd0c5685ff0e06)
|
| 11 |
+
|
| 12 |
+
SCTK Version 2.4.12 - Release October 27, 2021
|
| 13 |
+
[*] Added a Docker File
|
| 14 |
+
[*] fixed headers for Xcode
|
| 15 |
+
|
| 16 |
+
SCTK Version 2.4.11 - Release Novembver 11, 2018
|
| 17 |
+
[*] Corrected asclite warning messages. Warnings prevented the code from working on Darwin 18.2.0
|
| 18 |
+
|
| 19 |
+
SCTK Version 2.4.10 - Release October 15, 2014
|
| 20 |
+
[*] Added the case conversion for Babel's UTF-8 of Mongolian and Guarani data. Changes for
|
| 21 |
+
Guarani include handling of two-UTF characters representing G~.
|
| 22 |
+
|
| 23 |
+
SCTK Version 2.4.9 - Release October 15, 2014
|
| 24 |
+
[*] Removed the use of getopt in acomp.pl and def_art.pl
|
| 25 |
+
[*] rfilter typdef reassignment to char to an unsigned char replaced with a new typedef 'Char'
|
| 26 |
+
to support new GCC.
|
| 27 |
+
[*] Added the sclite_tolower utility to handle case conversion via sclite's library.
|
| 28 |
+
[*] Added the case conversion for Babel's UTF-8 of Kazakh, Cebuano, Kurmanji, and Lithuanian
|
| 29 |
+
|
| 30 |
+
SCTK Version 2.4.8 - Release March 29, 2013
|
| 31 |
+
[*] Added the case conversion for Babel's UTF-8 of Vietnamese and Turkisoh.
|
| 32 |
+
|
| 33 |
+
SCTK Version 2.4.1 - Release March 12, 2012
|
| 34 |
+
[*] Fixed compilation issue
|
| 35 |
+
|
| 36 |
+
SCTK Version 2.4.0 - Release November 10, 2009
|
| 37 |
+
[*] Fixed asclite to handle rttm properly when _ are present in the ref
|
| 38 |
+
[/] The transcript filter, csrfilt.sh, now only modifies the transcript during
|
| 39 |
+
the filter process rather than up-casing all ASCII characters.
|
| 40 |
+
[/] The scoring routines that relied on up-cased text were modified to accept
|
| 41 |
+
the change.
|
| 42 |
+
[/] Hubscr uem filtering is applied to asclite and mdeval
|
| 43 |
+
[-] removed unwanted gif images for align2html
|
| 44 |
+
|
| 45 |
+
SCTK Version 2.3.11 - Release April 8, 2009
|
| 46 |
+
[+] rttmValidator can handle RTTM slat and RTTM without SPKR-INFO
|
| 47 |
+
|
| 48 |
+
SCTK Version 2.3.10 - Release March 6, 2009
|
| 49 |
+
[*] Fixed tests
|
| 50 |
+
|
| 51 |
+
SCTK Version 2.3.9 - Release March 5, 2009
|
| 52 |
+
[*] Compile with gcc 4.3.
|
| 53 |
+
|
| 54 |
+
SCTK Version 2.3.8 - Release March 4, 2009
|
| 55 |
+
[*] Fix slat test when gnuplot is not installed.
|
| 56 |
+
|
| 57 |
+
SCTK Version 2.3.7 - Release March 3, 2009
|
| 58 |
+
[*] Revisite slatreport.
|
| 59 |
+
|
| 60 |
+
SCTK Version 2.3.6 - Release February 26, 2009
|
| 61 |
+
[*] Fixed install and makefile.
|
| 62 |
+
|
| 63 |
+
SCTK Version 2.3.5 - Release February 26, 2009
|
| 64 |
+
[*] Fixed slatreport makefile behavior.
|
| 65 |
+
|
| 66 |
+
SCTK Version 2.3.4 - Release February 24, 2009
|
| 67 |
+
[/] Added SLAT report computation and doc updates.
|
| 68 |
+
|
| 69 |
+
SCTK Version 2.3.3 - Release February 20, 2009
|
| 70 |
+
[+] Added SLAT report and handling by asclite.
|
| 71 |
+
|
| 72 |
+
SCTK Version 2.3.2 - Release January 12, 2009
|
| 73 |
+
[/] Changed BZip2 to LZMA.
|
| 74 |
+
|
| 75 |
+
SCTK Version 2.3.1 - Release January 6, 2009
|
| 76 |
+
[/] Changed miniLZO to BZip2.
|
| 77 |
+
|
| 78 |
+
SCTK Version 2.3 - Release September 5, 2008
|
| 79 |
+
[+] Code optimization.
|
| 80 |
+
[+] Added label and category information in asclite SGML for STM files.
|
| 81 |
+
|
| 82 |
+
SCTK Version 2.3-rc2c - Release May 8, 2008
|
| 83 |
+
[+] Check if the character " is not in a RTTM file.
|
| 84 |
+
[/] Changed the sclite compilation flags.
|
| 85 |
+
|
| 86 |
+
SCTK Version 2.3-rc2b - Release May 6, 2008
|
| 87 |
+
[*] Fixed an asclite bug went more than 32768 segment are added to the structure.
|
| 88 |
+
[/] Changed the asclite compilation flags.
|
| 89 |
+
|
| 90 |
+
SCTK Version 2.3-rc2 - Release November 26, 2007
|
| 91 |
+
[*] Fixed the exit code, for a fatal error, it exists with a non 0 value.
|
| 92 |
+
[/] Change the error/Info message when filtering.
|
| 93 |
+
[+] Added information in the documentation for asclite regarding the
|
| 94 |
+
UEM filtering.
|
| 95 |
+
|
| 96 |
+
SCTK Version 2.3-rc1 - Release September 21, 2007
|
| 97 |
+
[*] Fixed asclite when no input given
|
| 98 |
+
[*] Fixed mapsswe segmentation code
|
| 99 |
+
[+] Added UEM inplementation directly to asclite
|
| 100 |
+
[+] -wordalign-cost options for asclite adding some cost variance
|
| 101 |
+
depending in the word syntactic distance
|
| 102 |
+
[+] Added Time base cost model trigger with '-time-base-cost' in asclite
|
| 103 |
+
[+] Generic/Rover full implementation in asclite
|
| 104 |
+
[+] Added cumulative table to HTML reports
|
| 105 |
+
[+] Added man and HTML docs for tools
|
| 106 |
+
[/] Changed the speaker auto-overlap behavior from internal to command-
|
| 107 |
+
line options for asclite
|
| 108 |
+
[/] Inter Segment Gaps by default for every file type in asclite
|
| 109 |
+
[/] Update headers disclaimer and file format
|
| 110 |
+
[+] Added rttmValidator
|
| 111 |
+
[+] Added stmValidator
|
| 112 |
+
[+] Added ctmValidator
|
| 113 |
+
|
| 114 |
+
SCTK Version 2.2.4 - Release May 1, 2007
|
| 115 |
+
[+] Added block size and force compression in hubscr.pl
|
| 116 |
+
[+] Added block size limit to 1GB
|
| 117 |
+
[+] Added block computation less aggressive to allow bigger block size
|
| 118 |
+
[*] Fixed linking issue for RTTM and STM files in cause of empty segment
|
| 119 |
+
[*] Fixed display issue with align2html
|
| 120 |
+
|
| 121 |
+
SCTK Version 2.2.3 - Release April 18, 2007
|
| 122 |
+
[*] Fix the time computation in html report when ISG vs. empty segment
|
| 123 |
+
[/] Fix computation percentage for this table of html display
|
| 124 |
+
[/] Better handling on exceptions to drop segment groups from alignments
|
| 125 |
+
[/] Change some outputs to debug level instead of info level
|
| 126 |
+
[/] Better handling of the memory threshold
|
| 127 |
+
[/] Changed from ucl library to lzo library for compression
|
| 128 |
+
[+] Safer memory deallocation in the LCM
|
| 129 |
+
[+] Minimum command line option to drop the small alignments
|
| 130 |
+
|
| 131 |
+
SCTK Version 2.2.2 - Release March 23, 2007
|
| 132 |
+
[/] Speed up the use of Compression Matrix by not using System Timer
|
| 133 |
+
[/] New implementation of the compressed Levenshtein Matrix to avoid
|
| 134 |
+
overhead creation
|
| 135 |
+
[*] Fix the output report file generation for asclite
|
| 136 |
+
|
| 137 |
+
SCTK Version 2.2.1 - Release March 13, 2007
|
| 138 |
+
[*] Fixed the sequence number in SGML when using RTTM Refs
|
| 139 |
+
[+] Added Difficulty limit
|
| 140 |
+
|
| 141 |
+
SCTK Version 2.2.0 - Release March 12, 2007
|
| 142 |
+
[*] test: fixed some tests
|
| 143 |
+
[*] core: fixed align2html display
|
| 144 |
+
[+] core: added compression to align bigger matrices
|
| 145 |
+
[+] core: added pruning using time
|
| 146 |
+
|
| 147 |
+
SCTK Version 2.1.7 - Release February 22, 2007
|
| 148 |
+
[*] test: fixed some tests
|
| 149 |
+
[*] core: fixed floating point issue
|
| 150 |
+
|
| 151 |
+
SCTK Version 2.1.6 - Release February 21, 2007
|
| 152 |
+
[+] tools: new display for align2html
|
| 153 |
+
[*] test: fixed some tests
|
| 154 |
+
[*] core: fixed sorting issues
|
| 155 |
+
|
| 156 |
+
SCTK Version 2.1.5 - Release February 9, 2007
|
| 157 |
+
[+] core: asclite handles speakers preferences for alignment
|
| 158 |
+
[+] core: asclite handles rttm as references and hypotheses
|
| 159 |
+
[+] core: asclite has a new option '-adaptive-cost' that restricts the
|
| 160 |
+
alignment with the time
|
| 161 |
+
[+] core: asclite has a new option '-spkr-align' that handle the new
|
| 162 |
+
SASTT alignment requirement for speaker mapping
|
| 163 |
+
[+] core: asclite output a new level of log displaying the alignment
|
| 164 |
+
and the group of segments used for the alignment
|
| 165 |
+
[+] core: asclite has a new error output: speaker error
|
| 166 |
+
[+] tools: mergectm2rttm script to merged ctm into rttm file
|
| 167 |
+
[+] tools: md-eval for speaker alignment
|
| 168 |
+
[+] tools: align2html to display graphical alignment in HTML/Javascript
|
| 169 |
+
[*] core: fix bugs that ignore tokens and segments in the alignments
|
| 170 |
+
[*] core: fix the pruning time based algorithm
|
| 171 |
+
[*] core: fix the floating point bug in asclite
|
| 172 |
+
[/] core: asclite options '-time-prune' and '-word-time-align' require
|
| 173 |
+
milliseconds instead of seconds in the commandline
|
| 174 |
+
|
| 175 |
+
SCTK Version 2.1.4 - Release May 19, 2006
|
| 176 |
+
[+] Updated asclite to handle 64-bits
|
| 177 |
+
[+] Updated asclite with caching information (increase speed +5-10%)
|
| 178 |
+
|
| 179 |
+
SCTK Version 2.1.3 - Release April 21, 2006
|
| 180 |
+
[+] Updated toolkit to handle rttm file format
|
| 181 |
+
|
| 182 |
+
SCTK Version 2.1.2 - Release April 4, 2006
|
| 183 |
+
[*] Updated asclite with bugfix and memory usage
|
| 184 |
+
|
| 185 |
+
SCTK Version 2.1.1 - Release December 5, 2005
|
| 186 |
+
[*] Hotfix 64bits and Alpha platforms (Thanks to David Huggins-Daines).
|
| 187 |
+
|
| 188 |
+
SCTK Version 2.1 - Release June 3, 2005
|
| 189 |
+
[*] Fixed csrfilt.sh to respect hyphens in optionally deletable fragments.
|
| 190 |
+
|
| 191 |
+
SCTK Version 2.0 Beta 6 - Release May 2005
|
| 192 |
+
[+] Added asclite
|
| 193 |
+
|
| 194 |
+
SCTK Version 2.0 Beta 5 - Release October 22, 2004
|
| 195 |
+
[+] Added Mandarin hesitations to chfilt.pl and utf_filt.pl
|
| 196 |
+
|
| 197 |
+
SCTK Version 2.0 Beta 4 - Release October 18, 2004
|
| 198 |
+
[/] Modified tanweenFilt to remove all tanween characters.
|
| 199 |
+
[*] Fixed a bug in tanweenFilt and hamzaNorm to also change optionally
|
| 200 |
+
deletable words.
|
| 201 |
+
|
| 202 |
+
SCTK Version 2.0 Beta 3 - Release October 5, 2004
|
| 203 |
+
[/] Fixed the install for rfilter1
|
| 204 |
+
[+] Added an option to chfilt.pl to map channel id's A or B to 1 and 2 respectively.
|
| 205 |
+
[+] Added a new program tanweenFilt.pl
|
| 206 |
+
|
| 207 |
+
SCTK Version 2.0 Beta 1 - Release August 30, 2004
|
| 208 |
+
[/] Restructured release directories. 'src' now includes many programs
|
| 209 |
+
[+] Integrated in all programs in the 'tranfilt' package
|
| 210 |
+
[*] make install now makes move programs to 'bin'
|
| 211 |
+
[+] hamzaNorm is a new program.
|
| 212 |
+
[/] 2004 Arabic transcripts are now handled by hubscr and chfilt.
|
| 213 |
+
|
| 214 |
+
SCTK Version 1.3 - Release July 30, 2004
|
| 215 |
+
[*] Minor bug fixes for core dumps
|
| 216 |
+
[+] Added the ability to pass two tags attached to each word through the
|
| 217 |
+
scorer. The tags are attached to the words by appending ';<string>'
|
| 218 |
+
to the word's text. There can be up to two tags, and they may be empty.
|
| 219 |
+
[+] Added a '#' after NCE values in the .sys reports to indicate the
|
| 220 |
+
abscence of reference lexemes for a speaker.
|
| 221 |
+
[/] Expanded the buffers in the rpg.c suite of routines for report generation.
|
| 222 |
+
[/] Expanded the maximum alternation size to 10000 characters.
|
| 223 |
+
[+] Added a "Lattice" error rate calculation in the .prn reports. It's the
|
| 224 |
+
percent of reference tokens not correct in any systems transcript.
|
| 225 |
+
|
| 226 |
+
SCTK Version 1.2c - Release October 11, 2000
|
| 227 |
+
[/] Improved installation targets in makefile
|
| 228 |
+
|
| 229 |
+
SCTK Version 1.2b - Release October 1, 2000
|
| 230 |
+
[/] Improved testing code to not report errors under Linux
|
| 231 |
+
|
| 232 |
+
SCTK Version 1.2a
|
| 233 |
+
[*] Fixed an installation problem for Linux involving scfp.
|
| 234 |
+
|
| 235 |
+
SCTK Version 1.2
|
| 236 |
+
[+] added the prn report to sc_stats. Prints N-system alignments together.
|
| 237 |
+
[+] Added option alignment by word-weighted-mediated alignments.
|
| 238 |
+
[/] Weight inputs include wwl file (-w) and LM file (-L).
|
| 239 |
+
[+] Added testing scripts and documentation examples.
|
| 240 |
+
[+] Added the .wws output format.
|
| 241 |
+
[/] Update .prf output to include word weights and other information.
|
| 242 |
+
[+] Add SLM toolkit v2 into the sctk package.
|
| 243 |
+
[/] modified config.in, makefile.in and the installation process
|
| 244 |
+
[/] Various internal structures modified to handle word weights.
|
| 245 |
+
[/] Compiles under Linux using gmake.
|
| 246 |
+
[/] Documetation changes, including additional comments concerning the
|
| 247 |
+
waveform id in the STM and CTM file formats.
|
| 248 |
+
|
| 249 |
+
SCTK Version 1.1 - Release November 13, 1997
|
| 250 |
+
[/] Utility versions in this release: sclite V2.1, sc_stats V1.1
|
| 251 |
+
[+] added the Executive and Raw Executive Summaries to sc_stats.
|
| 252 |
+
[+] added the det curve to sc_stats so that combined plots are produced.
|
| 253 |
+
[/] modified mapsswe test to handle arbitrary number of segments
|
| 254 |
+
[*] Correct a bug in mtchprs.c which was free-ing a the test confindence
|
| 255 |
+
array prematurely.
|
| 256 |
+
|
| 257 |
+
SCTK Version 1.0
|
| 258 |
+
[/] Release under new name SCTK
|
| 259 |
+
[/] Modified the label extraction function 'parse_input_comment_line'
|
| 260 |
+
to ignore duplicate LABEL and CATEGORY lines.
|
| 261 |
+
[+] Added a sequence number to each PATH in alignment sequence so
|
| 262 |
+
that the input sequence of alignments can be reconstructed.
|
| 263 |
+
[+] Added the capability to keep track of reference confidence scores
|
| 264 |
+
when aligning ref ctm's against hyp ctm's.
|
| 265 |
+
[*] Corrected the .pre dump of the alignment structure when the case
|
| 266 |
+
sensitive flag is set. The error was introduced by modifications.
|
| 267 |
+
[*] Fixed a problem in TEXT_strcasecmp(). It failed to handle the
|
| 268 |
+
case where str1 was shorter than srt2.
|
| 269 |
+
[*] Fixed a problem in 'align.c/extract_speaker()' a NULL was not
|
| 270 |
+
terminating each newly extracted speaker id.
|
| 271 |
+
[/] Revised the reports lut, sum, snt, spkr,ovr to handle speakers W/o
|
| 272 |
+
any reference tokens, In the sum report, the speakers W/o
|
| 273 |
+
reference tokens are ignored when computing the speaker
|
| 274 |
+
mean, sd, and median.
|
| 275 |
+
[*] fixed a bug in tcslite.sh which output an error when test 5 was
|
| 276 |
+
run and the use of gnudiff was not compiled in to sclite.
|
| 277 |
+
[*] fixed a bug in config.in which was propagated to config.sh. The
|
| 278 |
+
problem was a missing backquote on "uname -s".
|
| 279 |
+
[+] Added error checking to the ctm2ctm alignment module. No checking
|
| 280 |
+
had been performed to make sure the ref and hyp files had the
|
| 281 |
+
same conversations and channels.
|
| 282 |
+
[/] Fixed a problem in 'expand_words_to_chars()' it was not deleting
|
| 283 |
+
hyphens from single character words do to an incorrect conditional.
|
| 284 |
+
[+] Added a new way to score, 'Optionally Deletable'. This required a
|
| 285 |
+
major set of modifications and generalizations.
|
| 286 |
+
[/] Modified the character scoring proceedure so that confidence scores
|
| 287 |
+
are imputed to the sub-characters making up the word.
|
| 288 |
+
[*] Corrected a bug in Compute_ROC:det.c which incorrectly incremented
|
| 289 |
+
pointers.
|
| 290 |
+
|
| 291 |
+
SCLITE Version 1.4a - Release May 29, 1997
|
| 292 |
+
[/] Cleaned the distribution to be ISO-9669 compatable
|
| 293 |
+
|
| 294 |
+
SCLITE Version 1.4 - Release October 18, 1996
|
| 295 |
+
[/] Forced confidence values to flow through the entire data pipeline.
|
| 296 |
+
[+] Added the '-C' option to include 'normalized cross-entropy'
|
| 297 |
+
statistics in all output files.
|
| 298 |
+
[+] Added algo2 for the inferred segmentation option '-S'
|
| 299 |
+
[+] Added "IGNORE_TIME_SEGMENT_IN_SCORING" as an allowable
|
| 300 |
+
transcript for an stm record. See the stm file documentation for
|
| 301 |
+
it's use.
|
| 302 |
+
|
| 303 |
+
SCLITE Version 1.3 - Release April 22, 1996
|
| 304 |
+
[*] Corrected a minor makefile inconsistency. (One file was compiled
|
| 305 |
+
twice).
|
| 306 |
+
[/] Changed Network_dp_align to optionally include NULLS in the output.
|
| 307 |
+
[/] Changed the -m option to now reduce either the reference or
|
| 308 |
+
hypothesis file, or both before alignment takes place.
|
| 309 |
+
[*] fixed an uninitialized variable in alex.c which became apparent
|
| 310 |
+
in the 'dtl' and 'spk' reports.
|
| 311 |
+
[*] Corrected a argument passed to fill_STM_structure() in stm2ctm.c
|
| 312 |
+
which caused a warning on some compilers.
|
| 313 |
+
[+] Added a bug report proceedures.
|
| 314 |
+
|
| 315 |
+
SCLITE Version 1.2a - Release March 15, 1996
|
| 316 |
+
[*] Forgot one minor file in the distrubution, "sclite.c".
|
| 317 |
+
|
| 318 |
+
SCLITE Version 1.2 - Release March 8, 1996
|
| 319 |
+
[*] Corrected a bug in the lur report that was activated if a speaker
|
| 320 |
+
had no reference words, but had errorneously hypothesized words.
|
| 321 |
+
[+] Added the sent, spk, and ovrdtl reports to sclite.
|
| 322 |
+
[+] Added the option to score CTM to CTM files. This is essentially
|
| 323 |
+
the same code used for the first SWB LVCSR evaluation, however, since
|
| 324 |
+
the new network alignment routines were used unifying the alignment
|
| 325 |
+
into a single step, alignments will differ slightly from those
|
| 326 |
+
generated with the old scoring package.
|
| 327 |
+
[+] Added the "-T" option to do time-mediated alignments.
|
| 328 |
+
[-] Removed the size limitations in the report generation software,
|
| 329 |
+
'rpg.c'. There is still are hard limit on the length of characters
|
| 330 |
+
for each cell of 200.
|
| 331 |
+
[/] Standardize program exit codes to be 0 for successfull execution
|
| 332 |
+
and 1 for failed execution.
|
| 333 |
+
[*] Correct the handling of NULL alternatives in the hypothesis file.
|
| 334 |
+
Scoring reference to hypothesis yields the same error rates as
|
| 335 |
+
scoring hypothesis to reference. The only difference is insertions
|
| 336 |
+
are swapped with deletions.
|
| 337 |
+
[+] The installer now has the option to enable or disable alignments
|
| 338 |
+
via GNU's diff.
|
| 339 |
+
[+] Added informative error messages when label definitions, which are
|
| 340 |
+
used by the 'lur' report, have been improperly specified.
|
| 341 |
+
|
| 342 |
+
SCLITE Version 1.1 - Release September 27, 1995
|
| 343 |
+
[+] New/modified output options:
|
| 344 |
+
* Added options to '-o': 'none' to not make any reports,
|
| 345 |
+
'sgml' to create an sgml file for alignments, 'lur' for the
|
| 346 |
+
labeled utterance report.
|
| 347 |
+
* '-p'. Pipes output of alignments to other sclite utilities.
|
| 348 |
+
in the sgml format.
|
| 349 |
+
[+] New Input options:
|
| 350 |
+
* '-P' accepts piped sgml format input from other sclite utilities.
|
| 351 |
+
* '-e' identifies the input character encoding.
|
| 352 |
+
[+] New alignment options:
|
| 353 |
+
* '-S' performs an inferred word segmentation algorithm rather
|
| 354 |
+
than using the word segmentation of the reference and hyp files.
|
| 355 |
+
* '-F' aligns fragments to words with matching substrings and scores
|
| 356 |
+
them as correct.
|
| 357 |
+
* Changed the -c option to include the optional flag "ASCIITOO"
|
| 358 |
+
which also splits ascii words when doing a character alignment.
|
| 359 |
+
Also added another flag, "DH", to delete hyphens from the ref and
|
| 360 |
+
hyp transcripts before alingment.
|
| 361 |
+
[*] Fixes and Changes:
|
| 362 |
+
* Modified the '-n' option to handle multiple hyp files.
|
| 363 |
+
* Fixed a bug in 'parse_stm_line' to handle empty texts.
|
| 364 |
+
* Modified the read function for a CTM file so that any length
|
| 365 |
+
file will be properly read in.
|
| 366 |
+
[/] Compiled and tested using the HP-UX and DEC OSF1 native cc
|
| 367 |
+
compilers.
|
| 368 |
+
|
| 369 |
+
SCLITE Version 1.0 - Release July 27, 1995
|
| 370 |
+
[+] Initial Release
|
SCTK/DISCLAIMER
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
This software was developed at the National Institute of Standards and
|
| 2 |
+
Technology by employees of the Federal Government in the course of their
|
| 3 |
+
official duties. Pursuant to title 17 Section 105 of the United States Code
|
| 4 |
+
this software is not subject to copyright protection and is in the public
|
| 5 |
+
domain. SCTK is an experimental system. NIST assumes no responsibility
|
| 6 |
+
whatsoever for its use by other parties, and makes no guarantees, expressed or
|
| 7 |
+
implied, about its quality, reliability, or any other characteristic. We would
|
| 8 |
+
appreciate acknowledgement if the software is used.
|
| 9 |
+
|
| 10 |
+
THIS SOFTWARE IS PROVIDED "AS IS." With regard to this software, NIST MAKES NO
|
| 11 |
+
EXPRESS OR IMPLIED WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING
|
| 12 |
+
MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
|
SCTK/Dockerfile
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
FROM alpine:3.8
|
| 2 |
+
|
| 3 |
+
LABEL Description="NIST Speech Recognition Scoring Toolkit (SCTK)"
|
| 4 |
+
|
| 5 |
+
# SCTK dependencies
|
| 6 |
+
RUN apk add --update \
|
| 7 |
+
alpine-sdk \
|
| 8 |
+
git \
|
| 9 |
+
perl \
|
| 10 |
+
&& rm -rf /var/cache/apk/*
|
| 11 |
+
|
| 12 |
+
WORKDIR /opt
|
| 13 |
+
|
| 14 |
+
# Build and install all SCTK tools
|
| 15 |
+
RUN git clone https://github.com/usnistgov/SCTK \
|
| 16 |
+
&& cd SCTK \
|
| 17 |
+
&& make config \
|
| 18 |
+
&& make all \
|
| 19 |
+
&& make install \
|
| 20 |
+
&& make clean \
|
| 21 |
+
&& cp ./bin/* /usr/local/bin/
|
| 22 |
+
|
| 23 |
+
WORKDIR /var/sctk
|
| 24 |
+
|
| 25 |
+
CMD ["sclite"]
|
SCTK/LICENSE.md
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Full details can be found at: http://nist.gov/data/license.cfm
|
| 2 |
+
|
| 3 |
+
LICENSING STATEMENT
|
| 4 |
+
-------------------
|
| 5 |
+
|
| 6 |
+
NIST-developed software is provided by NIST as a public service. You may use,
|
| 7 |
+
copy, and distribute copies of the software in any medium, provided that you
|
| 8 |
+
keep intact this entire notice. You may improve, modify, and create derivative
|
| 9 |
+
works of the software or any portion of the software, and you may copy and
|
| 10 |
+
distribute such modifications or works. Modified works should carry a notice
|
| 11 |
+
stating that you changed the software and should note the date and nature of
|
| 12 |
+
any such change. Please explicitly acknowledge the National Institute of
|
| 13 |
+
Standards and Technology as the source of the software.
|
| 14 |
+
|
| 15 |
+
NIST-developed software is expressly provided "AS IS." NIST MAKES NO WARRANTY
|
| 16 |
+
OF ANY KIND, EXPRESS, IMPLIED, IN FACT, OR ARISING BY OPERATION OF LAW,
|
| 17 |
+
INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS
|
| 18 |
+
FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND DATA ACCURACY. NIST NEITHER
|
| 19 |
+
REPRESENTS NOR WARRANTS THAT THE OPERATION OF THE SOFTWARE WILL BE
|
| 20 |
+
UNINTERRUPTED OR ERROR-FREE, OR THAT ANY DEFECTS WILL BE CORRECTED. NIST DOES
|
| 21 |
+
NOT WARRANT OR MAKE ANY REPRESENTATIONS REGARDING THE USE OF THE SOFTWARE OR
|
| 22 |
+
THE RESULTS THEREOF, INCLUDING BUT NOT LIMITED TO THE CORRECTNESS, ACCURACY,
|
| 23 |
+
RELIABILITY, OR USEFULNESS OF THE SOFTWARE.
|
| 24 |
+
|
| 25 |
+
You are solely responsible for determining the appropriateness of using and
|
| 26 |
+
distributing the software and you assume all risks associated with its use,
|
| 27 |
+
including but not limited to the risks and costs of program errors, compliance
|
| 28 |
+
with applicable laws, damage to or loss of data, programs or equipment, and the
|
| 29 |
+
unavailability or interruption of operation. This software is not intended to
|
| 30 |
+
be used in any situation where a failure could cause risk of injury or damage
|
| 31 |
+
to property. The software developed by NIST employees is not subject to
|
| 32 |
+
copyright protection within the United States.
|
SCTK/README.md
ADDED
|
@@ -0,0 +1,146 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# SCTK, the NIST Scoring Toolkit
|
| 2 |
+
|
| 3 |
+
**File:** README.md
|
| 4 |
+
|
| 5 |
+
**Date:** October 28, 2021
|
| 6 |
+
|
| 7 |
+
**SCTK Version:** 2.4.12
|
| 8 |
+
|
| 9 |
+
This directory contains SCTK, the NIST Scoring Toolkit. SCTK contains the
|
| 10 |
+
source code, documentation and example data for the following programs:
|
| 11 |
+
- sclite V2.10 - "Score Lite",
|
| 12 |
+
- sc_stats V1.3 - sclite's Statistical Significance Comparison tool
|
| 13 |
+
- rover V0.1 - Recognition Output Voting Error Reduction
|
| 14 |
+
- asclite V1.11 - Multidimensional alignment replacement for sclite
|
| 15 |
+
|
| 16 |
+
## SCTK Basic Installation
|
| 17 |
+
|
| 18 |
+
To install compile and install *sctk*, from the main directory type the commands:
|
| 19 |
+
|
| 20 |
+
% make config
|
| 21 |
+
% make all
|
| 22 |
+
% make check
|
| 23 |
+
% make install
|
| 24 |
+
% make doc
|
| 25 |
+
|
| 26 |
+
The `make config` command executes the script `config.sh` in the `src/sclite` directory and initialized the makefiles in the rest of the src directories.
|
| 27 |
+
|
| 28 |
+
You can specify installation directory by changing the `PREFIX` variable in the `src/makefile` file. By default, all executables will be installed in `bin` of this directory. Be sure to add the installation directory to your `PATH` variable in order to access the programs.
|
| 29 |
+
|
| 30 |
+
The `make all` command will compile all toolkit executables and libraries. Compilation of `rfilter1` may fail if your version of `libC` is very new because it now includes the `strcmp*` family of functions. You can use the libC versions, and avoid compilation complaints, by following the instructions in `src/rfilter1/makefile`.
|
| 31 |
+
|
| 32 |
+
The `make check` will perform self tests on the toolkit. Please report any problems to Jon Fiscus at NIST with any bug reports or comments at the email address <jonathan.fiscus@nist.gov>. Please include the version number and any other relevant information such as OS, compiler, etc.
|
| 33 |
+
|
| 34 |
+
The `make install` command will copy the executables to `$PREFIX` (see `make config` above.)
|
| 35 |
+
|
| 36 |
+
UNIX-style manual pages and HTML formatted manuals are provided in the `doc` directory.
|
| 37 |
+
|
| 38 |
+
### Bundled Software
|
| 39 |
+
|
| 40 |
+
This version of SCTK includes the CMU-Cambridge Statistical Language Modeling Toolkit v2. Included in STCK is the complete source code tree and documentation. The toolkit has been included so that SCLITE can use a language model to compute conditional word weights for word-weighted scoring.
|
| 41 |
+
|
| 42 |
+
### Optional Software/Notes:
|
| 43 |
+
|
| 44 |
+
**sclite**:
|
| 45 |
+
To use the interactive installation for *sclite*, edit the file `src/sclite/config.sh` at line 36, set the `user_interaction=1` it will ask you during the configuration (`make config`) if you want to use *GNU diff* instead of sclite and CMU-Cambridge SLM for sclite. Those choices are not recommended and not used anymore.
|
| 46 |
+
|
| 47 |
+
*sclite* has the ability to use GNU's `diff` utility as an alternate string alignment method. The installer has the choice whether or not to include this ability in the compiled version.
|
| 48 |
+
|
| 49 |
+
**GNU diff**:
|
| 50 |
+
If the use of GNU's `diff` is desired, you will need GNU's `diff` utility from their `diffutils` distribution (version 2.7). If you cannot locate this distribution, a copy is available at <ftp://jaguar.ncsl.nist.gov/pub/diffutils-2.7.tar>. When you install `diff`, make sure the executable is installed as `gdiff`, `gnudiff` or `diffgnu` (`config.sh` expects it to be called one of these).
|
| 51 |
+
|
| 52 |
+
*Special Note to SGI owners: When installing GNU's `diff` make sure to call it `gnudiff` or `diffgnu`. If you use `gdiff` the executable name may be overshadowed by a pre-existing executable.*
|
| 53 |
+
|
| 54 |
+
**utf\_filt**:
|
| 55 |
+
`utf_filt` is using SGML external software and modules like SGMLS perl module and `nsgmls` program which have been updated and continued: OpenSP (<http://sourceforge.net/project/showfiles.php?group_id=2115&package_id=2869>). Version v1.5.2 of OpenSP have been tested and working with the current
|
| 56 |
+
version of `utf_filt`.
|
| 57 |
+
|
| 58 |
+
*Special Note to Cygwin users:* it has been reported that compilation of `rfilter1` can fail in some case, please read the OPTIONS part of the `rfilter1/makefile` and adapt accordingly before retrying compilation.
|
| 59 |
+
|
| 60 |
+
|
| 61 |
+
**64 bits Compilation**:
|
| 62 |
+
With big alignments, sctk needs to be compiled in 64 bits. By default, the C/C++ software are compiled in 32 bits with the options (`-Os`) but can be compiled in 64 bits. To do so, `-m64` is added to the CFLAGS variable in `src/asclite/core/makefile`, `src/asclite/test/makefile`, `src/rfilter1/makefile` and `src/sclite/makefile`.
|
| 63 |
+
|
| 64 |
+
Example of `CFLAGS` for OSX 10.4+: `-fast -m64 -arch x86_64 -arch ppc64`
|
| 65 |
+
|
| 66 |
+
## Known to compile on:
|
| 67 |
+
|
| 68 |
+
The distribution was initially written in ANSI C on a SUN Workstation. To date, the code has been successfully compiled and tested on the following platforms:
|
| 69 |
+
|
| 70 |
+
Systems | Version
|
| 71 |
+
------------------------------------------ |---------------------------
|
| 72 |
+
SUN SunOS 4.1.4 using gcc |
|
| 73 |
+
SUN Solaris SunOS 5.4 using cc |
|
| 74 |
+
SUN Solaris SunOS 5.5 using gcc | 1.0 - 1.2
|
| 75 |
+
SGI IRIX 5.3 using cc |
|
| 76 |
+
SGI IRIX 4.0.3H using gcc |
|
| 77 |
+
HP 735 using gcc |
|
| 78 |
+
HP using "cc" | 1.0 - 1.2
|
| 79 |
+
DEC Alpha running DEC OSF/1 V2.0 "cc -std1" |
|
| 80 |
+
DEC Alpha running DEC OSF/1 V2.0 "gcc" | 1.1
|
| 81 |
+
IBM Powerstation running AIX V3.2 using cc | 1.0
|
| 82 |
+
IBM Powerstation running AIX V3.2 using gcc [*] | 1.0
|
| 83 |
+
Linux Version 2.0.33 | 1.0 - 1.2
|
| 84 |
+
Cygwin | 1.3 - 2.0B2
|
| 85 |
+
Linux Version 2.2.17 | 1.3 - 2.0B2
|
| 86 |
+
Linux Version 2.4.20-20-9 [**] | 1.3 - 2.1.7
|
| 87 |
+
Linux Version 2.6.19.fc5 | 2.2.0 - 2.2.4
|
| 88 |
+
Linux Version 2.6.9-5.EL (gcc 3.4.6-3) | 2.2.0 - 2.2.4
|
| 89 |
+
Darwin Version 7.4.0 | 1.3
|
| 90 |
+
Darwin Version 8.5.0 (gcc v4.0.1 build 5367) | 2.1.2 - 2.3-rc1
|
| 91 |
+
Darwin Version 8.11.0 (gcc v4.0.1 build 5367) | 2.3-rc2 - 2.4.0
|
| 92 |
+
Darwin Version 9.6.0 (gcc v4.0.1 build 5490) | 2.3.6 - 2.4.0
|
| 93 |
+
RedHat Fedora 9 (gcc v4.3.0-8) | 2.3.9 - 2.4.0
|
| 94 |
+
Darwin Version 10.8.0 (gcc version 4.2.1 (Apple Inc. build 5666) | 2.4.2 - 2.4.8
|
| 95 |
+
|
| 96 |
+
[\*] compiled with warning messages, but successful self test
|
| 97 |
+
|
| 98 |
+
[\*\*] compiled and ran, but test6, which uses GNU's diff for alignment fails. The use of DIFF for alignment is rarely used and the failure can be safely ignored.
|
| 99 |
+
|
| 100 |
+
## Docker
|
| 101 |
+
|
| 102 |
+
A Dockerfile is included to build and use SCTK without compiling the codebase for your particular platform.
|
| 103 |
+
|
| 104 |
+
To build:
|
| 105 |
+
|
| 106 |
+
```
|
| 107 |
+
docker build -t sctk .
|
| 108 |
+
```
|
| 109 |
+
|
| 110 |
+
### Hypothesis Test
|
| 111 |
+
To run `sclite` on a reference file and hypothesis file, you need to map a volume to your host.
|
| 112 |
+
|
| 113 |
+
Linux or a Mac:
|
| 114 |
+
```
|
| 115 |
+
docker run -it -v $PWD:/var/sctk sctk sclite -i wsj -r ref.txt -h hyp.txt
|
| 116 |
+
```
|
| 117 |
+
Windows:
|
| 118 |
+
```
|
| 119 |
+
docker run -it -v /myhostpath:/var/sctk sctk sclite -i wsj -r ref.txt -h hyp.txt
|
| 120 |
+
```
|
| 121 |
+
|
| 122 |
+
### sc_stats
|
| 123 |
+
To run more advanced features of the SDK, shell into the container with a volume mapped to your local files:
|
| 124 |
+
```
|
| 125 |
+
docker run -it -v $PWD:/var/sctk sctk sh
|
| 126 |
+
/var/sctk #
|
| 127 |
+
```
|
| 128 |
+
Then run sclite piped to sc_stats:
|
| 129 |
+
```
|
| 130 |
+
sclite -i wsj -r ref.txt -h hyp1.txt -h hyp2.txt -o sgml stdout | sc_stats -p -t mapsswe -u
|
| 131 |
+
sc_stats: 1.3
|
| 132 |
+
Beginning Multi-System comparisons and reports
|
| 133 |
+
Performing the Matched Pair Sentence Segment (Word Error) Test
|
| 134 |
+
Printing Unified Statistical Test Reports
|
| 135 |
+
Output written to 'Ensemble.stats.unified'
|
| 136 |
+
|
| 137 |
+
Successful Completion
|
| 138 |
+
```
|
| 139 |
+
|
| 140 |
+
## Contact
|
| 141 |
+
|
| 142 |
+
If you have questions, please address them to Jonathan Fiscus at <jonathan.fiscus@nist.gov>
|
| 143 |
+
|
| 144 |
+
## License
|
| 145 |
+
|
| 146 |
+
See LICENSE.md for details or <http://www.nist.gov/open/license.cfm>
|
SCTK/TODO
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
File: TODO
|
| 2 |
+
----------
|
| 3 |
+
|
| 4 |
+
High Priority:
|
| 5 |
+
[ ] fix utf_filt tests
|
| 6 |
+
[ ] fix mdeval tests
|
| 7 |
+
[x] fix empty inputs
|
| 8 |
+
[-] STM Validators (need tests)
|
| 9 |
+
[-] RTTM Validators (need tests)
|
| 10 |
+
[x] CTM Validators
|
| 11 |
+
[x] cumulative overlap table in HTML reports
|
| 12 |
+
[-] update docs
|
| 13 |
+
[ ] acomp
|
| 14 |
+
[x] align2html
|
| 15 |
+
[x] asclite
|
| 16 |
+
[ ] chfilt
|
| 17 |
+
[ ] csrfilt
|
| 18 |
+
[x] ctmValidator
|
| 19 |
+
[ ] def_art
|
| 20 |
+
[ ] hamzaNorm
|
| 21 |
+
[ ] hubscr
|
| 22 |
+
[ ] md-eval
|
| 23 |
+
[x] mergectm2rttm
|
| 24 |
+
[ ] rfilter1
|
| 25 |
+
[ ] rover
|
| 26 |
+
[ ] rttmSmooth
|
| 27 |
+
[ ] rttmSort
|
| 28 |
+
[ ] rttmValidator
|
| 29 |
+
[ ] sc_stats
|
| 30 |
+
[ ] sclite
|
| 31 |
+
[ ] spkr2sad
|
| 32 |
+
[ ] stm2rttm
|
| 33 |
+
[ ] stmValidator
|
| 34 |
+
[ ] tanweenFilt
|
| 35 |
+
[ ] utf_filt
|
| 36 |
+
[ ] Re-implement MAPPSWE segmentation to take into account overlapping speech
|
| 37 |
+
|
| 38 |
+
Medium Priority:
|
| 39 |
+
[x] use UEMs in asclite
|
| 40 |
+
[x] empty channel (ihm)
|
| 41 |
+
[x] prefilter
|
| 42 |
+
[x] inter segment gaps
|
| 43 |
+
[x] time-based alignments
|
| 44 |
+
[ ] alignment visualization program
|
| 45 |
+
[ ] add SASTT cookbook to docs
|
| 46 |
+
[ ] multi-threads
|
| 47 |
+
|
| 48 |
+
Low Priority:
|
| 49 |
+
[x] additive cost based on word aligment distances
|
| 50 |
+
[ ] rover implementation and experiments
|
| 51 |
+
[ ] Alignment testing
|
| 52 |
+
[ ] align the 4 systems in /slp/raid2/ROVER2/AlignmentWord/data
|
| 53 |
+
[ ] word alignment
|
| 54 |
+
[ ] time mediated alignment
|
| 55 |
+
[ ] generate a similar alignment file to /slp/raid2/ROVER2/AlignmentWord/data/MF.putative.train
|
| 56 |
+
[ ] consult with Jon to verify output
|
| 57 |
+
[ ] Re-activate mfalign.
|
| 58 |
+
[ ] Run voting experiment comparing old alignment to new alignments
|
SCTK/makefile
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
######### Main Makefile for the sctk #############
|
| 2 |
+
|
| 3 |
+
|
| 4 |
+
#### Creation Date: Aug 7, 1997
|
| 5 |
+
#
|
| 6 |
+
# version: 0.3
|
| 7 |
+
# 2006-02-20 jerome
|
| 8 |
+
# [/] make check, will output the uname
|
| 9 |
+
#
|
| 10 |
+
# version: 0.2
|
| 11 |
+
# 2006-01-11 jerome
|
| 12 |
+
# [/] casper to gaston for CVS
|
| 13 |
+
|
| 14 |
+
MAKE=make
|
| 15 |
+
|
| 16 |
+
.PHONY : install
|
| 17 |
+
|
| 18 |
+
all clean install config:
|
| 19 |
+
(mkdir -p bin)
|
| 20 |
+
(cd src && if test -f makefile ; then $(MAKE) $@ ; fi)
|
| 21 |
+
|
| 22 |
+
.PHONY : doc
|
| 23 |
+
|
| 24 |
+
doc:
|
| 25 |
+
(cd doc && if test -f makefile ; then $(MAKE) all ; fi)
|
| 26 |
+
|
| 27 |
+
distclean:
|
| 28 |
+
(rm -f bin/*)
|
| 29 |
+
(cd src && if test -f makefile ; then $(MAKE) $@ ; fi)
|
| 30 |
+
|
| 31 |
+
dist:
|
| 32 |
+
@ echo "Make the distribution"
|
| 33 |
+
@ echo "sctk-"`grep Version: README | head -1 | perl -pe 's/.*Version:\s+//; s/\s+\$$//; s/\s+/_/g'` > .fname
|
| 34 |
+
@ echo "Building a release version" `cat .fname`
|
| 35 |
+
@ echo "Verifying and up-to-date CVS copy"
|
| 36 |
+
@ cvs -d gaston.ncsl.nist.gov:/home/sware/cvs up
|
| 37 |
+
@ cvs -d gaston.ncsl.nist.gov:/home/sware/cvs co -d `cat .fname` sctk
|
| 38 |
+
@ echo "Building the TAR file"
|
| 39 |
+
@ echo `cat .fname`"-"`date -u +%Y%m%d-%H%M`"Z.tar.bz2" > .distname
|
| 40 |
+
@ find `cat .fname` -name "._*" -delete
|
| 41 |
+
@ tar jcf `cat .distname` --exclude CVS --exclude .svn --exclude TODO `cat .fname`
|
| 42 |
+
@ md5 `cat .distname` > `cat .distname`.md5
|
| 43 |
+
@ (cd `cat .fname` && make config all check install doc)
|
| 44 |
+
@ rm -rf `cat .fname` .fname .distname
|
| 45 |
+
|
| 46 |
+
cvs-tag-current-distribution:
|
| 47 |
+
@ echo "Tagging the current CVS for distribution '"`grep Version: README | head -1 | perl -pe 's/.*Version:\s+/release-/; s/\s+\$$//; s/\s+/_/g; s/\./-/g'`"'"
|
| 48 |
+
@ cvs -d gaston:/home/sware/cvs tag `grep Version: README | head -1 | perl -pe 's/.*Version:\s+/release-/; s/\s+\$$//; s/\s+/_/g; s/\./-/g'`
|
| 49 |
+
|
| 50 |
+
check:
|
| 51 |
+
@ uname -a
|
| 52 |
+
(cd src && if test -f makefile ; then $(MAKE) $@ ; fi)
|
SCTK/src/sclite/sgml.h
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
|
| 2 |
+
#define MAX_TAGS 10
|
| 3 |
+
#define MAX_ATTRIB 30
|
| 4 |
+
|
| 5 |
+
typedef struct sgml_label_struct{
|
| 6 |
+
TEXT *name;
|
| 7 |
+
int attrib_num;
|
| 8 |
+
TEXT *attrib_name[MAX_ATTRIB];
|
| 9 |
+
TEXT *attrib_value[MAX_ATTRIB];
|
| 10 |
+
} SGML_LABEL;
|
| 11 |
+
|
| 12 |
+
typedef struct sgml_tags{
|
| 13 |
+
int num_tags;
|
| 14 |
+
SGML_LABEL tags[MAX_TAGS];
|
| 15 |
+
} SGML;
|
| 16 |
+
|
| 17 |
+
void init_SGML(SGML *sg);
|
| 18 |
+
void dump_SGML_tag(SGML *sg, int n, FILE *fp);
|
| 19 |
+
int add_SGML_tag(SGML *sg, TEXT *str);
|
| 20 |
+
TEXT *delete_SGML_tag(SGML *sg, TEXT *str);
|
| 21 |
+
TEXT *get_SGML_attrib(SGML *sg, int tn, TEXT *sname);
|
| 22 |
+
|
ensemble.py
ADDED
|
@@ -0,0 +1,184 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#------------------------------------------------------------------------------
|
| 2 |
+
#------------------------------------------------------------------------------
|
| 3 |
+
|
| 4 |
+
import os
|
| 5 |
+
import sys
|
| 6 |
+
import glob
|
| 7 |
+
import shutil
|
| 8 |
+
import subprocess
|
| 9 |
+
import numpy as np
|
| 10 |
+
import pandas as pd
|
| 11 |
+
from argparse import ArgumentParser
|
| 12 |
+
|
| 13 |
+
parser = ArgumentParser()
|
| 14 |
+
parser.add_argument('--input_dir', default='mdc_asr_shared_task_test_data', type=str, help='Directory with a test dataset')
|
| 15 |
+
parser.add_argument('--output_dir_single', default='submission_single_model', type=str, help='Output directory for a single model submission')
|
| 16 |
+
parser.add_argument('--output_dir_ensemble', default='submission_ensemble', type=str, help='Output directory for an ensemble submission')
|
| 17 |
+
parser.add_argument('--rover_path', default='./SCTK/bin/rover', type=str, help='Path to the ROVER binary')
|
| 18 |
+
args = parser.parse_args()
|
| 19 |
+
for a in [a for a in vars(args) if '__' not in a]: print('%-25s %s' % (a, vars(args)[a]))
|
| 20 |
+
|
| 21 |
+
#------------------------------------------------------------------------------
|
| 22 |
+
#------------------------------------------------------------------------------
|
| 23 |
+
|
| 24 |
+
def parse_rover_ctm(ctm_path):
|
| 25 |
+
"""
|
| 26 |
+
Parse CTM ensemble file and convert to submission format
|
| 27 |
+
|
| 28 |
+
Parameters:
|
| 29 |
+
ctm_path : str
|
| 30 |
+
Path to a CTM ensemble file
|
| 31 |
+
|
| 32 |
+
Returns:
|
| 33 |
+
result_df : pd.DataFrame
|
| 34 |
+
DataFrame with final transcription strings
|
| 35 |
+
"""
|
| 36 |
+
# Define CTM column names
|
| 37 |
+
# CTM Format: ID channel start duration word confidence
|
| 38 |
+
col_names = ['audio_file', 'channel', 'start', 'duration', 'word', 'conf']
|
| 39 |
+
|
| 40 |
+
# Read the file
|
| 41 |
+
df = pd.read_csv(ctm_path, sep=r'\s+', names=col_names, engine='python')
|
| 42 |
+
|
| 43 |
+
# Sort by file ID and then by start time
|
| 44 |
+
df = df.sort_values(by=['audio_file', 'start'])
|
| 45 |
+
|
| 46 |
+
# Group by audio file and join words
|
| 47 |
+
result_df = df.groupby('audio_file')['word'].apply(lambda x: ' '.join(str(w).strip() for w in x)).reset_index()
|
| 48 |
+
# or with cleaning
|
| 49 |
+
# result_df = df.groupby('audio_file')['word'].apply(lambda x: ' '.join(str(w).strip() for w in x if str(w) not in ['@', '*', '<unk>'])).reset_index()
|
| 50 |
+
|
| 51 |
+
# Rename the column to 'sentence'
|
| 52 |
+
result_df.rename(columns={'word': 'sentence'}, inplace=True)
|
| 53 |
+
|
| 54 |
+
return result_df
|
| 55 |
+
|
| 56 |
+
#------------------------------------------------------------------------------
|
| 57 |
+
# Run ROVER ensembling
|
| 58 |
+
#------------------------------------------------------------------------------
|
| 59 |
+
|
| 60 |
+
os.makedirs(args.output_dir_single, exist_ok=True)
|
| 61 |
+
os.makedirs(args.output_dir_ensemble, exist_ok=True)
|
| 62 |
+
|
| 63 |
+
ctm_files = sorted(glob.glob('output_*_ctm/*/*.ctm'))
|
| 64 |
+
# print(len(ctm_files))
|
| 65 |
+
|
| 66 |
+
for file in ctm_files:
|
| 67 |
+
shutil.copy(file, os.path.join(args.output_dir_ensemble, os.path.basename(file)))
|
| 68 |
+
|
| 69 |
+
tasks = ['multilingual-general', 'unseen-langs']
|
| 70 |
+
langs_general = ['aln', 'bew', 'bxk', 'cgg', 'el-CY', 'hch', 'kcn', 'koo',
|
| 71 |
+
'led', 'lke', 'lth', 'meh', 'mmc', 'pne', 'ruc', 'rwm',
|
| 72 |
+
'sco', 'tob', 'top', 'ttj', 'ukv']
|
| 73 |
+
langs_unseen = ['ady', 'bas', 'kbd', 'qxp', 'ush']
|
| 74 |
+
|
| 75 |
+
langs = langs_general + langs_unseen
|
| 76 |
+
|
| 77 |
+
for lang in langs:
|
| 78 |
+
|
| 79 |
+
res = subprocess.run(
|
| 80 |
+
[
|
| 81 |
+
args.rover_path,
|
| 82 |
+
'-h', os.path.join(args.output_dir_ensemble, '%s_1.ctm' % lang), 'ctm',
|
| 83 |
+
'-h', os.path.join(args.output_dir_ensemble, '%s_2.ctm' % lang), 'ctm',
|
| 84 |
+
'-h', os.path.join(args.output_dir_ensemble, '%s_3.ctm' % lang), 'ctm',
|
| 85 |
+
'-h', os.path.join(args.output_dir_ensemble, '%s_4.ctm' % lang), 'ctm',
|
| 86 |
+
'-o', os.path.join(args.output_dir_ensemble, '%s_ens.ctm' % lang),
|
| 87 |
+
'-m', 'avgconf',
|
| 88 |
+
'-s',
|
| 89 |
+
'-T',
|
| 90 |
+
],
|
| 91 |
+
stdout=subprocess.DEVNULL,
|
| 92 |
+
check=True,
|
| 93 |
+
)
|
| 94 |
+
|
| 95 |
+
#------------------------------------------------------------------------------
|
| 96 |
+
# Parse ensemble CTM files and create TSV files
|
| 97 |
+
#------------------------------------------------------------------------------
|
| 98 |
+
|
| 99 |
+
for input_task in tasks:
|
| 100 |
+
|
| 101 |
+
if input_task == 'multilingual-general':
|
| 102 |
+
langs = langs_general
|
| 103 |
+
else:
|
| 104 |
+
langs = langs_unseen
|
| 105 |
+
|
| 106 |
+
os.makedirs(os.path.join(args.output_dir_ensemble, input_task), exist_ok=True)
|
| 107 |
+
|
| 108 |
+
for lang in langs:
|
| 109 |
+
print('-'*50)
|
| 110 |
+
print('Processing lang:', lang)
|
| 111 |
+
|
| 112 |
+
#---- Load data
|
| 113 |
+
|
| 114 |
+
input_file = os.path.join(args.input_dir, input_task, '%s.tsv' % lang)
|
| 115 |
+
corpus_df = pd.read_csv(input_file, sep='\t')
|
| 116 |
+
corpus_df['sentence'] = 'nanana'
|
| 117 |
+
print('Test size:', len(corpus_df))
|
| 118 |
+
|
| 119 |
+
#---- Parse CTM ensemble file
|
| 120 |
+
|
| 121 |
+
parsed_df = parse_rover_ctm(os.path.join(args.output_dir_ensemble, '%s_ens.ctm' % lang))
|
| 122 |
+
|
| 123 |
+
#---- Save
|
| 124 |
+
|
| 125 |
+
corpus_df = corpus_df.drop('sentence', axis=1)
|
| 126 |
+
corpus_df = pd.merge(corpus_df, parsed_df, on='audio_file', how='left')
|
| 127 |
+
|
| 128 |
+
out_file = os.path.join(args.output_dir_ensemble, input_task, os.path.basename(input_file))
|
| 129 |
+
corpus_df[['audio_file', 'sentence']].to_csv(out_file, index=False, sep='\t')
|
| 130 |
+
print('Saved:', out_file)
|
| 131 |
+
|
| 132 |
+
#------------------------------------------------------------------------------
|
| 133 |
+
# Create final submission from the best single model mms-1b-l1107
|
| 134 |
+
# We copy "multilingual-general" and "unseen-langs" from "output_2_submission", and "small-model" from "output_5_submission"
|
| 135 |
+
#------------------------------------------------------------------------------
|
| 136 |
+
|
| 137 |
+
shutil.copytree('output_2_submission/multilingual-general', os.path.join(args.output_dir_single, 'multilingual-general'))
|
| 138 |
+
shutil.copytree('output_2_submission/unseen-langs', os.path.join(args.output_dir_single, 'unseen-langs'))
|
| 139 |
+
|
| 140 |
+
os.makedirs(os.path.join(args.output_dir_single, 'small-model'), exist_ok=True)
|
| 141 |
+
files = sorted(glob.glob('output_5_submission/*/*.tsv'))
|
| 142 |
+
# print(len(files))
|
| 143 |
+
for file in files:
|
| 144 |
+
shutil.copy(file, os.path.join(args.output_dir_single, 'small-model'))
|
| 145 |
+
|
| 146 |
+
#------------------------------------------------------------------------------
|
| 147 |
+
# Create final submission from an ensemble
|
| 148 |
+
# We already have "multilingual-general" and "unseen-langs" after CTM file parsing
|
| 149 |
+
# Now we copy "small-model" from "output_5_submission"
|
| 150 |
+
#------------------------------------------------------------------------------
|
| 151 |
+
|
| 152 |
+
os.makedirs(os.path.join(args.output_dir_ensemble, 'small-model'), exist_ok=True)
|
| 153 |
+
files = sorted(glob.glob('output_5_submission/*/*.tsv'))
|
| 154 |
+
# print(len(files))
|
| 155 |
+
for file in files:
|
| 156 |
+
shutil.copy(file, os.path.join(args.output_dir_ensemble, 'small-model'))
|
| 157 |
+
|
| 158 |
+
# Transcription for "tob" language by the quantized model is the best, we copy it to "multilingual-general"
|
| 159 |
+
shutil.copy(os.path.join(args.output_dir_ensemble, 'small-model', 'tob.tsv'), os.path.join(args.output_dir_ensemble, 'multilingual-general'))
|
| 160 |
+
|
| 161 |
+
#------------------------------------------------------------------------------
|
| 162 |
+
# Create archives
|
| 163 |
+
#------------------------------------------------------------------------------
|
| 164 |
+
|
| 165 |
+
# Remove all .ctm files because we already created final .tsv files
|
| 166 |
+
files = sorted(glob.glob(os.path.join(args.output_dir_ensemble, '*.ctm')))
|
| 167 |
+
# print(len(files))
|
| 168 |
+
for file in files:
|
| 169 |
+
os.remove(file)
|
| 170 |
+
|
| 171 |
+
# Create archives
|
| 172 |
+
zip_single_model = shutil.make_archive('submission_single_model', 'zip', root_dir=args.output_dir_single)
|
| 173 |
+
zip_ensemble = shutil.make_archive('submission_ensemble', 'zip', root_dir=args.output_dir_ensemble)
|
| 174 |
+
|
| 175 |
+
print('-'*50)
|
| 176 |
+
print('Saved as:', zip_single_model)
|
| 177 |
+
print('Saved as:', zip_ensemble)
|
| 178 |
+
|
| 179 |
+
|
| 180 |
+
#------------------------------------------------------------------------------
|
| 181 |
+
#------------------------------------------------------------------------------
|
| 182 |
+
#------------------------------------------------------------------------------
|
| 183 |
+
#------------------------------------------------------------------------------
|
| 184 |
+
|
infer.py
ADDED
|
@@ -0,0 +1,268 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#------------------------------------------------------------------------------
|
| 2 |
+
#------------------------------------------------------------------------------
|
| 3 |
+
|
| 4 |
+
import os
|
| 5 |
+
os.environ['TOKENIZERS_PARALLELISM'] = 'true'
|
| 6 |
+
import re
|
| 7 |
+
import sys
|
| 8 |
+
import glob
|
| 9 |
+
import shutil
|
| 10 |
+
import numpy as np
|
| 11 |
+
import pandas as pd
|
| 12 |
+
import torch
|
| 13 |
+
from argparse import ArgumentParser
|
| 14 |
+
|
| 15 |
+
from datasets import Dataset, Audio
|
| 16 |
+
from transformers import Wav2Vec2CTCTokenizer
|
| 17 |
+
from transformers import Wav2Vec2FeatureExtractor
|
| 18 |
+
from transformers import Wav2Vec2Processor
|
| 19 |
+
from transformers import Wav2Vec2ForCTC
|
| 20 |
+
from pyctcdecode import build_ctcdecoder
|
| 21 |
+
|
| 22 |
+
#------------------------------------------------------------------------------
|
| 23 |
+
#------------------------------------------------------------------------------
|
| 24 |
+
|
| 25 |
+
parser = ArgumentParser()
|
| 26 |
+
parser.add_argument('--input_dir', default='mdc_asr_shared_task_test_data', type=str, help='Directory with a test dataset')
|
| 27 |
+
parser.add_argument('--kenlm_model', default='kenlm_models_order_3', type=str, help='Directory with a KenLM models')
|
| 28 |
+
parser.add_argument('--beam_width', default=100, type=int, help='Beam width')
|
| 29 |
+
parser.add_argument('--attn_implementation', default='sdpa', type=str, help='Attention implementation: sdpa or flash_attention_2') #
|
| 30 |
+
parser.add_argument('--use_amp', default=0, type=int, choices=[0, 1], help='Whether to use auto mixed precision')
|
| 31 |
+
parser.add_argument('--device', default='cuda:0', type=str, help='Device')
|
| 32 |
+
args = parser.parse_args()
|
| 33 |
+
for a in [a for a in vars(args) if '__' not in a]: print('%-25s %s' % (a, vars(args)[a]))
|
| 34 |
+
|
| 35 |
+
#------------------------------------------------------------------------------
|
| 36 |
+
# Definitions
|
| 37 |
+
#------------------------------------------------------------------------------
|
| 38 |
+
|
| 39 |
+
def calculate_word_confidence(word_offsets, logits):
|
| 40 |
+
"""
|
| 41 |
+
Get word probabilities for ROVER ensemble
|
| 42 |
+
by averaging probabilities of all frames belonging to a word.
|
| 43 |
+
|
| 44 |
+
Parameters:
|
| 45 |
+
word_offsets : dict
|
| 46 |
+
Word offsets
|
| 47 |
+
logits : torch.tensor
|
| 48 |
+
Logits
|
| 49 |
+
|
| 50 |
+
Returns:
|
| 51 |
+
results : list
|
| 52 |
+
Probabilities
|
| 53 |
+
"""
|
| 54 |
+
# Apply Softmax to get probabilities
|
| 55 |
+
# logits shape: [1, sequence_length, vocab_size]
|
| 56 |
+
probs = torch.nn.functional.softmax(logits, dim=-1)[0]
|
| 57 |
+
|
| 58 |
+
# Get the max probability at each frame (the probability of the chosen token)
|
| 59 |
+
# shape: [sequence_length]
|
| 60 |
+
frame_confidences, _ = torch.max(probs, dim=-1)
|
| 61 |
+
|
| 62 |
+
results = []
|
| 63 |
+
|
| 64 |
+
for item in word_offsets:
|
| 65 |
+
start = item['start_offset']
|
| 66 |
+
end = item['end_offset']
|
| 67 |
+
|
| 68 |
+
# Extract the confidences for the duration of this word
|
| 69 |
+
# We take the mean of the frame probabilities for this word segment
|
| 70 |
+
if start == end:
|
| 71 |
+
# Handle single-frame words
|
| 72 |
+
word_conf = frame_confidences[start].item()
|
| 73 |
+
else:
|
| 74 |
+
word_conf = frame_confidences[start:end].mean().item()
|
| 75 |
+
|
| 76 |
+
results.append(word_conf)
|
| 77 |
+
|
| 78 |
+
return results
|
| 79 |
+
|
| 80 |
+
#------------------------------------------------------------------------------
|
| 81 |
+
#------------------------------------------------------------------------------
|
| 82 |
+
|
| 83 |
+
models = [
|
| 84 |
+
'models-01-mms-1b-l1107-tuned-commonvoice-train-data',
|
| 85 |
+
'models-02-mms-1b-l1107-tuned-commonvoice-all-data',
|
| 86 |
+
'models-03-mms-1b-all-tuned-commonvoice-all-data',
|
| 87 |
+
'models-04-mms-1b-fl102-tuned-commonvoice-all-data',
|
| 88 |
+
'models-05-mms-1b-l1107-tuned-commonvoice-all-data-pruned-quant',
|
| 89 |
+
]
|
| 90 |
+
tasks = ['multilingual-general', 'unseen-langs']
|
| 91 |
+
langs_general = [
|
| 92 |
+
'aln', 'bew', 'bxk', 'cgg', 'el-CY', 'hch', 'kcn', 'koo',
|
| 93 |
+
'led', 'lke', 'lth', 'meh', 'mmc', 'pne', 'ruc', 'rwm',
|
| 94 |
+
'sco', 'tob', 'top', 'ttj', 'ukv',
|
| 95 |
+
]
|
| 96 |
+
langs_unseen = ['ady', 'bas', 'kbd', 'qxp', 'ush']
|
| 97 |
+
|
| 98 |
+
device = torch.device(args.device)
|
| 99 |
+
|
| 100 |
+
for model_id, model_name in enumerate(models, start=1):
|
| 101 |
+
print('Processing model:', model_name)
|
| 102 |
+
|
| 103 |
+
for input_task in tasks:
|
| 104 |
+
|
| 105 |
+
if input_task == 'multilingual-general':
|
| 106 |
+
langs = langs_general
|
| 107 |
+
else:
|
| 108 |
+
langs = langs_unseen
|
| 109 |
+
|
| 110 |
+
for lang in langs:
|
| 111 |
+
print('-'*50)
|
| 112 |
+
print('Processing lang:', lang)
|
| 113 |
+
|
| 114 |
+
#---- Load data
|
| 115 |
+
|
| 116 |
+
output_dir_submission = os.path.join('output_%d_submission' % model_id, input_task)
|
| 117 |
+
output_dir_ctm = os.path.join('output_%d_ctm' % model_id, input_task)
|
| 118 |
+
os.makedirs(output_dir_submission, exist_ok=True)
|
| 119 |
+
os.makedirs(output_dir_ctm, exist_ok=True)
|
| 120 |
+
|
| 121 |
+
input_file = os.path.join(args.input_dir, input_task, '%s.tsv' % lang)
|
| 122 |
+
corpus_df = pd.read_csv(input_file, sep='\t')
|
| 123 |
+
corpus_df['sentence'] = 'nanana'
|
| 124 |
+
|
| 125 |
+
# Create full paths to the audio files
|
| 126 |
+
corpus_df['path'] = corpus_df['audio_file'].map(lambda x: os.path.join(args.input_dir, 'audios', x))
|
| 127 |
+
|
| 128 |
+
print('Test size:', len(corpus_df))
|
| 129 |
+
|
| 130 |
+
#---- Create dataset
|
| 131 |
+
|
| 132 |
+
corpus_df['audio'] = corpus_df['path']
|
| 133 |
+
|
| 134 |
+
assert os.path.exists(corpus_df.iloc[0]['path']), 'Cannot find .mp3 file'
|
| 135 |
+
|
| 136 |
+
common_voice_test = Dataset.from_pandas(corpus_df, preserve_index=False)
|
| 137 |
+
common_voice_test = common_voice_test.cast_column('audio', Audio(sampling_rate=16000))
|
| 138 |
+
print(common_voice_test)
|
| 139 |
+
|
| 140 |
+
#---- Load model
|
| 141 |
+
|
| 142 |
+
# For quantized models adapter mechanism does not work, so we do not use "target_lang=lang"
|
| 143 |
+
if model_id == 5:
|
| 144 |
+
model = Wav2Vec2ForCTC.from_pretrained(os.path.join(model_name, lang),
|
| 145 |
+
ignore_mismatched_sizes=True,
|
| 146 |
+
attn_implementation=args.attn_implementation,).to(device)
|
| 147 |
+
else:
|
| 148 |
+
model = Wav2Vec2ForCTC.from_pretrained(model_name,
|
| 149 |
+
target_lang=lang,
|
| 150 |
+
ignore_mismatched_sizes=True,
|
| 151 |
+
attn_implementation=args.attn_implementation,).to(device)
|
| 152 |
+
|
| 153 |
+
model.eval()
|
| 154 |
+
torch.set_grad_enabled(False)
|
| 155 |
+
if model_id == 5:
|
| 156 |
+
processor = Wav2Vec2Processor.from_pretrained(os.path.join(model_name, lang), target_lang=lang)
|
| 157 |
+
else:
|
| 158 |
+
processor = Wav2Vec2Processor.from_pretrained(model_name, target_lang=lang)
|
| 159 |
+
processor.tokenizer.set_target_lang(lang)
|
| 160 |
+
|
| 161 |
+
#---- Create CTC Decoder
|
| 162 |
+
|
| 163 |
+
vocab_dict = processor.tokenizer.get_vocab()
|
| 164 |
+
sorted_vocab_dict = sorted((v, k) for k, v in vocab_dict.items())
|
| 165 |
+
vocab = [k for v, k in sorted_vocab_dict]
|
| 166 |
+
|
| 167 |
+
vocab[0] = ''
|
| 168 |
+
|
| 169 |
+
decoder = build_ctcdecoder(
|
| 170 |
+
labels=vocab,
|
| 171 |
+
kenlm_model_path=os.path.join(args.kenlm_model, '%s.arpa' % lang),
|
| 172 |
+
alpha=0.5,
|
| 173 |
+
beta=1.0,
|
| 174 |
+
)
|
| 175 |
+
|
| 176 |
+
#---- Infer all examples
|
| 177 |
+
|
| 178 |
+
ctm_lines = []
|
| 179 |
+
time_offset = model.config.inputs_to_logits_ratio / 16_000
|
| 180 |
+
|
| 181 |
+
pred_str_list_single = []
|
| 182 |
+
for i in range(len(common_voice_test)):
|
| 183 |
+
input_dict = processor(common_voice_test[i]["audio"]["array"], sampling_rate=16_000, return_tensors="pt", padding=True)
|
| 184 |
+
audio_id = os.path.basename(common_voice_test[i]['path'])
|
| 185 |
+
|
| 186 |
+
with torch.amp.autocast(device_type=device.type, enabled=bool(args.use_amp)):
|
| 187 |
+
# Quantized model expects data if fp16 (half)
|
| 188 |
+
if model_id == 5:
|
| 189 |
+
logits = model(input_dict.input_values.half().to(device)).logits
|
| 190 |
+
else:
|
| 191 |
+
logits = model(input_dict.input_values.to(device)).logits
|
| 192 |
+
|
| 193 |
+
# Greedy decoding
|
| 194 |
+
if lang in ['bxk', 'cgg', 'koo', 'lke', 'ruc', 'rwm', 'tob', 'top', 'qxp']:
|
| 195 |
+
pred_ids = torch.argmax(logits, dim=-1)[0]
|
| 196 |
+
res = processor.decode(pred_ids, output_word_offsets=True)
|
| 197 |
+
pred_str = res.text
|
| 198 |
+
word_offsets = res.word_offsets
|
| 199 |
+
# Beam search decoding
|
| 200 |
+
else:
|
| 201 |
+
# We decode twice just for reproducibility, because "decoder.decode" and "decoder.decode_beams"
|
| 202 |
+
# may give slightly different results (in fact "pred_str" and "pred_str_beam" are very close).
|
| 203 |
+
# We use "decoder.decode" to get predictions from each single model, and we use "decoder.decode_beams"
|
| 204 |
+
# to get word offsets for ensemble.
|
| 205 |
+
pred_str = decoder.decode(logits[0].detach().cpu().numpy(), beam_width=args.beam_width)
|
| 206 |
+
beams = decoder.decode_beams(logits[0].detach().cpu().numpy(), beam_width=args.beam_width)
|
| 207 |
+
pred_str_beam, lm_state, word_offsets_beam, logit_score, lm_score = beams[0]
|
| 208 |
+
|
| 209 |
+
# Convert to format expected by "calculate_word_confidence" function
|
| 210 |
+
word_offsets = []
|
| 211 |
+
for item in word_offsets_beam:
|
| 212 |
+
word = item[0]
|
| 213 |
+
start_offset = item[1][0]
|
| 214 |
+
end_offset = item[1][1]
|
| 215 |
+
d = {'word': word, 'start_offset': start_offset, 'end_offset': end_offset}
|
| 216 |
+
word_offsets.append(d)
|
| 217 |
+
|
| 218 |
+
# Compute probabilities
|
| 219 |
+
confidences = calculate_word_confidence(word_offsets, logits)
|
| 220 |
+
|
| 221 |
+
# Create lines in CTM format for the ROVER ensemble
|
| 222 |
+
for j, item in enumerate(word_offsets):
|
| 223 |
+
word = item['word']
|
| 224 |
+
if lang == 'ady' or lang == 'kbd':
|
| 225 |
+
word = word.lower()
|
| 226 |
+
|
| 227 |
+
start_frame = item['start_offset']
|
| 228 |
+
end_frame = item['end_offset']
|
| 229 |
+
|
| 230 |
+
# Calculate time in seconds
|
| 231 |
+
start_time = start_frame * time_offset
|
| 232 |
+
end_time = end_frame * time_offset
|
| 233 |
+
duration = end_time - start_time
|
| 234 |
+
|
| 235 |
+
# Confidence
|
| 236 |
+
# If real confidences are not available it is possible to use 1.0 for all
|
| 237 |
+
# conf = 1.00
|
| 238 |
+
conf = confidences[j]
|
| 239 |
+
|
| 240 |
+
# Format: id channel start duration word conf
|
| 241 |
+
line = f"{audio_id} 1 {start_time:.4f} {duration:.4f} {word} {conf:.6f}"
|
| 242 |
+
ctm_lines.append(line)
|
| 243 |
+
|
| 244 |
+
pred_str_list_single.append(pred_str)
|
| 245 |
+
|
| 246 |
+
#---- Save predictions from a single model
|
| 247 |
+
|
| 248 |
+
corpus_df['sentence'] = pred_str_list_single
|
| 249 |
+
out_file = os.path.join(output_dir_submission, os.path.basename(input_file))
|
| 250 |
+
if lang == 'ady' or lang == 'kbd':
|
| 251 |
+
corpus_df['sentence'] = corpus_df['sentence'].map(lambda x: x.strip().lower())
|
| 252 |
+
corpus_df[['audio_file', 'sentence']].to_csv(out_file, index=False, sep='\t')
|
| 253 |
+
print('Saved:', out_file)
|
| 254 |
+
|
| 255 |
+
#---- Save CTM file
|
| 256 |
+
|
| 257 |
+
out_file = os.path.join(output_dir_ctm, '%s_%s.ctm' % (lang, model_id))
|
| 258 |
+
with open(out_file, 'wt', encoding='utf-8') as f:
|
| 259 |
+
for line in ctm_lines:
|
| 260 |
+
f.write(line + '\n')
|
| 261 |
+
print('Saved:', out_file)
|
| 262 |
+
|
| 263 |
+
|
| 264 |
+
#------------------------------------------------------------------------------
|
| 265 |
+
#------------------------------------------------------------------------------
|
| 266 |
+
#------------------------------------------------------------------------------
|
| 267 |
+
#------------------------------------------------------------------------------
|
| 268 |
+
|
kenlm_models_order_3/ady.arpa
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
kenlm_models_order_3/aln.arpa
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
kenlm_models_order_3/bas.arpa
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
kenlm_models_order_3/bew.arpa
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
kenlm_models_order_3/bxk.arpa
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
kenlm_models_order_3/cgg.arpa
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
kenlm_models_order_3/el-CY.arpa
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
kenlm_models_order_3/hch.arpa
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
kenlm_models_order_3/kcn.arpa
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
kenlm_models_order_3/koo.arpa
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
kenlm_models_order_3/led.arpa
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
kenlm_models_order_3/lke.arpa
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
kenlm_models_order_3/lth.arpa
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
kenlm_models_order_3/meh.arpa
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
kenlm_models_order_3/mmc.arpa
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
kenlm_models_order_3/pne.arpa
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
kenlm_models_order_3/qxp.arpa
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
kenlm_models_order_3/ruc.arpa
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
kenlm_models_order_3/rwm.arpa
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
kenlm_models_order_3/sco.arpa
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
kenlm_models_order_3/tob.arpa
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
kenlm_models_order_3/top.arpa
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
kenlm_models_order_3/ttj.arpa
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
kenlm_models_order_3/ukv.arpa
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
kenlm_models_order_3/ush.arpa
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
models-01-mms-1b-l1107-tuned-commonvoice-train-data/preprocessor_config.json
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"do_normalize": true,
|
| 3 |
+
"feature_extractor_type": "Wav2Vec2FeatureExtractor",
|
| 4 |
+
"feature_size": 1,
|
| 5 |
+
"padding_side": "right",
|
| 6 |
+
"padding_value": 0.0,
|
| 7 |
+
"return_attention_mask": true,
|
| 8 |
+
"sampling_rate": 16000
|
| 9 |
+
}
|
models-01-mms-1b-l1107-tuned-commonvoice-train-data/tokenizer_config.json
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"added_tokens_decoder": {
|
| 3 |
+
"0": {
|
| 4 |
+
"content": "<pad>",
|
| 5 |
+
"lstrip": true,
|
| 6 |
+
"normalized": false,
|
| 7 |
+
"rstrip": true,
|
| 8 |
+
"single_word": false,
|
| 9 |
+
"special": false
|
| 10 |
+
},
|
| 11 |
+
"1": {
|
| 12 |
+
"content": "<s>",
|
| 13 |
+
"lstrip": true,
|
| 14 |
+
"normalized": false,
|
| 15 |
+
"rstrip": true,
|
| 16 |
+
"single_word": false,
|
| 17 |
+
"special": false
|
| 18 |
+
},
|
| 19 |
+
"2": {
|
| 20 |
+
"content": "</s>",
|
| 21 |
+
"lstrip": true,
|
| 22 |
+
"normalized": false,
|
| 23 |
+
"rstrip": true,
|
| 24 |
+
"single_word": false,
|
| 25 |
+
"special": false
|
| 26 |
+
},
|
| 27 |
+
"3": {
|
| 28 |
+
"content": "<unk>",
|
| 29 |
+
"lstrip": true,
|
| 30 |
+
"normalized": false,
|
| 31 |
+
"rstrip": true,
|
| 32 |
+
"single_word": false,
|
| 33 |
+
"special": false
|
| 34 |
+
}
|
| 35 |
+
},
|
| 36 |
+
"bos_token": "<s>",
|
| 37 |
+
"clean_up_tokenization_spaces": false,
|
| 38 |
+
"do_lower_case": false,
|
| 39 |
+
"eos_token": "</s>",
|
| 40 |
+
"extra_special_tokens": {},
|
| 41 |
+
"model_max_length": 1000000000000000019884624838656,
|
| 42 |
+
"pad_token": "<pad>",
|
| 43 |
+
"processor_class": "Wav2Vec2Processor",
|
| 44 |
+
"replace_word_delimiter_char": " ",
|
| 45 |
+
"target_lang": "aln",
|
| 46 |
+
"tokenizer_class": "Wav2Vec2CTCTokenizer",
|
| 47 |
+
"unk_token": "<unk>",
|
| 48 |
+
"word_delimiter_token": "|"
|
| 49 |
+
}
|
models-01-mms-1b-l1107-tuned-commonvoice-train-data/trainer_state.json
ADDED
|
@@ -0,0 +1,482 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"best_global_step": null,
|
| 3 |
+
"best_metric": 0.4353967324090347,
|
| 4 |
+
"best_model_checkpoint": null,
|
| 5 |
+
"epoch": 28.0,
|
| 6 |
+
"eval_steps": 500,
|
| 7 |
+
"global_step": 13412,
|
| 8 |
+
"is_hyper_param_search": false,
|
| 9 |
+
"is_local_process_zero": true,
|
| 10 |
+
"is_world_process_zero": true,
|
| 11 |
+
"log_history": [
|
| 12 |
+
{
|
| 13 |
+
"epoch": 1.0,
|
| 14 |
+
"grad_norm": 2.380281448364258,
|
| 15 |
+
"learning_rate": 0.001,
|
| 16 |
+
"loss": 1.7268,
|
| 17 |
+
"step": 479
|
| 18 |
+
},
|
| 19 |
+
{
|
| 20 |
+
"epoch": 1.0,
|
| 21 |
+
"eval_loss": 1.1925925016403198,
|
| 22 |
+
"eval_runtime": 35.5616,
|
| 23 |
+
"eval_samples_per_second": 7.452,
|
| 24 |
+
"eval_steps_per_second": 0.956,
|
| 25 |
+
"eval_wer": 0.5826336002082927,
|
| 26 |
+
"step": 479
|
| 27 |
+
},
|
| 28 |
+
{
|
| 29 |
+
"epoch": 2.0,
|
| 30 |
+
"grad_norm": 2.2042243480682373,
|
| 31 |
+
"learning_rate": 0.001,
|
| 32 |
+
"loss": 1.2196,
|
| 33 |
+
"step": 958
|
| 34 |
+
},
|
| 35 |
+
{
|
| 36 |
+
"epoch": 2.0,
|
| 37 |
+
"eval_loss": 1.0446339845657349,
|
| 38 |
+
"eval_runtime": 34.5325,
|
| 39 |
+
"eval_samples_per_second": 7.674,
|
| 40 |
+
"eval_steps_per_second": 0.985,
|
| 41 |
+
"eval_wer": 0.564863633404934,
|
| 42 |
+
"step": 958
|
| 43 |
+
},
|
| 44 |
+
{
|
| 45 |
+
"epoch": 3.0,
|
| 46 |
+
"grad_norm": 1.166773796081543,
|
| 47 |
+
"learning_rate": 0.001,
|
| 48 |
+
"loss": 1.1397,
|
| 49 |
+
"step": 1437
|
| 50 |
+
},
|
| 51 |
+
{
|
| 52 |
+
"epoch": 3.0,
|
| 53 |
+
"eval_loss": 1.0775465965270996,
|
| 54 |
+
"eval_runtime": 34.6211,
|
| 55 |
+
"eval_samples_per_second": 7.654,
|
| 56 |
+
"eval_steps_per_second": 0.982,
|
| 57 |
+
"eval_wer": 0.5362233938683851,
|
| 58 |
+
"step": 1437
|
| 59 |
+
},
|
| 60 |
+
{
|
| 61 |
+
"epoch": 4.0,
|
| 62 |
+
"grad_norm": 1.5602997541427612,
|
| 63 |
+
"learning_rate": 0.001,
|
| 64 |
+
"loss": 1.092,
|
| 65 |
+
"step": 1916
|
| 66 |
+
},
|
| 67 |
+
{
|
| 68 |
+
"epoch": 4.0,
|
| 69 |
+
"eval_loss": 1.001297116279602,
|
| 70 |
+
"eval_runtime": 34.6053,
|
| 71 |
+
"eval_samples_per_second": 7.658,
|
| 72 |
+
"eval_steps_per_second": 0.983,
|
| 73 |
+
"eval_wer": 0.5200156219488381,
|
| 74 |
+
"step": 1916
|
| 75 |
+
},
|
| 76 |
+
{
|
| 77 |
+
"epoch": 5.0,
|
| 78 |
+
"grad_norm": 1.2552688121795654,
|
| 79 |
+
"learning_rate": 0.001,
|
| 80 |
+
"loss": 1.0503,
|
| 81 |
+
"step": 2395
|
| 82 |
+
},
|
| 83 |
+
{
|
| 84 |
+
"epoch": 5.0,
|
| 85 |
+
"eval_loss": 1.0595026016235352,
|
| 86 |
+
"eval_runtime": 34.5633,
|
| 87 |
+
"eval_samples_per_second": 7.667,
|
| 88 |
+
"eval_steps_per_second": 0.984,
|
| 89 |
+
"eval_wer": 0.5131159278786696,
|
| 90 |
+
"step": 2395
|
| 91 |
+
},
|
| 92 |
+
{
|
| 93 |
+
"epoch": 6.0,
|
| 94 |
+
"grad_norm": 1.0369716882705688,
|
| 95 |
+
"learning_rate": 0.001,
|
| 96 |
+
"loss": 1.0367,
|
| 97 |
+
"step": 2874
|
| 98 |
+
},
|
| 99 |
+
{
|
| 100 |
+
"epoch": 6.0,
|
| 101 |
+
"eval_loss": 0.9826406836509705,
|
| 102 |
+
"eval_runtime": 35.1772,
|
| 103 |
+
"eval_samples_per_second": 7.533,
|
| 104 |
+
"eval_steps_per_second": 0.967,
|
| 105 |
+
"eval_wer": 0.5074529714248519,
|
| 106 |
+
"step": 2874
|
| 107 |
+
},
|
| 108 |
+
{
|
| 109 |
+
"epoch": 7.0,
|
| 110 |
+
"grad_norm": 1.1451303958892822,
|
| 111 |
+
"learning_rate": 0.001,
|
| 112 |
+
"loss": 1.0248,
|
| 113 |
+
"step": 3353
|
| 114 |
+
},
|
| 115 |
+
{
|
| 116 |
+
"epoch": 7.0,
|
| 117 |
+
"eval_loss": 0.9717031717300415,
|
| 118 |
+
"eval_runtime": 34.6404,
|
| 119 |
+
"eval_samples_per_second": 7.65,
|
| 120 |
+
"eval_steps_per_second": 0.982,
|
| 121 |
+
"eval_wer": 0.5002929115407148,
|
| 122 |
+
"step": 3353
|
| 123 |
+
},
|
| 124 |
+
{
|
| 125 |
+
"epoch": 8.0,
|
| 126 |
+
"grad_norm": 3.037198543548584,
|
| 127 |
+
"learning_rate": 0.001,
|
| 128 |
+
"loss": 0.9848,
|
| 129 |
+
"step": 3832
|
| 130 |
+
},
|
| 131 |
+
{
|
| 132 |
+
"epoch": 8.0,
|
| 133 |
+
"eval_loss": 0.993988037109375,
|
| 134 |
+
"eval_runtime": 34.6847,
|
| 135 |
+
"eval_samples_per_second": 7.64,
|
| 136 |
+
"eval_steps_per_second": 0.98,
|
| 137 |
+
"eval_wer": 0.4923517542146716,
|
| 138 |
+
"step": 3832
|
| 139 |
+
},
|
| 140 |
+
{
|
| 141 |
+
"epoch": 9.0,
|
| 142 |
+
"grad_norm": 2.273267984390259,
|
| 143 |
+
"learning_rate": 0.001,
|
| 144 |
+
"loss": 0.9756,
|
| 145 |
+
"step": 4311
|
| 146 |
+
},
|
| 147 |
+
{
|
| 148 |
+
"epoch": 9.0,
|
| 149 |
+
"eval_loss": 1.0613828897476196,
|
| 150 |
+
"eval_runtime": 34.5523,
|
| 151 |
+
"eval_samples_per_second": 7.67,
|
| 152 |
+
"eval_steps_per_second": 0.984,
|
| 153 |
+
"eval_wer": 0.4865586148538697,
|
| 154 |
+
"step": 4311
|
| 155 |
+
},
|
| 156 |
+
{
|
| 157 |
+
"epoch": 10.0,
|
| 158 |
+
"grad_norm": 1.378129005432129,
|
| 159 |
+
"learning_rate": 0.001,
|
| 160 |
+
"loss": 0.9429,
|
| 161 |
+
"step": 4790
|
| 162 |
+
},
|
| 163 |
+
{
|
| 164 |
+
"epoch": 10.0,
|
| 165 |
+
"eval_loss": 0.9572445154190063,
|
| 166 |
+
"eval_runtime": 34.5026,
|
| 167 |
+
"eval_samples_per_second": 7.681,
|
| 168 |
+
"eval_steps_per_second": 0.985,
|
| 169 |
+
"eval_wer": 0.49098483369133633,
|
| 170 |
+
"step": 4790
|
| 171 |
+
},
|
| 172 |
+
{
|
| 173 |
+
"epoch": 11.0,
|
| 174 |
+
"grad_norm": 1.3722251653671265,
|
| 175 |
+
"learning_rate": 0.001,
|
| 176 |
+
"loss": 0.9256,
|
| 177 |
+
"step": 5269
|
| 178 |
+
},
|
| 179 |
+
{
|
| 180 |
+
"epoch": 11.0,
|
| 181 |
+
"eval_loss": 0.9852390289306641,
|
| 182 |
+
"eval_runtime": 34.5318,
|
| 183 |
+
"eval_samples_per_second": 7.674,
|
| 184 |
+
"eval_steps_per_second": 0.985,
|
| 185 |
+
"eval_wer": 0.4836945909002148,
|
| 186 |
+
"step": 5269
|
| 187 |
+
},
|
| 188 |
+
{
|
| 189 |
+
"epoch": 12.0,
|
| 190 |
+
"grad_norm": 7.501033782958984,
|
| 191 |
+
"learning_rate": 0.001,
|
| 192 |
+
"loss": 0.905,
|
| 193 |
+
"step": 5748
|
| 194 |
+
},
|
| 195 |
+
{
|
| 196 |
+
"epoch": 12.0,
|
| 197 |
+
"eval_loss": 0.985062301158905,
|
| 198 |
+
"eval_runtime": 34.5622,
|
| 199 |
+
"eval_samples_per_second": 7.667,
|
| 200 |
+
"eval_steps_per_second": 0.984,
|
| 201 |
+
"eval_wer": 0.48284840200481677,
|
| 202 |
+
"step": 5748
|
| 203 |
+
},
|
| 204 |
+
{
|
| 205 |
+
"epoch": 13.0,
|
| 206 |
+
"grad_norm": 0.7728366851806641,
|
| 207 |
+
"learning_rate": 0.001,
|
| 208 |
+
"loss": 0.9058,
|
| 209 |
+
"step": 6227
|
| 210 |
+
},
|
| 211 |
+
{
|
| 212 |
+
"epoch": 13.0,
|
| 213 |
+
"eval_loss": 1.0208592414855957,
|
| 214 |
+
"eval_runtime": 34.5405,
|
| 215 |
+
"eval_samples_per_second": 7.672,
|
| 216 |
+
"eval_steps_per_second": 0.984,
|
| 217 |
+
"eval_wer": 0.4603918505500228,
|
| 218 |
+
"step": 6227
|
| 219 |
+
},
|
| 220 |
+
{
|
| 221 |
+
"epoch": 14.0,
|
| 222 |
+
"grad_norm": 1.149517297744751,
|
| 223 |
+
"learning_rate": 0.001,
|
| 224 |
+
"loss": 0.879,
|
| 225 |
+
"step": 6706
|
| 226 |
+
},
|
| 227 |
+
{
|
| 228 |
+
"epoch": 14.0,
|
| 229 |
+
"eval_loss": 0.9706206917762756,
|
| 230 |
+
"eval_runtime": 34.5909,
|
| 231 |
+
"eval_samples_per_second": 7.661,
|
| 232 |
+
"eval_steps_per_second": 0.983,
|
| 233 |
+
"eval_wer": 0.47015556857384627,
|
| 234 |
+
"step": 6706
|
| 235 |
+
},
|
| 236 |
+
{
|
| 237 |
+
"epoch": 15.0,
|
| 238 |
+
"grad_norm": 1.2965223789215088,
|
| 239 |
+
"learning_rate": 0.001,
|
| 240 |
+
"loss": 0.8683,
|
| 241 |
+
"step": 7185
|
| 242 |
+
},
|
| 243 |
+
{
|
| 244 |
+
"epoch": 15.0,
|
| 245 |
+
"eval_loss": 0.9290042519569397,
|
| 246 |
+
"eval_runtime": 34.5757,
|
| 247 |
+
"eval_samples_per_second": 7.664,
|
| 248 |
+
"eval_steps_per_second": 0.983,
|
| 249 |
+
"eval_wer": 0.46338605741066197,
|
| 250 |
+
"step": 7185
|
| 251 |
+
},
|
| 252 |
+
{
|
| 253 |
+
"epoch": 16.0,
|
| 254 |
+
"grad_norm": 4.367678165435791,
|
| 255 |
+
"learning_rate": 0.001,
|
| 256 |
+
"loss": 0.8522,
|
| 257 |
+
"step": 7664
|
| 258 |
+
},
|
| 259 |
+
{
|
| 260 |
+
"epoch": 16.0,
|
| 261 |
+
"eval_loss": 0.992803156375885,
|
| 262 |
+
"eval_runtime": 34.6222,
|
| 263 |
+
"eval_samples_per_second": 7.654,
|
| 264 |
+
"eval_steps_per_second": 0.982,
|
| 265 |
+
"eval_wer": 0.46481806938748943,
|
| 266 |
+
"step": 7664
|
| 267 |
+
},
|
| 268 |
+
{
|
| 269 |
+
"epoch": 17.0,
|
| 270 |
+
"grad_norm": 1.7040348052978516,
|
| 271 |
+
"learning_rate": 0.0005,
|
| 272 |
+
"loss": 0.7977,
|
| 273 |
+
"step": 8143
|
| 274 |
+
},
|
| 275 |
+
{
|
| 276 |
+
"epoch": 17.0,
|
| 277 |
+
"eval_loss": 1.0117977857589722,
|
| 278 |
+
"eval_runtime": 34.6417,
|
| 279 |
+
"eval_samples_per_second": 7.65,
|
| 280 |
+
"eval_steps_per_second": 0.981,
|
| 281 |
+
"eval_wer": 0.45023758380524637,
|
| 282 |
+
"step": 8143
|
| 283 |
+
},
|
| 284 |
+
{
|
| 285 |
+
"epoch": 18.0,
|
| 286 |
+
"grad_norm": 1.7818500995635986,
|
| 287 |
+
"learning_rate": 0.0005,
|
| 288 |
+
"loss": 0.7734,
|
| 289 |
+
"step": 8622
|
| 290 |
+
},
|
| 291 |
+
{
|
| 292 |
+
"epoch": 18.0,
|
| 293 |
+
"eval_loss": 0.9333422183990479,
|
| 294 |
+
"eval_runtime": 34.6012,
|
| 295 |
+
"eval_samples_per_second": 7.659,
|
| 296 |
+
"eval_steps_per_second": 0.983,
|
| 297 |
+
"eval_wer": 0.44861029746794245,
|
| 298 |
+
"step": 8622
|
| 299 |
+
},
|
| 300 |
+
{
|
| 301 |
+
"epoch": 19.0,
|
| 302 |
+
"grad_norm": 4.498454570770264,
|
| 303 |
+
"learning_rate": 0.0005,
|
| 304 |
+
"loss": 0.7657,
|
| 305 |
+
"step": 9101
|
| 306 |
+
},
|
| 307 |
+
{
|
| 308 |
+
"epoch": 19.0,
|
| 309 |
+
"eval_loss": 0.9897260665893555,
|
| 310 |
+
"eval_runtime": 34.5634,
|
| 311 |
+
"eval_samples_per_second": 7.667,
|
| 312 |
+
"eval_steps_per_second": 0.984,
|
| 313 |
+
"eval_wer": 0.4529063333984248,
|
| 314 |
+
"step": 9101
|
| 315 |
+
},
|
| 316 |
+
{
|
| 317 |
+
"epoch": 20.0,
|
| 318 |
+
"grad_norm": 0.7240224480628967,
|
| 319 |
+
"learning_rate": 0.0005,
|
| 320 |
+
"loss": 0.7397,
|
| 321 |
+
"step": 9580
|
| 322 |
+
},
|
| 323 |
+
{
|
| 324 |
+
"epoch": 20.0,
|
| 325 |
+
"eval_loss": 0.9879773259162903,
|
| 326 |
+
"eval_runtime": 34.5486,
|
| 327 |
+
"eval_samples_per_second": 7.67,
|
| 328 |
+
"eval_steps_per_second": 0.984,
|
| 329 |
+
"eval_wer": 0.44411898717698367,
|
| 330 |
+
"step": 9580
|
| 331 |
+
},
|
| 332 |
+
{
|
| 333 |
+
"epoch": 21.0,
|
| 334 |
+
"grad_norm": 1.0059142112731934,
|
| 335 |
+
"learning_rate": 0.0005,
|
| 336 |
+
"loss": 0.7279,
|
| 337 |
+
"step": 10059
|
| 338 |
+
},
|
| 339 |
+
{
|
| 340 |
+
"epoch": 21.0,
|
| 341 |
+
"eval_loss": 0.9446625113487244,
|
| 342 |
+
"eval_runtime": 34.6095,
|
| 343 |
+
"eval_samples_per_second": 7.657,
|
| 344 |
+
"eval_steps_per_second": 0.982,
|
| 345 |
+
"eval_wer": 0.4526459675844562,
|
| 346 |
+
"step": 10059
|
| 347 |
+
},
|
| 348 |
+
{
|
| 349 |
+
"epoch": 22.0,
|
| 350 |
+
"grad_norm": 1.9090479612350464,
|
| 351 |
+
"learning_rate": 0.0005,
|
| 352 |
+
"loss": 0.7236,
|
| 353 |
+
"step": 10538
|
| 354 |
+
},
|
| 355 |
+
{
|
| 356 |
+
"epoch": 22.0,
|
| 357 |
+
"eval_loss": 0.9647026062011719,
|
| 358 |
+
"eval_runtime": 35.1604,
|
| 359 |
+
"eval_samples_per_second": 7.537,
|
| 360 |
+
"eval_steps_per_second": 0.967,
|
| 361 |
+
"eval_wer": 0.44861029746794245,
|
| 362 |
+
"step": 10538
|
| 363 |
+
},
|
| 364 |
+
{
|
| 365 |
+
"epoch": 23.0,
|
| 366 |
+
"grad_norm": 1.9559828042984009,
|
| 367 |
+
"learning_rate": 0.0005,
|
| 368 |
+
"loss": 0.7109,
|
| 369 |
+
"step": 11017
|
| 370 |
+
},
|
| 371 |
+
{
|
| 372 |
+
"epoch": 23.0,
|
| 373 |
+
"eval_loss": 0.9153918027877808,
|
| 374 |
+
"eval_runtime": 35.1599,
|
| 375 |
+
"eval_samples_per_second": 7.537,
|
| 376 |
+
"eval_steps_per_second": 0.967,
|
| 377 |
+
"eval_wer": 0.45596563171255616,
|
| 378 |
+
"step": 11017
|
| 379 |
+
},
|
| 380 |
+
{
|
| 381 |
+
"epoch": 24.0,
|
| 382 |
+
"grad_norm": 1.2015676498413086,
|
| 383 |
+
"learning_rate": 0.00025,
|
| 384 |
+
"loss": 0.6784,
|
| 385 |
+
"step": 11496
|
| 386 |
+
},
|
| 387 |
+
{
|
| 388 |
+
"epoch": 24.0,
|
| 389 |
+
"eval_loss": 1.0243852138519287,
|
| 390 |
+
"eval_runtime": 34.5696,
|
| 391 |
+
"eval_samples_per_second": 7.666,
|
| 392 |
+
"eval_steps_per_second": 0.984,
|
| 393 |
+
"eval_wer": 0.44145023758380525,
|
| 394 |
+
"step": 11496
|
| 395 |
+
},
|
| 396 |
+
{
|
| 397 |
+
"epoch": 25.0,
|
| 398 |
+
"grad_norm": 1.7689223289489746,
|
| 399 |
+
"learning_rate": 0.00025,
|
| 400 |
+
"loss": 0.6729,
|
| 401 |
+
"step": 11975
|
| 402 |
+
},
|
| 403 |
+
{
|
| 404 |
+
"epoch": 25.0,
|
| 405 |
+
"eval_loss": 0.99959397315979,
|
| 406 |
+
"eval_runtime": 34.7174,
|
| 407 |
+
"eval_samples_per_second": 7.633,
|
| 408 |
+
"eval_steps_per_second": 0.979,
|
| 409 |
+
"eval_wer": 0.44086441450237585,
|
| 410 |
+
"step": 11975
|
| 411 |
+
},
|
| 412 |
+
{
|
| 413 |
+
"epoch": 26.0,
|
| 414 |
+
"grad_norm": 1.1669533252716064,
|
| 415 |
+
"learning_rate": 0.00025,
|
| 416 |
+
"loss": 0.6601,
|
| 417 |
+
"step": 12454
|
| 418 |
+
},
|
| 419 |
+
{
|
| 420 |
+
"epoch": 26.0,
|
| 421 |
+
"eval_loss": 0.9846060276031494,
|
| 422 |
+
"eval_runtime": 34.5494,
|
| 423 |
+
"eval_samples_per_second": 7.67,
|
| 424 |
+
"eval_steps_per_second": 0.984,
|
| 425 |
+
"eval_wer": 0.43995313415348564,
|
| 426 |
+
"step": 12454
|
| 427 |
+
},
|
| 428 |
+
{
|
| 429 |
+
"epoch": 27.0,
|
| 430 |
+
"grad_norm": 0.5843313336372375,
|
| 431 |
+
"learning_rate": 0.00025,
|
| 432 |
+
"loss": 0.6505,
|
| 433 |
+
"step": 12933
|
| 434 |
+
},
|
| 435 |
+
{
|
| 436 |
+
"epoch": 27.0,
|
| 437 |
+
"eval_loss": 0.9982585310935974,
|
| 438 |
+
"eval_runtime": 34.5478,
|
| 439 |
+
"eval_samples_per_second": 7.671,
|
| 440 |
+
"eval_steps_per_second": 0.984,
|
| 441 |
+
"eval_wer": 0.43721929310681507,
|
| 442 |
+
"step": 12933
|
| 443 |
+
},
|
| 444 |
+
{
|
| 445 |
+
"epoch": 28.0,
|
| 446 |
+
"grad_norm": 1.0468271970748901,
|
| 447 |
+
"learning_rate": 0.00025,
|
| 448 |
+
"loss": 0.651,
|
| 449 |
+
"step": 13412
|
| 450 |
+
},
|
| 451 |
+
{
|
| 452 |
+
"epoch": 28.0,
|
| 453 |
+
"eval_loss": 1.0405844449996948,
|
| 454 |
+
"eval_runtime": 35.1006,
|
| 455 |
+
"eval_samples_per_second": 7.55,
|
| 456 |
+
"eval_steps_per_second": 0.969,
|
| 457 |
+
"eval_wer": 0.4353967324090347,
|
| 458 |
+
"step": 13412
|
| 459 |
+
}
|
| 460 |
+
],
|
| 461 |
+
"logging_steps": 500,
|
| 462 |
+
"max_steps": 14370,
|
| 463 |
+
"num_input_tokens_seen": 0,
|
| 464 |
+
"num_train_epochs": 30,
|
| 465 |
+
"save_steps": 500,
|
| 466 |
+
"stateful_callbacks": {
|
| 467 |
+
"TrainerControl": {
|
| 468 |
+
"args": {
|
| 469 |
+
"should_epoch_stop": false,
|
| 470 |
+
"should_evaluate": false,
|
| 471 |
+
"should_log": false,
|
| 472 |
+
"should_save": true,
|
| 473 |
+
"should_training_stop": false
|
| 474 |
+
},
|
| 475 |
+
"attributes": {}
|
| 476 |
+
}
|
| 477 |
+
},
|
| 478 |
+
"total_flos": 6.767139886662079e+19,
|
| 479 |
+
"train_batch_size": 2,
|
| 480 |
+
"trial_name": null,
|
| 481 |
+
"trial_params": null
|
| 482 |
+
}
|
models-01-mms-1b-l1107-tuned-commonvoice-train-data/vocab.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"aln": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "'": 5, "(": 6, ")": 7, "-": 8, ".": 9, "/": 10, "=": 11, "A": 12, "B": 13, "C": 14, "D": 15, "E": 16, "F": 17, "G": 18, "H": 19, "I": 20, "J": 21, "K": 22, "L": 23, "M": 24, "N": 25, "O": 26, "P": 27, "Q": 28, "R": 29, "S": 30, "T": 31, "U": 32, "V": 33, "W": 34, "X": 35, "Y": 36, "Z": 37, "[": 38, "a": 39, "b": 40, "c": 41, "d": 42, "e": 43, "f": 44, "g": 45, "h": 46, "i": 47, "j": 48, "k": 49, "l": 50, "m": 51, "n": 52, "o": 53, "p": 54, "q": 55, "r": 56, "s": 57, "t": 58, "u": 59, "v": 60, "w": 61, "x": 62, "y": 63, "z": 64, "{": 65, "}": 66, "\u0395": 67, "\u03a4": 68, "\u03ac": 69, "\u03ad": 70, "\u03ae": 71, "\u03af": 72, "\u03b1": 73, "\u03b5": 74, "\u03b6": 75, "\u03b8": 76, "\u03ba": 77, "\u03bb": 78, "\u03bd": 79, "\u03bf": 80, "\u03c0": 81, "\u03c1": 82, "\u03c2": 83, "\u03c3": 84, "\u03c4": 85, "\u03c5": 86, "\u03c6": 87, "\u03c9": 88}, "bew": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "%": 5, "'": 6, "(": 7, ")": 8, "*": 9, "-": 10, ".": 11, "/": 12, "0": 13, "1": 14, "2": 15, "3": 16, "4": 17, "5": 18, "6": 19, "7": 20, "8": 21, "9": 22, "A": 23, "B": 24, "C": 25, "D": 26, "E": 27, "F": 28, "G": 29, "H": 30, "I": 31, "J": 32, "K": 33, "L": 34, "M": 35, "N": 36, "O": 37, "P": 38, "Q": 39, "R": 40, "S": 41, "T": 42, "U": 43, "V": 44, "W": 45, "Y": 46, "Z": 47, "a": 48, "b": 49, "c": 50, "d": 51, "e": 52, "f": 53, "g": 54, "h": 55, "i": 56, "j": 57, "k": 58, "l": 59, "m": 60, "n": 61, "o": 62, "p": 63, "q": 64, "r": 65, "s": 66, "t": 67, "u": 68, "v": 69, "w": 70, "x": 71, "y": 72, "z": 73, "\u00e8": 74, "\u00e9": 75, "\u00ea": 76}, "bxk": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "#": 5, "&": 6, "'": 7, "(": 8, ")": 9, "-": 10, "0": 11, "1": 12, "2": 13, "5": 14, "6": 15, "9": 16, "@": 17, "A": 18, "B": 19, "C": 20, "D": 21, "E": 22, "F": 23, "G": 24, "H": 25, "I": 26, "K": 27, "L": 28, "M": 29, "N": 30, "O": 31, "P": 32, "S": 33, "T": 34, "U": 35, "V": 36, "W": 37, "Y": 38, "a": 39, "b": 40, "c": 41, "d": 42, "e": 43, "f": 44, "g": 45, "h": 46, "i": 47, "j": 48, "k": 49, "l": 50, "m": 51, "n": 52, "o": 53, "p": 54, "q": 55, "r": 56, "s": 57, "t": 58, "u": 59, "v": 60, "w": 61, "x": 62, "y": 63, "z": 64, "~": 65}, "cgg": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "&": 5, "'": 6, "-": 7, ".": 8, "0": 9, "1": 10, "2": 11, "8": 12, "9": 13, "A": 14, "B": 15, "C": 16, "D": 17, "E": 18, "F": 19, "G": 20, "H": 21, "I": 22, "K": 23, "L": 24, "M": 25, "N": 26, "O": 27, "P": 28, "R": 29, "S": 30, "T": 31, "U": 32, "V": 33, "W": 34, "Y": 35, "Z": 36, "a": 37, "b": 38, "c": 39, "d": 40, "e": 41, "f": 42, "g": 43, "h": 44, "i": 45, "j": 46, "k": 47, "l": 48, "m": 49, "n": 50, "o": 51, "p": 52, "r": 53, "s": 54, "t": 55, "u": 56, "v": 57, "w": 58, "x": 59, "y": 60, "z": 61}, "el-CY": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "&": 5, "'": 6, "(": 7, ")": 8, "-": 9, ".": 10, "0": 11, "1": 12, "2": 13, "3": 14, "4": 15, "5": 16, "7": 17, "9": 18, "A": 19, "C": 20, "D": 21, "E": 22, "H": 23, "I": 24, "L": 25, "M": 26, "N": 27, "O": 28, "P": 29, "R": 30, "S": 31, "T": 32, "V": 33, "W": 34, "a": 35, "b": 36, "c": 37, "d": 38, "e": 39, "f": 40, "g": 41, "h": 42, "i": 43, "k": 44, "l": 45, "m": 46, "n": 47, "o": 48, "p": 49, "r": 50, "s": 51, "t": 52, "u": 53, "v": 54, "w": 55, "x": 56, "y": 57, "\u00ab": 58, "\u00bb": 59, "\u017e": 60, "\u0301": 61, "\u0306": 62, "\u030c": 63, "\u0340": 64, "\u0358": 65, "\u0384": 66, "\u0385": 67, "\u0386": 68, "\u0388": 69, "\u0389": 70, "\u038c": 71, "\u038e": 72, "\u038f": 73, "\u0390": 74, "\u0391": 75, "\u0392": 76, "\u0393": 77, "\u0394": 78, "\u0395": 79, "\u0396": 80, "\u0397": 81, "\u0398": 82, "\u0399": 83, "\u039a": 84, "\u039b": 85, "\u039c": 86, "\u039d": 87, "\u039e": 88, "\u039f": 89, "\u03a0": 90, "\u03a1": 91, "\u03a3": 92, "\u03a4": 93, "\u03a5": 94, "\u03a6": 95, "\u03a7": 96, "\u03a9": 97, "\u03ac": 98, "\u03ad": 99, "\u03ae": 100, "\u03af": 101, "\u03b0": 102, "\u03b1": 103, "\u03b2": 104, "\u03b3": 105, "\u03b4": 106, "\u03b5": 107, "\u03b6": 108, "\u03b7": 109, "\u03b8": 110, "\u03b9": 111, "\u03ba": 112, "\u03bb": 113, "\u03bc": 114, "\u03bd": 115, "\u03be": 116, "\u03bf": 117, "\u03c0": 118, "\u03c1": 119, "\u03c2": 120, "\u03c3": 121, "\u03c4": 122, "\u03c5": 123, "\u03c6": 124, "\u03c7": 125, "\u03c8": 126, "\u03c9": 127, "\u03ca": 128, "\u03cc": 129, "\u03cd": 130, "\u03ce": 131, "\u1f10": 132, "\u1f30": 133, "\u1f38": 134, "\u1f44": 135, "\u1f60": 136, "\u2013": 137, "\u2018": 138, "\u2019": 139, "\u2026": 140}, "hch": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "'": 5, "(": 6, ")": 7, "-": 8, ".": 9, "0": 10, "1": 11, "2": 12, "5": 13, "7": 14, "A": 15, "B": 16, "C": 17, "D": 18, "E": 19, "G": 20, "H": 21, "I": 22, "J": 23, "K": 24, "L": 25, "M": 26, "N": 27, "O": 28, "P": 29, "R": 30, "S": 31, "T": 32, "U": 33, "V": 34, "W": 35, "X": 36, "Y": 37, "Z": 38, "a": 39, "b": 40, "c": 41, "d": 42, "e": 43, "f": 44, "g": 45, "h": 46, "i": 47, "j": 48, "k": 49, "l": 50, "m": 51, "n": 52, "o": 53, "p": 54, "q": 55, "r": 56, "s": 57, "t": 58, "u": 59, "v": 60, "w": 61, "x": 62, "y": 63, "z": 64, "\u00b4": 65, "\u00e1": 66, "\u00e9": 67, "\u00ed": 68, "\u00f1": 69, "\u00f3": 70, "\u00fa": 71, "\u0197": 72, "\u0268": 73, "\u02bc": 74, "\u02c0": 75, "\u0301": 76, "\u2013": 77, "\u2018": 78, "\u2019": 79}, "kcn": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "%": 5, "'": 6, "(": 7, ")": 8, "-": 9, "0": 10, "1": 11, "A": 12, "B": 13, "C": 14, "D": 15, "E": 16, "F": 17, "G": 18, "H": 19, "I": 20, "J": 21, "K": 22, "L": 23, "M": 24, "N": 25, "O": 26, "P": 27, "Q": 28, "R": 29, "S": 30, "T": 31, "U": 32, "V": 33, "W": 34, "Y": 35, "Z": 36, "a": 37, "b": 38, "c": 39, "d": 40, "e": 41, "f": 42, "g": 43, "h": 44, "i": 45, "j": 46, "k": 47, "l": 48, "m": 49, "n": 50, "o": 51, "p": 52, "q": 53, "r": 54, "s": 55, "t": 56, "u": 57, "v": 58, "w": 59, "x": 60, "y": 61, "z": 62, "\u060c": 63}, "koo": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "'": 5, "-": 6, ".": 7, "1": 8, "A": 9, "B": 10, "C": 11, "E": 12, "G": 13, "H": 14, "I": 15, "K": 16, "L": 17, "M": 18, "N": 19, "O": 20, "P": 21, "R": 22, "S": 23, "T": 24, "U": 25, "V": 26, "W": 27, "Y": 28, "a": 29, "b": 30, "c": 31, "d": 32, "e": 33, "f": 34, "g": 35, "h": 36, "i": 37, "j": 38, "k": 39, "l": 40, "m": 41, "n": 42, "o": 43, "p": 44, "q": 45, "r": 46, "s": 47, "t": 48, "u": 49, "v": 50, "w": 51, "x": 52, "y": 53, "z": 54, "\u00e0": 55, "\u00ec": 56, "\u00ed": 57, "\u00f9": 58, "\u0137": 59}, "led": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "'": 5, "-": 6, ".": 7, "A": 8, "B": 9, "C": 10, "D": 11, "E": 12, "F": 13, "G": 14, "H": 15, "I": 16, "J": 17, "K": 18, "L": 19, "M": 20, "N": 21, "P": 22, "R": 23, "S": 24, "T": 25, "U": 26, "V": 27, "W": 28, "Y": 29, "Z": 30, "`": 31, "a": 32, "b": 33, "c": 34, "d": 35, "e": 36, "f": 37, "g": 38, "h": 39, "i": 40, "j": 41, "k": 42, "l": 43, "m": 44, "n": 45, "o": 46, "p": 47, "r": 48, "s": 49, "t": 50, "u": 51, "v": 52, "w": 53, "x": 54, "y": 55, "z": 56, "\u00c0": 57, "\u00cc": 58, "\u00cd": 59, "\u00e0": 60, "\u00e1": 61, "\u00e2": 62, "\u00e8": 63, "\u00e9": 64, "\u00ea": 65, "\u00ec": 66, "\u00ed": 67, "\u00ee": 68, "\u00f2": 69, "\u00f3": 70, "\u00f4": 71, "\u00f9": 72, "\u00fa": 73, "\u00fb": 74, "\u0111": 75, "\u011b": 76, "\u014a": 77, "\u014b": 78, "\u01ce": 79, "\u01d0": 80, "\u01d2": 81, "\u01d4": 82, "\u0266": 83, "\u0268": 84, "\u0289": 85, "\u0300": 86, "\u0301": 87, "\u0302": 88, "\u030c": 89}, "lke": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "'": 5, "(": 6, ")": 7, ".": 8, "1": 9, "A": 10, "B": 11, "C": 12, "E": 13, "G": 14, "H": 15, "I": 16, "J": 17, "K": 18, "L": 19, "M": 20, "N": 21, "O": 22, "P": 23, "S": 24, "T": 25, "U": 26, "V": 27, "W": 28, "Y": 29, "Z": 30, "a": 31, "b": 32, "c": 33, "d": 34, "e": 35, "f": 36, "g": 37, "h": 38, "i": 39, "j": 40, "k": 41, "l": 42, "m": 43, "n": 44, "o": 45, "p": 46, "q": 47, "r": 48, "s": 49, "t": 50, "u": 51, "v": 52, "w": 53, "x": 54, "y": 55, "z": 56, "\u00e0": 57, "\u00e9": 58, "\u0137": 59}, "lth": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "'": 5, "-": 6, "0": 7, "1": 8, "2": 9, "A": 10, "B": 11, "C": 12, "D": 13, "E": 14, "F": 15, "G": 16, "I": 17, "J": 18, "K": 19, "L": 20, "M": 21, "N": 22, "O": 23, "P": 24, "R": 25, "S": 26, "T": 27, "U": 28, "V": 29, "W": 30, "Y": 31, "a": 32, "b": 33, "c": 34, "d": 35, "e": 36, "f": 37, "g": 38, "h": 39, "i": 40, "j": 41, "k": 42, "l": 43, "m": 44, "n": 45, "o": 46, "p": 47, "r": 48, "s": 49, "t": 50, "u": 51, "v": 52, "w": 53, "x": 54, "y": 55, "z": 56, "\u00cb": 57, "\u00cf": 58, "\u00d6": 59, "\u00e4": 60, "\u00eb": 61, "\u00ef": 62, "\u00f6": 63, "\u00fc": 64, "\u0254": 65, "\u0268": 66, "\u02b7": 67, "\u0308": 68, "\u0327": 69}, "meh": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "'": 5, ".": 6, "A": 7, "D": 8, "E": 9, "F": 10, "H": 11, "I": 12, "J": 13, "K": 14, "L": 15, "M": 16, "N": 17, "O": 18, "P": 19, "R": 20, "S": 21, "T": 22, "U": 23, "V": 24, "W": 25, "X": 26, "Y": 27, "]": 28, "a": 29, "b": 30, "c": 31, "d": 32, "e": 33, "f": 34, "g": 35, "h": 36, "i": 37, "j": 38, "k": 39, "l": 40, "m": 41, "n": 42, "o": 43, "p": 44, "q": 45, "r": 46, "s": 47, "t": 48, "u": 49, "v": 50, "x": 51, "y": 52, "z": 53, "\u00d1": 54, "\u00e1": 55, "\u00e9": 56, "\u00ed": 57, "\u00f1": 58, "\u00fa": 59, "\u0197": 60, "\u0268": 61, "\u02c8": 62, "\u2019": 63, "\u2026": 64}, "mmc": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "'": 5, ".": 6, "A": 7, "B": 8, "C": 9, "D": 10, "E": 11, "G": 12, "H": 13, "I": 14, "J": 15, "K": 16, "L": 17, "M": 18, "N": 19, "O": 20, "P": 21, "Q": 22, "R": 23, "S": 24, "T": 25, "V": 26, "X": 27, "Y": 28, "Z": 29, "a": 30, "b": 31, "c": 32, "d": 33, "e": 34, "f": 35, "g": 36, "h": 37, "i": 38, "j": 39, "k": 40, "l": 41, "m": 42, "n": 43, "o": 44, "p": 45, "q": 46, "r": 47, "s": 48, "t": 49, "u": 50, "v": 51, "w": 52, "x": 53, "y": 54, "z": 55, "}": 56, "\u00b4": 57, "\u00c0": 58, "\u00cc": 59, "\u00cd": 60, "\u00d1": 61, "\u00d3": 62, "\u00e0": 63, "\u00e1": 64, "\u00e2": 65, "\u00e4": 66, "\u00e8": 67, "\u00e9": 68, "\u00ea": 69, "\u00eb": 70, "\u00ec": 71, "\u00ed": 72, "\u00ee": 73, "\u00ef": 74, "\u00f1": 75, "\u00f2": 76, "\u00f3": 77, "\u00f4": 78, "\u00f6": 79, "\u00f9": 80, "\u00fa": 81, "\u00fb": 82, "\u00fc": 83, "\u014d": 84, "\u0300": 85, "\u0301": 86, "\u0302": 87, "\u0303": 88, "\u0304": 89, "\u0308": 90, "\u030c": 91}, "pne": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "'": 5, "(": 6, ")": 7, "-": 8, ".": 9, "0": 10, "1": 11, "2": 12, "3": 13, "9": 14, "A": 15, "B": 16, "C": 17, "D": 18, "E": 19, "G": 20, "H": 21, "I": 22, "J": 23, "K": 24, "L": 25, "M": 26, "N": 27, "O": 28, "P": 29, "R": 30, "S": 31, "T": 32, "U": 33, "V": 34, "Y": 35, "a": 36, "b": 37, "c": 38, "d": 39, "e": 40, "f": 41, "g": 42, "h": 43, "i": 44, "j": 45, "k": 46, "l": 47, "m": 48, "n": 49, "o": 50, "p": 51, "q": 52, "r": 53, "s": 54, "t": 55, "u": 56, "v": 57, "w": 58, "x": 59, "y": 60, "z": 61, "~": 62}, "ruc": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "'": 5, "-": 6, ".": 7, "2": 8, "3": 9, "4": 10, "A": 11, "B": 12, "C": 13, "E": 14, "F": 15, "G": 16, "H": 17, "I": 18, "J": 19, "K": 20, "L": 21, "M": 22, "N": 23, "O": 24, "P": 25, "R": 26, "S": 27, "T": 28, "U": 29, "V": 30, "W": 31, "Y": 32, "Z": 33, "a": 34, "b": 35, "c": 36, "d": 37, "e": 38, "f": 39, "g": 40, "h": 41, "i": 42, "j": 43, "k": 44, "l": 45, "m": 46, "n": 47, "o": 48, "p": 49, "r": 50, "s": 51, "t": 52, "u": 53, "v": 54, "w": 55, "x": 56, "y": 57, "z": 58}, "rwm": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "-": 5, "A": 6, "B": 7, "C": 8, "D": 9, "E": 10, "F": 11, "G": 12, "H": 13, "I": 14, "J": 15, "K": 16, "L": 17, "M": 18, "N": 19, "O": 20, "P": 21, "S": 22, "T": 23, "U": 24, "V": 25, "W": 26, "Y": 27, "Z": 28, "a": 29, "b": 30, "c": 31, "d": 32, "e": 33, "f": 34, "g": 35, "h": 36, "i": 37, "j": 38, "k": 39, "l": 40, "m": 41, "n": 42, "o": 43, "p": 44, "q": 45, "r": 46, "s": 47, "t": 48, "u": 49, "v": 50, "w": 51, "x": 52, "y": 53, "z": 54, "\u00ed": 55, "\u00f1": 56, "\u0125": 57, "\u0137": 58}, "sco": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "'": 5, "(": 6, ")": 7, "-": 8, "/": 9, "2": 10, "5": 11, "7": 12, "9": 13, "A": 14, "B": 15, "C": 16, "D": 17, "E": 18, "F": 19, "G": 20, "H": 21, "I": 22, "J": 23, "K": 24, "L": 25, "M": 26, "N": 27, "O": 28, "P": 29, "Q": 30, "R": 31, "S": 32, "T": 33, "U": 34, "V": 35, "W": 36, "X": 37, "Y": 38, "Z": 39, "a": 40, "b": 41, "c": 42, "d": 43, "e": 44, "f": 45, "g": 46, "h": 47, "i": 48, "j": 49, "k": 50, "l": 51, "m": 52, "n": 53, "o": 54, "p": 55, "q": 56, "r": 57, "s": 58, "t": 59, "u": 60, "v": 61, "w": 62, "x": 63, "y": 64, "z": 65, "\u00df": 66, "\u00e9": 67, "\u00ed": 68, "\u2013": 69, "\u2018": 70, "\u2019": 71, "\u201c": 72, "\u201d": 73, "\u2026": 74}, "tob": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "'": 5, "-": 6, ".": 7, "/": 8, "1": 9, "2": 10, "5": 11, "7": 12, "9": 13, "A": 14, "B": 15, "C": 16, "D": 17, "E": 18, "F": 19, "G": 20, "H": 21, "I": 22, "J": 23, "K": 24, "L": 25, "M": 26, "N": 27, "O": 28, "P": 29, "Q": 30, "R": 31, "S": 32, "T": 33, "U": 34, "V": 35, "W": 36, "X": 37, "Y": 38, "a": 39, "b": 40, "c": 41, "d": 42, "e": 43, "f": 44, "g": 45, "h": 46, "i": 47, "j": 48, "k": 49, "l": 50, "m": 51, "n": 52, "o": 53, "p": 54, "q": 55, "r": 56, "s": 57, "t": 58, "u": 59, "v": 60, "w": 61, "x": 62, "y": 63, "z": 64, "\u00b4": 65, "\u00d1": 66, "\u00e1": 67, "\u00e8": 68, "\u00e9": 69, "\u00ed": 70, "\u00f1": 71, "\u00f3": 72, "\u00fa": 73, "\u00fd": 74, "\u00ff": 75, "\u1ef9": 76, "\u2019": 77}, "top": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "'": 5, "(": 6, ")": 7, "+": 8, "-": 9, ".": 10, "0": 11, "1": 12, "2": 13, "5": 14, "6": 15, "7": 16, "9": 17, "A": 18, "B": 19, "C": 20, "D": 21, "E": 22, "F": 23, "G": 24, "H": 25, "I": 26, "J": 27, "K": 28, "L": 29, "M": 30, "N": 31, "O": 32, "P": 33, "R": 34, "S": 35, "T": 36, "U": 37, "V": 38, "W": 39, "X": 40, "Z": 41, "a": 42, "b": 43, "c": 44, "d": 45, "e": 46, "f": 47, "g": 48, "h": 49, "i": 50, "j": 51, "k": 52, "l": 53, "m": 54, "n": 55, "o": 56, "p": 57, "q": 58, "r": 59, "s": 60, "t": 61, "u": 62, "v": 63, "w": 64, "x": 65, "y": 66, "z": 67, "\u00b4": 68, "\u00e1": 69, "\u00e9": 70, "\u00ed": 71, "\u00f1": 72, "\u00f3": 73, "\u00fa": 74, "\u00fd": 75, "\u2019": 76}, "ttj": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "&": 5, "'": 6, "-": 7, "1": 8, "4": 9, "7": 10, "A": 11, "B": 12, "C": 13, "D": 14, "E": 15, "F": 16, "G": 17, "H": 18, "I": 19, "K": 20, "L": 21, "M": 22, "N": 23, "O": 24, "P": 25, "Q": 26, "R": 27, "S": 28, "T": 29, "U": 30, "W": 31, "Y": 32, "a": 33, "b": 34, "c": 35, "d": 36, "e": 37, "f": 38, "g": 39, "h": 40, "i": 41, "j": 42, "k": 43, "l": 44, "m": 45, "n": 46, "o": 47, "p": 48, "r": 49, "s": 50, "t": 51, "u": 52, "v": 53, "w": 54, "y": 55, "z": 56, "\u00f6": 57, "\u00fc": 58, "\u0119": 59}, "ukv": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "'": 5, "*": 6, "A": 7, "B": 8, "D": 9, "E": 10, "G": 11, "I": 12, "K": 13, "L": 14, "M": 15, "N": 16, "P": 17, "R": 18, "S": 19, "T": 20, "U": 21, "W": 22, "Y": 23, "a": 24, "b": 25, "c": 26, "d": 27, "e": 28, "f": 29, "g": 30, "h": 31, "i": 32, "j": 33, "k": 34, "l": 35, "m": 36, "n": 37, "o": 38, "p": 39, "r": 40, "s": 41, "t": 42, "u": 43, "v": 44, "w": 45, "y": 46, "z": 47, "\u00e4": 48, "\u00f3": 49, "\u00f5": 50, "\u00f6": 51, "\u014b": 52, "\u0169": 53, "\u0199": 54, "\u0257": 55, "\u0272": 56, "\u0301": 57, "\u0304": 58, "\u0307": 59, "\u0308": 60, "\u0327": 61, "\u0335": 62}, "ady": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "'": 5, "-": 6, "A": 7, "B": 8, "C": 9, "D": 10, "E": 11, "F": 12, "G": 13, "H": 14, "I": 15, "J": 16, "K": 17, "L": 18, "M": 19, "N": 20, "P": 21, "R": 22, "S": 23, "T": 24, "U": 25, "V": 26, "X": 27, "Y": 28, "Z": 29, "a": 30, "b": 31, "c": 32, "d": 33, "e": 34, "f": 35, "g": 36, "h": 37, "i": 38, "j": 39, "k": 40, "l": 41, "m": 42, "n": 43, "o": 44, "p": 45, "r": 46, "s": 47, "t": 48, "u": 49, "v": 50, "x": 51, "y": 52, "z": 53, "\u00ab": 54, "\u00bb": 55, "\u00c7": 56, "\u00e7": 57, "\u00ea": 58, "\u00f6": 59, "\u00fc": 60, "\u011e": 61, "\u011f": 62, "\u0131": 63, "\u015e": 64, "\u015f": 65, "\u0410": 66, "\u0411": 67, "\u0412": 68, "\u0413": 69, "\u0414": 70, "\u0415": 71, "\u0416": 72, "\u0417": 73, "\u0418": 74, "\u041a": 75, "\u041b": 76, "\u041c": 77, "\u041d": 78, "\u041e": 79, "\u041f": 80, "\u0420": 81, "\u0421": 82, "\u0422": 83, "\u0423": 84, "\u0424": 85, "\u0425": 86, "\u0426": 87, "\u0427": 88, "\u0428": 89, "\u0429": 90, "\u042b": 91, "\u042d": 92, "\u042e": 93, "\u042f": 94, "\u0430": 95, "\u0431": 96, "\u0432": 97, "\u0433": 98, "\u0434": 99, "\u0435": 100, "\u0436": 101, "\u0437": 102, "\u0438": 103, "\u0439": 104, "\u043a": 105, "\u043b": 106, "\u043c": 107, "\u043d": 108, "\u043e": 109, "\u043f": 110, "\u0440": 111, "\u0441": 112, "\u0442": 113, "\u0443": 114, "\u0444": 115, "\u0445": 116, "\u0446": 117, "\u0447": 118, "\u0448": 119, "\u0449": 120, "\u044a": 121, "\u044b": 122, "\u044c": 123, "\u044d": 124, "\u044e": 125, "\u044f": 126, "\u0451": 127, "\u04c0": 128, "\u04cf": 129, "\u2013": 130, "\u2014": 131, "\u2026": 132}, "bas": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "-": 5, ".": 6, "A": 7, "B": 8, "D": 9, "E": 10, "F": 11, "G": 12, "H": 13, "I": 14, "J": 15, "K": 16, "L": 17, "M": 18, "N": 19, "O": 20, "P": 21, "S": 22, "T": 23, "U": 24, "W": 25, "Y": 26, "a": 27, "b": 28, "d": 29, "e": 30, "f": 31, "g": 32, "h": 33, "i": 34, "j": 35, "k": 36, "l": 37, "m": 38, "n": 39, "o": 40, "p": 41, "r": 42, "s": 43, "t": 44, "u": 45, "v": 46, "w": 47, "y": 48, "z": 49, "\u00c9": 50, "\u00d1": 51, "\u00d4": 52, "\u00e9": 53, "\u00f1": 54, "\u00f4": 55, "\u0301": 56, "\u0302": 57, "\u0303": 58, "\u0308": 59}, "kbd": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "'": 5, "-": 6, ".": 7, "A": 8, "B": 9, "C": 10, "D": 11, "E": 12, "F": 13, "G": 14, "H": 15, "I": 16, "J": 17, "K": 18, "L": 19, "M": 20, "N": 21, "P": 22, "R": 23, "S": 24, "T": 25, "U": 26, "V": 27, "X": 28, "Y": 29, "Z": 30, "a": 31, "b": 32, "c": 33, "d": 34, "e": 35, "f": 36, "g": 37, "h": 38, "i": 39, "j": 40, "k": 41, "l": 42, "m": 43, "n": 44, "o": 45, "p": 46, "r": 47, "s": 48, "t": 49, "u": 50, "v": 51, "x": 52, "y": 53, "z": 54, "\u00ab": 55, "\u00bb": 56, "\u00c7": 57, "\u00e7": 58, "\u00ea": 59, "\u00fc": 60, "\u011e": 61, "\u011f": 62, "\u0131": 63, "\u015e": 64, "\u015f": 65, "\u0406": 66, "\u0410": 67, "\u0411": 68, "\u0412": 69, "\u0413": 70, "\u0414": 71, "\u0415": 72, "\u0416": 73, "\u0417": 74, "\u0418": 75, "\u0419": 76, "\u041a": 77, "\u041b": 78, "\u041c": 79, "\u041d": 80, "\u041e": 81, "\u041f": 82, "\u0420": 83, "\u0421": 84, "\u0422": 85, "\u0423": 86, "\u0424": 87, "\u0425": 88, "\u0426": 89, "\u0427": 90, "\u0428": 91, "\u0429": 92, "\u042b": 93, "\u042d": 94, "\u042e": 95, "\u042f": 96, "\u0430": 97, "\u0431": 98, "\u0432": 99, "\u0433": 100, "\u0434": 101, "\u0435": 102, "\u0436": 103, "\u0437": 104, "\u0438": 105, "\u0439": 106, "\u043a": 107, "\u043b": 108, "\u043c": 109, "\u043d": 110, "\u043e": 111, "\u043f": 112, "\u0440": 113, "\u0441": 114, "\u0442": 115, "\u0443": 116, "\u0444": 117, "\u0445": 118, "\u0446": 119, "\u0447": 120, "\u0448": 121, "\u0449": 122, "\u044a": 123, "\u044b": 124, "\u044c": 125, "\u044d": 126, "\u044e": 127, "\u044f": 128, "\u0451": 129, "\u04c0": 130, "\u04cf": 131, "\u2013": 132, "\u2014": 133, "\u2026": 134}, "qxp": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "'": 5, "-": 6, "A": 7, "B": 8, "C": 9, "D": 10, "E": 11, "G": 12, "H": 13, "I": 14, "J": 15, "K": 16, "L": 17, "M": 18, "N": 19, "P": 20, "Q": 21, "R": 22, "S": 23, "T": 24, "U": 25, "V": 26, "W": 27, "Y": 28, "a": 29, "b": 30, "c": 31, "d": 32, "e": 33, "f": 34, "g": 35, "h": 36, "i": 37, "j": 38, "k": 39, "l": 40, "m": 41, "n": 42, "o": 43, "p": 44, "q": 45, "r": 46, "s": 47, "t": 48, "u": 49, "v": 50, "w": 51, "y": 52, "z": 53, "\u00d1": 54, "\u00e1": 55, "\u00ed": 56, "\u00f1": 57, "\u00fa": 58, "\u2019": 59}, "ush": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "#": 5, "(": 6, ")": 7, "-": 8, "/": 9, "=": 10, "@": 11, "D": 12, "E": 13, "T": 14, "[": 15, "]": 16, "a": 17, "d": 18, "e": 19, "h": 20, "n": 21, "o": 22, "p": 23, "r": 24, "s": 25, "t": 26, "w": 27, "}": 28, "\u0436": 29, "\u060c": 30, "\u061b": 31, "\u061f": 32, "\u0622": 33, "\u0623": 34, "\u0624": 35, "\u0626": 36, "\u0627": 37, "\u0628": 38, "\u062a": 39, "\u062b": 40, "\u062c": 41, "\u062d": 42, "\u062e": 43, "\u062f": 44, "\u0630": 45, "\u0631": 46, "\u0632": 47, "\u0633": 48, "\u0634": 49, "\u0635": 50, "\u0636": 51, "\u0637": 52, "\u0638": 53, "\u0639": 54, "\u063a": 55, "\u0641": 56, "\u0642": 57, "\u0644": 58, "\u0645": 59, "\u0646": 60, "\u0647": 61, "\u0648": 62, "\u064b": 63, "\u064f": 64, "\u0650": 65, "\u0679": 66, "\u067e": 67, "\u0685": 68, "\u0686": 69, "\u0687": 70, "\u0688": 71, "\u0691": 72, "\u0698": 73, "\u0699": 74, "\u06a9": 75, "\u06af": 76, "\u06ba": 77, "\u06be": 78, "\u06c1": 79, "\u06cc": 80, "\u06d2": 81, "\u06d4": 82, "\u075c": 83, "\u2014": 84, "\u2018": 85, "\u2019": 86, "\u201c": 87, "\u201d": 88}}
|
models-03-mms-1b-all-tuned-commonvoice-all-data/config.json
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"activation_dropout": 0.05,
|
| 3 |
+
"adapter_attn_dim": 16,
|
| 4 |
+
"adapter_kernel_size": 3,
|
| 5 |
+
"adapter_stride": 2,
|
| 6 |
+
"add_adapter": false,
|
| 7 |
+
"apply_spec_augment": true,
|
| 8 |
+
"architectures": [
|
| 9 |
+
"Wav2Vec2ForCTC"
|
| 10 |
+
],
|
| 11 |
+
"attention_dropout": 0.05,
|
| 12 |
+
"bos_token_id": 1,
|
| 13 |
+
"classifier_proj_size": 256,
|
| 14 |
+
"codevector_dim": 1024,
|
| 15 |
+
"contrastive_logits_temperature": 0.1,
|
| 16 |
+
"conv_bias": true,
|
| 17 |
+
"conv_dim": [
|
| 18 |
+
512,
|
| 19 |
+
512,
|
| 20 |
+
512,
|
| 21 |
+
512,
|
| 22 |
+
512,
|
| 23 |
+
512,
|
| 24 |
+
512
|
| 25 |
+
],
|
| 26 |
+
"conv_kernel": [
|
| 27 |
+
10,
|
| 28 |
+
3,
|
| 29 |
+
3,
|
| 30 |
+
3,
|
| 31 |
+
3,
|
| 32 |
+
2,
|
| 33 |
+
2
|
| 34 |
+
],
|
| 35 |
+
"conv_stride": [
|
| 36 |
+
5,
|
| 37 |
+
2,
|
| 38 |
+
2,
|
| 39 |
+
2,
|
| 40 |
+
2,
|
| 41 |
+
2,
|
| 42 |
+
2
|
| 43 |
+
],
|
| 44 |
+
"ctc_loss_reduction": "mean",
|
| 45 |
+
"ctc_zero_infinity": false,
|
| 46 |
+
"diversity_loss_weight": 0.1,
|
| 47 |
+
"do_stable_layer_norm": true,
|
| 48 |
+
"dtype": "float32",
|
| 49 |
+
"eos_token_id": 2,
|
| 50 |
+
"feat_extract_activation": "gelu",
|
| 51 |
+
"feat_extract_dropout": 0.0,
|
| 52 |
+
"feat_extract_norm": "layer",
|
| 53 |
+
"feat_proj_dropout": 0.05,
|
| 54 |
+
"feat_quantizer_dropout": 0.0,
|
| 55 |
+
"final_dropout": 0.05,
|
| 56 |
+
"hidden_act": "gelu",
|
| 57 |
+
"hidden_dropout": 0.05,
|
| 58 |
+
"hidden_size": 1280,
|
| 59 |
+
"initializer_range": 0.02,
|
| 60 |
+
"intermediate_size": 5120,
|
| 61 |
+
"layer_norm_eps": 1e-05,
|
| 62 |
+
"layerdrop": 0.05,
|
| 63 |
+
"mask_feature_length": 10,
|
| 64 |
+
"mask_feature_min_masks": 0,
|
| 65 |
+
"mask_feature_prob": 0.0,
|
| 66 |
+
"mask_time_length": 10,
|
| 67 |
+
"mask_time_min_masks": 2,
|
| 68 |
+
"mask_time_prob": 0.05,
|
| 69 |
+
"model_type": "wav2vec2",
|
| 70 |
+
"num_adapter_layers": 3,
|
| 71 |
+
"num_attention_heads": 16,
|
| 72 |
+
"num_codevector_groups": 2,
|
| 73 |
+
"num_codevectors_per_group": 320,
|
| 74 |
+
"num_conv_pos_embedding_groups": 16,
|
| 75 |
+
"num_conv_pos_embeddings": 128,
|
| 76 |
+
"num_feat_extract_layers": 7,
|
| 77 |
+
"num_hidden_layers": 48,
|
| 78 |
+
"num_negatives": 100,
|
| 79 |
+
"output_hidden_size": 1280,
|
| 80 |
+
"pad_token_id": 0,
|
| 81 |
+
"proj_codevector_dim": 1024,
|
| 82 |
+
"tdnn_dilation": [
|
| 83 |
+
1,
|
| 84 |
+
2,
|
| 85 |
+
3,
|
| 86 |
+
1,
|
| 87 |
+
1
|
| 88 |
+
],
|
| 89 |
+
"tdnn_dim": [
|
| 90 |
+
512,
|
| 91 |
+
512,
|
| 92 |
+
512,
|
| 93 |
+
512,
|
| 94 |
+
1500
|
| 95 |
+
],
|
| 96 |
+
"tdnn_kernel": [
|
| 97 |
+
5,
|
| 98 |
+
3,
|
| 99 |
+
3,
|
| 100 |
+
1,
|
| 101 |
+
1
|
| 102 |
+
],
|
| 103 |
+
"transformers_version": "4.57.1",
|
| 104 |
+
"use_weighted_layer_sum": false,
|
| 105 |
+
"vocab_size": 89,
|
| 106 |
+
"xvector_output_dim": 512
|
| 107 |
+
}
|
models-03-mms-1b-all-tuned-commonvoice-all-data/preprocessor_config.json
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"do_normalize": true,
|
| 3 |
+
"feature_extractor_type": "Wav2Vec2FeatureExtractor",
|
| 4 |
+
"feature_size": 1,
|
| 5 |
+
"padding_side": "right",
|
| 6 |
+
"padding_value": 0.0,
|
| 7 |
+
"return_attention_mask": true,
|
| 8 |
+
"sampling_rate": 16000
|
| 9 |
+
}
|
models-03-mms-1b-all-tuned-commonvoice-all-data/special_tokens_map.json
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"bos_token": "<s>",
|
| 3 |
+
"eos_token": "</s>",
|
| 4 |
+
"pad_token": "<pad>",
|
| 5 |
+
"unk_token": "<unk>"
|
| 6 |
+
}
|
models-03-mms-1b-all-tuned-commonvoice-all-data/tokenizer_config.json
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"added_tokens_decoder": {
|
| 3 |
+
"0": {
|
| 4 |
+
"content": "<pad>",
|
| 5 |
+
"lstrip": true,
|
| 6 |
+
"normalized": false,
|
| 7 |
+
"rstrip": true,
|
| 8 |
+
"single_word": false,
|
| 9 |
+
"special": false
|
| 10 |
+
},
|
| 11 |
+
"1": {
|
| 12 |
+
"content": "<s>",
|
| 13 |
+
"lstrip": true,
|
| 14 |
+
"normalized": false,
|
| 15 |
+
"rstrip": true,
|
| 16 |
+
"single_word": false,
|
| 17 |
+
"special": false
|
| 18 |
+
},
|
| 19 |
+
"2": {
|
| 20 |
+
"content": "</s>",
|
| 21 |
+
"lstrip": true,
|
| 22 |
+
"normalized": false,
|
| 23 |
+
"rstrip": true,
|
| 24 |
+
"single_word": false,
|
| 25 |
+
"special": false
|
| 26 |
+
},
|
| 27 |
+
"3": {
|
| 28 |
+
"content": "<unk>",
|
| 29 |
+
"lstrip": true,
|
| 30 |
+
"normalized": false,
|
| 31 |
+
"rstrip": true,
|
| 32 |
+
"single_word": false,
|
| 33 |
+
"special": false
|
| 34 |
+
}
|
| 35 |
+
},
|
| 36 |
+
"bos_token": "<s>",
|
| 37 |
+
"clean_up_tokenization_spaces": false,
|
| 38 |
+
"do_lower_case": false,
|
| 39 |
+
"eos_token": "</s>",
|
| 40 |
+
"extra_special_tokens": {},
|
| 41 |
+
"model_max_length": 1000000000000000019884624838656,
|
| 42 |
+
"pad_token": "<pad>",
|
| 43 |
+
"processor_class": "Wav2Vec2Processor",
|
| 44 |
+
"replace_word_delimiter_char": " ",
|
| 45 |
+
"target_lang": "aln",
|
| 46 |
+
"tokenizer_class": "Wav2Vec2CTCTokenizer",
|
| 47 |
+
"unk_token": "<unk>",
|
| 48 |
+
"word_delimiter_token": "|"
|
| 49 |
+
}
|
models-03-mms-1b-all-tuned-commonvoice-all-data/trainer_state.json
ADDED
|
@@ -0,0 +1,514 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"best_global_step": null,
|
| 3 |
+
"best_metric": null,
|
| 4 |
+
"best_model_checkpoint": null,
|
| 5 |
+
"epoch": 30.0,
|
| 6 |
+
"eval_steps": 500,
|
| 7 |
+
"global_step": 18510,
|
| 8 |
+
"is_hyper_param_search": false,
|
| 9 |
+
"is_local_process_zero": true,
|
| 10 |
+
"is_world_process_zero": true,
|
| 11 |
+
"log_history": [
|
| 12 |
+
{
|
| 13 |
+
"epoch": 1.0,
|
| 14 |
+
"grad_norm": 6.142387390136719,
|
| 15 |
+
"learning_rate": 0.001,
|
| 16 |
+
"loss": 1.6404,
|
| 17 |
+
"step": 617
|
| 18 |
+
},
|
| 19 |
+
{
|
| 20 |
+
"epoch": 1.0,
|
| 21 |
+
"eval_loss": 1.1813490390777588,
|
| 22 |
+
"eval_runtime": 31.6398,
|
| 23 |
+
"eval_samples_per_second": 8.47,
|
| 24 |
+
"eval_steps_per_second": 4.235,
|
| 25 |
+
"eval_wer": 0.573535118354676,
|
| 26 |
+
"step": 617
|
| 27 |
+
},
|
| 28 |
+
{
|
| 29 |
+
"epoch": 2.0,
|
| 30 |
+
"grad_norm": 5.926711559295654,
|
| 31 |
+
"learning_rate": 0.001,
|
| 32 |
+
"loss": 1.2189,
|
| 33 |
+
"step": 1234
|
| 34 |
+
},
|
| 35 |
+
{
|
| 36 |
+
"epoch": 2.0,
|
| 37 |
+
"eval_loss": 1.2071176767349243,
|
| 38 |
+
"eval_runtime": 31.6128,
|
| 39 |
+
"eval_samples_per_second": 8.478,
|
| 40 |
+
"eval_steps_per_second": 4.239,
|
| 41 |
+
"eval_wer": 0.5642219635234769,
|
| 42 |
+
"step": 1234
|
| 43 |
+
},
|
| 44 |
+
{
|
| 45 |
+
"epoch": 3.0,
|
| 46 |
+
"grad_norm": 1.071460247039795,
|
| 47 |
+
"learning_rate": 0.001,
|
| 48 |
+
"loss": 1.1593,
|
| 49 |
+
"step": 1851
|
| 50 |
+
},
|
| 51 |
+
{
|
| 52 |
+
"epoch": 3.0,
|
| 53 |
+
"eval_loss": 1.0929021835327148,
|
| 54 |
+
"eval_runtime": 31.5777,
|
| 55 |
+
"eval_samples_per_second": 8.487,
|
| 56 |
+
"eval_steps_per_second": 4.244,
|
| 57 |
+
"eval_wer": 0.5278101151209417,
|
| 58 |
+
"step": 1851
|
| 59 |
+
},
|
| 60 |
+
{
|
| 61 |
+
"epoch": 4.0,
|
| 62 |
+
"grad_norm": 1.797624111175537,
|
| 63 |
+
"learning_rate": 0.001,
|
| 64 |
+
"loss": 1.1299,
|
| 65 |
+
"step": 2468
|
| 66 |
+
},
|
| 67 |
+
{
|
| 68 |
+
"epoch": 4.0,
|
| 69 |
+
"eval_loss": 1.034507155418396,
|
| 70 |
+
"eval_runtime": 31.5622,
|
| 71 |
+
"eval_samples_per_second": 8.491,
|
| 72 |
+
"eval_steps_per_second": 4.246,
|
| 73 |
+
"eval_wer": 0.5146164791100764,
|
| 74 |
+
"step": 2468
|
| 75 |
+
},
|
| 76 |
+
{
|
| 77 |
+
"epoch": 5.0,
|
| 78 |
+
"grad_norm": 3.277179002761841,
|
| 79 |
+
"learning_rate": 0.001,
|
| 80 |
+
"loss": 1.1073,
|
| 81 |
+
"step": 3085
|
| 82 |
+
},
|
| 83 |
+
{
|
| 84 |
+
"epoch": 5.0,
|
| 85 |
+
"eval_loss": 1.0591968297958374,
|
| 86 |
+
"eval_runtime": 31.5976,
|
| 87 |
+
"eval_samples_per_second": 8.482,
|
| 88 |
+
"eval_steps_per_second": 4.241,
|
| 89 |
+
"eval_wer": 0.5151985512870263,
|
| 90 |
+
"step": 3085
|
| 91 |
+
},
|
| 92 |
+
{
|
| 93 |
+
"epoch": 6.0,
|
| 94 |
+
"grad_norm": 1.4815887212753296,
|
| 95 |
+
"learning_rate": 0.001,
|
| 96 |
+
"loss": 1.0769,
|
| 97 |
+
"step": 3702
|
| 98 |
+
},
|
| 99 |
+
{
|
| 100 |
+
"epoch": 6.0,
|
| 101 |
+
"eval_loss": 1.0485769510269165,
|
| 102 |
+
"eval_runtime": 31.5956,
|
| 103 |
+
"eval_samples_per_second": 8.482,
|
| 104 |
+
"eval_steps_per_second": 4.241,
|
| 105 |
+
"eval_wer": 0.4926917604449618,
|
| 106 |
+
"step": 3702
|
| 107 |
+
},
|
| 108 |
+
{
|
| 109 |
+
"epoch": 7.0,
|
| 110 |
+
"grad_norm": 3.247382640838623,
|
| 111 |
+
"learning_rate": 0.001,
|
| 112 |
+
"loss": 1.0535,
|
| 113 |
+
"step": 4319
|
| 114 |
+
},
|
| 115 |
+
{
|
| 116 |
+
"epoch": 7.0,
|
| 117 |
+
"eval_loss": 0.9702441096305847,
|
| 118 |
+
"eval_runtime": 31.5674,
|
| 119 |
+
"eval_samples_per_second": 8.49,
|
| 120 |
+
"eval_steps_per_second": 4.245,
|
| 121 |
+
"eval_wer": 0.4858362436942181,
|
| 122 |
+
"step": 4319
|
| 123 |
+
},
|
| 124 |
+
{
|
| 125 |
+
"epoch": 8.0,
|
| 126 |
+
"grad_norm": 7.202455997467041,
|
| 127 |
+
"learning_rate": 0.001,
|
| 128 |
+
"loss": 1.0503,
|
| 129 |
+
"step": 4936
|
| 130 |
+
},
|
| 131 |
+
{
|
| 132 |
+
"epoch": 8.0,
|
| 133 |
+
"eval_loss": 1.0273774862289429,
|
| 134 |
+
"eval_runtime": 31.7331,
|
| 135 |
+
"eval_samples_per_second": 8.445,
|
| 136 |
+
"eval_steps_per_second": 4.223,
|
| 137 |
+
"eval_wer": 0.4794981244340965,
|
| 138 |
+
"step": 4936
|
| 139 |
+
},
|
| 140 |
+
{
|
| 141 |
+
"epoch": 9.0,
|
| 142 |
+
"grad_norm": 1.906989574432373,
|
| 143 |
+
"learning_rate": 0.001,
|
| 144 |
+
"loss": 1.0421,
|
| 145 |
+
"step": 5553
|
| 146 |
+
},
|
| 147 |
+
{
|
| 148 |
+
"epoch": 9.0,
|
| 149 |
+
"eval_loss": 0.9730055928230286,
|
| 150 |
+
"eval_runtime": 31.6308,
|
| 151 |
+
"eval_samples_per_second": 8.473,
|
| 152 |
+
"eval_steps_per_second": 4.236,
|
| 153 |
+
"eval_wer": 0.4729659811149916,
|
| 154 |
+
"step": 5553
|
| 155 |
+
},
|
| 156 |
+
{
|
| 157 |
+
"epoch": 10.0,
|
| 158 |
+
"grad_norm": 1.5502122640609741,
|
| 159 |
+
"learning_rate": 0.001,
|
| 160 |
+
"loss": 1.0233,
|
| 161 |
+
"step": 6170
|
| 162 |
+
},
|
| 163 |
+
{
|
| 164 |
+
"epoch": 10.0,
|
| 165 |
+
"eval_loss": 1.0030382871627808,
|
| 166 |
+
"eval_runtime": 31.6102,
|
| 167 |
+
"eval_samples_per_second": 8.478,
|
| 168 |
+
"eval_steps_per_second": 4.239,
|
| 169 |
+
"eval_wer": 0.5046565774155995,
|
| 170 |
+
"step": 6170
|
| 171 |
+
},
|
| 172 |
+
{
|
| 173 |
+
"epoch": 11.0,
|
| 174 |
+
"grad_norm": 1.6554566621780396,
|
| 175 |
+
"learning_rate": 0.001,
|
| 176 |
+
"loss": 1.0124,
|
| 177 |
+
"step": 6787
|
| 178 |
+
},
|
| 179 |
+
{
|
| 180 |
+
"epoch": 11.0,
|
| 181 |
+
"eval_loss": 1.0441631078720093,
|
| 182 |
+
"eval_runtime": 31.6166,
|
| 183 |
+
"eval_samples_per_second": 8.477,
|
| 184 |
+
"eval_steps_per_second": 4.238,
|
| 185 |
+
"eval_wer": 0.4636528262837925,
|
| 186 |
+
"step": 6787
|
| 187 |
+
},
|
| 188 |
+
{
|
| 189 |
+
"epoch": 12.0,
|
| 190 |
+
"grad_norm": 2.694192409515381,
|
| 191 |
+
"learning_rate": 0.001,
|
| 192 |
+
"loss": 0.9999,
|
| 193 |
+
"step": 7404
|
| 194 |
+
},
|
| 195 |
+
{
|
| 196 |
+
"epoch": 12.0,
|
| 197 |
+
"eval_loss": 1.0214890241622925,
|
| 198 |
+
"eval_runtime": 31.5327,
|
| 199 |
+
"eval_samples_per_second": 8.499,
|
| 200 |
+
"eval_steps_per_second": 4.25,
|
| 201 |
+
"eval_wer": 0.45388694864829904,
|
| 202 |
+
"step": 7404
|
| 203 |
+
},
|
| 204 |
+
{
|
| 205 |
+
"epoch": 13.0,
|
| 206 |
+
"grad_norm": 1.5703463554382324,
|
| 207 |
+
"learning_rate": 0.001,
|
| 208 |
+
"loss": 0.9897,
|
| 209 |
+
"step": 8021
|
| 210 |
+
},
|
| 211 |
+
{
|
| 212 |
+
"epoch": 13.0,
|
| 213 |
+
"eval_loss": 0.9969828724861145,
|
| 214 |
+
"eval_runtime": 31.5857,
|
| 215 |
+
"eval_samples_per_second": 8.485,
|
| 216 |
+
"eval_steps_per_second": 4.242,
|
| 217 |
+
"eval_wer": 0.46087181477169836,
|
| 218 |
+
"step": 8021
|
| 219 |
+
},
|
| 220 |
+
{
|
| 221 |
+
"epoch": 14.0,
|
| 222 |
+
"grad_norm": 1.4371331930160522,
|
| 223 |
+
"learning_rate": 0.001,
|
| 224 |
+
"loss": 0.9876,
|
| 225 |
+
"step": 8638
|
| 226 |
+
},
|
| 227 |
+
{
|
| 228 |
+
"epoch": 14.0,
|
| 229 |
+
"eval_loss": 0.9558866024017334,
|
| 230 |
+
"eval_runtime": 31.5775,
|
| 231 |
+
"eval_samples_per_second": 8.487,
|
| 232 |
+
"eval_steps_per_second": 4.244,
|
| 233 |
+
"eval_wer": 0.4465140344069331,
|
| 234 |
+
"step": 8638
|
| 235 |
+
},
|
| 236 |
+
{
|
| 237 |
+
"epoch": 15.0,
|
| 238 |
+
"grad_norm": 1.0465878248214722,
|
| 239 |
+
"learning_rate": 0.001,
|
| 240 |
+
"loss": 0.9485,
|
| 241 |
+
"step": 9255
|
| 242 |
+
},
|
| 243 |
+
{
|
| 244 |
+
"epoch": 15.0,
|
| 245 |
+
"eval_loss": 0.9643862247467041,
|
| 246 |
+
"eval_runtime": 31.5664,
|
| 247 |
+
"eval_samples_per_second": 8.49,
|
| 248 |
+
"eval_steps_per_second": 4.245,
|
| 249 |
+
"eval_wer": 0.4463200103479498,
|
| 250 |
+
"step": 9255
|
| 251 |
+
},
|
| 252 |
+
{
|
| 253 |
+
"epoch": 16.0,
|
| 254 |
+
"grad_norm": 0.7919704914093018,
|
| 255 |
+
"learning_rate": 0.001,
|
| 256 |
+
"loss": 0.9473,
|
| 257 |
+
"step": 9872
|
| 258 |
+
},
|
| 259 |
+
{
|
| 260 |
+
"epoch": 16.0,
|
| 261 |
+
"eval_loss": 0.9228473901748657,
|
| 262 |
+
"eval_runtime": 31.796,
|
| 263 |
+
"eval_samples_per_second": 8.429,
|
| 264 |
+
"eval_steps_per_second": 4.214,
|
| 265 |
+
"eval_wer": 0.43383779588668997,
|
| 266 |
+
"step": 9872
|
| 267 |
+
},
|
| 268 |
+
{
|
| 269 |
+
"epoch": 17.0,
|
| 270 |
+
"grad_norm": 2.4572646617889404,
|
| 271 |
+
"learning_rate": 0.0005,
|
| 272 |
+
"loss": 0.9062,
|
| 273 |
+
"step": 10489
|
| 274 |
+
},
|
| 275 |
+
{
|
| 276 |
+
"epoch": 17.0,
|
| 277 |
+
"eval_loss": 0.8750792741775513,
|
| 278 |
+
"eval_runtime": 31.6233,
|
| 279 |
+
"eval_samples_per_second": 8.475,
|
| 280 |
+
"eval_steps_per_second": 4.237,
|
| 281 |
+
"eval_wer": 0.42258440046565776,
|
| 282 |
+
"step": 10489
|
| 283 |
+
},
|
| 284 |
+
{
|
| 285 |
+
"epoch": 18.0,
|
| 286 |
+
"grad_norm": 2.0163021087646484,
|
| 287 |
+
"learning_rate": 0.0005,
|
| 288 |
+
"loss": 0.8839,
|
| 289 |
+
"step": 11106
|
| 290 |
+
},
|
| 291 |
+
{
|
| 292 |
+
"epoch": 18.0,
|
| 293 |
+
"eval_loss": 0.8883673548698425,
|
| 294 |
+
"eval_runtime": 31.6267,
|
| 295 |
+
"eval_samples_per_second": 8.474,
|
| 296 |
+
"eval_steps_per_second": 4.237,
|
| 297 |
+
"eval_wer": 0.41378864312508085,
|
| 298 |
+
"step": 11106
|
| 299 |
+
},
|
| 300 |
+
{
|
| 301 |
+
"epoch": 19.0,
|
| 302 |
+
"grad_norm": 1.1623060703277588,
|
| 303 |
+
"learning_rate": 0.0005,
|
| 304 |
+
"loss": 0.88,
|
| 305 |
+
"step": 11723
|
| 306 |
+
},
|
| 307 |
+
{
|
| 308 |
+
"epoch": 19.0,
|
| 309 |
+
"eval_loss": 0.867786169052124,
|
| 310 |
+
"eval_runtime": 31.5967,
|
| 311 |
+
"eval_samples_per_second": 8.482,
|
| 312 |
+
"eval_steps_per_second": 4.241,
|
| 313 |
+
"eval_wer": 0.4091320657094813,
|
| 314 |
+
"step": 11723
|
| 315 |
+
},
|
| 316 |
+
{
|
| 317 |
+
"epoch": 20.0,
|
| 318 |
+
"grad_norm": 1.3829597234725952,
|
| 319 |
+
"learning_rate": 0.0005,
|
| 320 |
+
"loss": 0.862,
|
| 321 |
+
"step": 12340
|
| 322 |
+
},
|
| 323 |
+
{
|
| 324 |
+
"epoch": 20.0,
|
| 325 |
+
"eval_loss": 0.7998231053352356,
|
| 326 |
+
"eval_runtime": 31.7219,
|
| 327 |
+
"eval_samples_per_second": 8.448,
|
| 328 |
+
"eval_steps_per_second": 4.224,
|
| 329 |
+
"eval_wer": 0.40654507825637043,
|
| 330 |
+
"step": 12340
|
| 331 |
+
},
|
| 332 |
+
{
|
| 333 |
+
"epoch": 21.0,
|
| 334 |
+
"grad_norm": 2.9008634090423584,
|
| 335 |
+
"learning_rate": 0.0005,
|
| 336 |
+
"loss": 0.8595,
|
| 337 |
+
"step": 12957
|
| 338 |
+
},
|
| 339 |
+
{
|
| 340 |
+
"epoch": 21.0,
|
| 341 |
+
"eval_loss": 0.8467879891395569,
|
| 342 |
+
"eval_runtime": 31.5921,
|
| 343 |
+
"eval_samples_per_second": 8.483,
|
| 344 |
+
"eval_steps_per_second": 4.242,
|
| 345 |
+
"eval_wer": 0.4033113439399819,
|
| 346 |
+
"step": 12957
|
| 347 |
+
},
|
| 348 |
+
{
|
| 349 |
+
"epoch": 22.0,
|
| 350 |
+
"grad_norm": 2.195237398147583,
|
| 351 |
+
"learning_rate": 0.0005,
|
| 352 |
+
"loss": 0.8507,
|
| 353 |
+
"step": 13574
|
| 354 |
+
},
|
| 355 |
+
{
|
| 356 |
+
"epoch": 22.0,
|
| 357 |
+
"eval_loss": 0.8179259300231934,
|
| 358 |
+
"eval_runtime": 31.7256,
|
| 359 |
+
"eval_samples_per_second": 8.447,
|
| 360 |
+
"eval_steps_per_second": 4.224,
|
| 361 |
+
"eval_wer": 0.4057689820204372,
|
| 362 |
+
"step": 13574
|
| 363 |
+
},
|
| 364 |
+
{
|
| 365 |
+
"epoch": 23.0,
|
| 366 |
+
"grad_norm": 2.596975088119507,
|
| 367 |
+
"learning_rate": 0.0005,
|
| 368 |
+
"loss": 0.8403,
|
| 369 |
+
"step": 14191
|
| 370 |
+
},
|
| 371 |
+
{
|
| 372 |
+
"epoch": 23.0,
|
| 373 |
+
"eval_loss": 0.8047757744789124,
|
| 374 |
+
"eval_runtime": 31.5678,
|
| 375 |
+
"eval_samples_per_second": 8.49,
|
| 376 |
+
"eval_steps_per_second": 4.245,
|
| 377 |
+
"eval_wer": 0.39419221316776615,
|
| 378 |
+
"step": 14191
|
| 379 |
+
},
|
| 380 |
+
{
|
| 381 |
+
"epoch": 24.0,
|
| 382 |
+
"grad_norm": 1.4368164539337158,
|
| 383 |
+
"learning_rate": 0.00025,
|
| 384 |
+
"loss": 0.8123,
|
| 385 |
+
"step": 14808
|
| 386 |
+
},
|
| 387 |
+
{
|
| 388 |
+
"epoch": 24.0,
|
| 389 |
+
"eval_loss": 0.7663103938102722,
|
| 390 |
+
"eval_runtime": 31.5876,
|
| 391 |
+
"eval_samples_per_second": 8.484,
|
| 392 |
+
"eval_steps_per_second": 4.242,
|
| 393 |
+
"eval_wer": 0.38778941922131677,
|
| 394 |
+
"step": 14808
|
| 395 |
+
},
|
| 396 |
+
{
|
| 397 |
+
"epoch": 25.0,
|
| 398 |
+
"grad_norm": 1.2003378868103027,
|
| 399 |
+
"learning_rate": 0.00025,
|
| 400 |
+
"loss": 0.8027,
|
| 401 |
+
"step": 15425
|
| 402 |
+
},
|
| 403 |
+
{
|
| 404 |
+
"epoch": 25.0,
|
| 405 |
+
"eval_loss": 0.7548543214797974,
|
| 406 |
+
"eval_runtime": 31.5931,
|
| 407 |
+
"eval_samples_per_second": 8.483,
|
| 408 |
+
"eval_steps_per_second": 4.241,
|
| 409 |
+
"eval_wer": 0.37860561376277324,
|
| 410 |
+
"step": 15425
|
| 411 |
+
},
|
| 412 |
+
{
|
| 413 |
+
"epoch": 26.0,
|
| 414 |
+
"grad_norm": 1.2984884977340698,
|
| 415 |
+
"learning_rate": 0.00025,
|
| 416 |
+
"loss": 0.7896,
|
| 417 |
+
"step": 16042
|
| 418 |
+
},
|
| 419 |
+
{
|
| 420 |
+
"epoch": 26.0,
|
| 421 |
+
"eval_loss": 0.8028557896614075,
|
| 422 |
+
"eval_runtime": 31.5298,
|
| 423 |
+
"eval_samples_per_second": 8.5,
|
| 424 |
+
"eval_steps_per_second": 4.25,
|
| 425 |
+
"eval_wer": 0.3768593972319234,
|
| 426 |
+
"step": 16042
|
| 427 |
+
},
|
| 428 |
+
{
|
| 429 |
+
"epoch": 27.0,
|
| 430 |
+
"grad_norm": 4.504669189453125,
|
| 431 |
+
"learning_rate": 0.00025,
|
| 432 |
+
"loss": 0.7944,
|
| 433 |
+
"step": 16659
|
| 434 |
+
},
|
| 435 |
+
{
|
| 436 |
+
"epoch": 27.0,
|
| 437 |
+
"eval_loss": 0.717046856880188,
|
| 438 |
+
"eval_runtime": 31.6038,
|
| 439 |
+
"eval_samples_per_second": 8.48,
|
| 440 |
+
"eval_steps_per_second": 4.24,
|
| 441 |
+
"eval_wer": 0.3773767947225456,
|
| 442 |
+
"step": 16659
|
| 443 |
+
},
|
| 444 |
+
{
|
| 445 |
+
"epoch": 28.0,
|
| 446 |
+
"grad_norm": 0.9817417860031128,
|
| 447 |
+
"learning_rate": 0.00025,
|
| 448 |
+
"loss": 0.78,
|
| 449 |
+
"step": 17276
|
| 450 |
+
},
|
| 451 |
+
{
|
| 452 |
+
"epoch": 28.0,
|
| 453 |
+
"eval_loss": 0.7577293515205383,
|
| 454 |
+
"eval_runtime": 31.6954,
|
| 455 |
+
"eval_samples_per_second": 8.455,
|
| 456 |
+
"eval_steps_per_second": 4.228,
|
| 457 |
+
"eval_wer": 0.37297891605225714,
|
| 458 |
+
"step": 17276
|
| 459 |
+
},
|
| 460 |
+
{
|
| 461 |
+
"epoch": 29.0,
|
| 462 |
+
"grad_norm": 2.1830127239227295,
|
| 463 |
+
"learning_rate": 0.00025,
|
| 464 |
+
"loss": 0.7832,
|
| 465 |
+
"step": 17893
|
| 466 |
+
},
|
| 467 |
+
{
|
| 468 |
+
"epoch": 29.0,
|
| 469 |
+
"eval_loss": 0.6816357374191284,
|
| 470 |
+
"eval_runtime": 31.5492,
|
| 471 |
+
"eval_samples_per_second": 8.495,
|
| 472 |
+
"eval_steps_per_second": 4.247,
|
| 473 |
+
"eval_wer": 0.37343163885655156,
|
| 474 |
+
"step": 17893
|
| 475 |
+
},
|
| 476 |
+
{
|
| 477 |
+
"epoch": 30.0,
|
| 478 |
+
"grad_norm": 1.1032058000564575,
|
| 479 |
+
"learning_rate": 0.00025,
|
| 480 |
+
"loss": 0.7795,
|
| 481 |
+
"step": 18510
|
| 482 |
+
},
|
| 483 |
+
{
|
| 484 |
+
"epoch": 30.0,
|
| 485 |
+
"eval_loss": 0.718184769153595,
|
| 486 |
+
"eval_runtime": 31.5519,
|
| 487 |
+
"eval_samples_per_second": 8.494,
|
| 488 |
+
"eval_steps_per_second": 4.247,
|
| 489 |
+
"eval_wer": 0.36735221834174103,
|
| 490 |
+
"step": 18510
|
| 491 |
+
}
|
| 492 |
+
],
|
| 493 |
+
"logging_steps": 500,
|
| 494 |
+
"max_steps": 18510,
|
| 495 |
+
"num_input_tokens_seen": 0,
|
| 496 |
+
"num_train_epochs": 30,
|
| 497 |
+
"save_steps": 500,
|
| 498 |
+
"stateful_callbacks": {
|
| 499 |
+
"TrainerControl": {
|
| 500 |
+
"args": {
|
| 501 |
+
"should_epoch_stop": false,
|
| 502 |
+
"should_evaluate": false,
|
| 503 |
+
"should_log": false,
|
| 504 |
+
"should_save": true,
|
| 505 |
+
"should_training_stop": true
|
| 506 |
+
},
|
| 507 |
+
"attributes": {}
|
| 508 |
+
}
|
| 509 |
+
},
|
| 510 |
+
"total_flos": 9.881455601618431e+19,
|
| 511 |
+
"train_batch_size": 2,
|
| 512 |
+
"trial_name": null,
|
| 513 |
+
"trial_params": null
|
| 514 |
+
}
|
models-03-mms-1b-all-tuned-commonvoice-all-data/vocab.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"aln": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "'": 5, "(": 6, ")": 7, "-": 8, ".": 9, "/": 10, "=": 11, "A": 12, "B": 13, "C": 14, "D": 15, "E": 16, "F": 17, "G": 18, "H": 19, "I": 20, "J": 21, "K": 22, "L": 23, "M": 24, "N": 25, "O": 26, "P": 27, "Q": 28, "R": 29, "S": 30, "T": 31, "U": 32, "V": 33, "W": 34, "X": 35, "Y": 36, "Z": 37, "[": 38, "a": 39, "b": 40, "c": 41, "d": 42, "e": 43, "f": 44, "g": 45, "h": 46, "i": 47, "j": 48, "k": 49, "l": 50, "m": 51, "n": 52, "o": 53, "p": 54, "q": 55, "r": 56, "s": 57, "t": 58, "u": 59, "v": 60, "w": 61, "x": 62, "y": 63, "z": 64, "{": 65, "}": 66, "\u0395": 67, "\u03a4": 68, "\u03ac": 69, "\u03ad": 70, "\u03ae": 71, "\u03af": 72, "\u03b1": 73, "\u03b5": 74, "\u03b6": 75, "\u03b8": 76, "\u03ba": 77, "\u03bb": 78, "\u03bd": 79, "\u03bf": 80, "\u03c0": 81, "\u03c1": 82, "\u03c2": 83, "\u03c3": 84, "\u03c4": 85, "\u03c5": 86, "\u03c6": 87, "\u03c9": 88}, "bew": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "%": 5, "'": 6, "(": 7, ")": 8, "*": 9, "-": 10, ".": 11, "/": 12, "0": 13, "1": 14, "2": 15, "3": 16, "4": 17, "5": 18, "6": 19, "7": 20, "8": 21, "9": 22, "A": 23, "B": 24, "C": 25, "D": 26, "E": 27, "F": 28, "G": 29, "H": 30, "I": 31, "J": 32, "K": 33, "L": 34, "M": 35, "N": 36, "O": 37, "P": 38, "Q": 39, "R": 40, "S": 41, "T": 42, "U": 43, "V": 44, "W": 45, "Y": 46, "Z": 47, "a": 48, "b": 49, "c": 50, "d": 51, "e": 52, "f": 53, "g": 54, "h": 55, "i": 56, "j": 57, "k": 58, "l": 59, "m": 60, "n": 61, "o": 62, "p": 63, "q": 64, "r": 65, "s": 66, "t": 67, "u": 68, "v": 69, "w": 70, "x": 71, "y": 72, "z": 73, "\u00e8": 74, "\u00e9": 75, "\u00ea": 76}, "bxk": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "#": 5, "&": 6, "'": 7, "(": 8, ")": 9, "-": 10, "0": 11, "1": 12, "2": 13, "5": 14, "6": 15, "9": 16, "@": 17, "A": 18, "B": 19, "C": 20, "D": 21, "E": 22, "F": 23, "G": 24, "H": 25, "I": 26, "K": 27, "L": 28, "M": 29, "N": 30, "O": 31, "P": 32, "S": 33, "T": 34, "U": 35, "V": 36, "W": 37, "Y": 38, "a": 39, "b": 40, "c": 41, "d": 42, "e": 43, "f": 44, "g": 45, "h": 46, "i": 47, "j": 48, "k": 49, "l": 50, "m": 51, "n": 52, "o": 53, "p": 54, "q": 55, "r": 56, "s": 57, "t": 58, "u": 59, "v": 60, "w": 61, "x": 62, "y": 63, "z": 64, "~": 65}, "cgg": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "&": 5, "'": 6, "-": 7, ".": 8, "0": 9, "1": 10, "2": 11, "8": 12, "9": 13, "A": 14, "B": 15, "C": 16, "D": 17, "E": 18, "F": 19, "G": 20, "H": 21, "I": 22, "K": 23, "L": 24, "M": 25, "N": 26, "O": 27, "P": 28, "R": 29, "S": 30, "T": 31, "U": 32, "V": 33, "W": 34, "Y": 35, "Z": 36, "a": 37, "b": 38, "c": 39, "d": 40, "e": 41, "f": 42, "g": 43, "h": 44, "i": 45, "j": 46, "k": 47, "l": 48, "m": 49, "n": 50, "o": 51, "p": 52, "r": 53, "s": 54, "t": 55, "u": 56, "v": 57, "w": 58, "x": 59, "y": 60, "z": 61}, "el-CY": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "&": 5, "'": 6, "(": 7, ")": 8, "-": 9, ".": 10, "0": 11, "1": 12, "2": 13, "3": 14, "4": 15, "5": 16, "7": 17, "9": 18, "A": 19, "C": 20, "D": 21, "E": 22, "G": 23, "H": 24, "I": 25, "K": 26, "L": 27, "M": 28, "N": 29, "O": 30, "P": 31, "R": 32, "S": 33, "T": 34, "V": 35, "W": 36, "a": 37, "b": 38, "c": 39, "d": 40, "e": 41, "f": 42, "g": 43, "h": 44, "i": 45, "k": 46, "l": 47, "m": 48, "n": 49, "o": 50, "p": 51, "r": 52, "s": 53, "t": 54, "u": 55, "v": 56, "w": 57, "x": 58, "y": 59, "\u00ab": 60, "\u00bb": 61, "\u017e": 62, "\u0301": 63, "\u0306": 64, "\u030c": 65, "\u0340": 66, "\u0358": 67, "\u0384": 68, "\u0385": 69, "\u0386": 70, "\u0388": 71, "\u0389": 72, "\u038a": 73, "\u038c": 74, "\u038e": 75, "\u038f": 76, "\u0390": 77, "\u0391": 78, "\u0392": 79, "\u0393": 80, "\u0394": 81, "\u0395": 82, "\u0396": 83, "\u0397": 84, "\u0398": 85, "\u0399": 86, "\u039a": 87, "\u039b": 88, "\u039c": 89, "\u039d": 90, "\u039e": 91, "\u039f": 92, "\u03a0": 93, "\u03a1": 94, "\u03a3": 95, "\u03a4": 96, "\u03a5": 97, "\u03a6": 98, "\u03a7": 99, "\u03a9": 100, "\u03ac": 101, "\u03ad": 102, "\u03ae": 103, "\u03af": 104, "\u03b0": 105, "\u03b1": 106, "\u03b2": 107, "\u03b3": 108, "\u03b4": 109, "\u03b5": 110, "\u03b6": 111, "\u03b7": 112, "\u03b8": 113, "\u03b9": 114, "\u03ba": 115, "\u03bb": 116, "\u03bc": 117, "\u03bd": 118, "\u03be": 119, "\u03bf": 120, "\u03c0": 121, "\u03c1": 122, "\u03c2": 123, "\u03c3": 124, "\u03c4": 125, "\u03c5": 126, "\u03c6": 127, "\u03c7": 128, "\u03c8": 129, "\u03c9": 130, "\u03ca": 131, "\u03cc": 132, "\u03cd": 133, "\u03ce": 134, "\u1f10": 135, "\u1f30": 136, "\u1f38": 137, "\u1f44": 138, "\u1f60": 139, "\u2013": 140, "\u2014": 141, "\u2018": 142, "\u2019": 143, "\u2026": 144}, "hch": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "'": 5, "(": 6, ")": 7, "-": 8, ".": 9, "0": 10, "1": 11, "2": 12, "5": 13, "7": 14, "A": 15, "B": 16, "C": 17, "D": 18, "E": 19, "G": 20, "H": 21, "I": 22, "J": 23, "K": 24, "L": 25, "M": 26, "N": 27, "O": 28, "P": 29, "R": 30, "S": 31, "T": 32, "U": 33, "V": 34, "W": 35, "X": 36, "Y": 37, "Z": 38, "a": 39, "b": 40, "c": 41, "d": 42, "e": 43, "f": 44, "g": 45, "h": 46, "i": 47, "j": 48, "k": 49, "l": 50, "m": 51, "n": 52, "o": 53, "p": 54, "q": 55, "r": 56, "s": 57, "t": 58, "u": 59, "v": 60, "w": 61, "x": 62, "y": 63, "z": 64, "\u00b4": 65, "\u00e1": 66, "\u00e9": 67, "\u00ed": 68, "\u00f1": 69, "\u00f3": 70, "\u00fa": 71, "\u0197": 72, "\u0268": 73, "\u02bc": 74, "\u02c0": 75, "\u0301": 76, "\u2013": 77, "\u2018": 78, "\u2019": 79}, "kcn": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "%": 5, "'": 6, "(": 7, ")": 8, "-": 9, "0": 10, "1": 11, "A": 12, "B": 13, "C": 14, "D": 15, "E": 16, "F": 17, "G": 18, "H": 19, "I": 20, "J": 21, "K": 22, "L": 23, "M": 24, "N": 25, "O": 26, "P": 27, "Q": 28, "R": 29, "S": 30, "T": 31, "U": 32, "V": 33, "W": 34, "Y": 35, "Z": 36, "a": 37, "b": 38, "c": 39, "d": 40, "e": 41, "f": 42, "g": 43, "h": 44, "i": 45, "j": 46, "k": 47, "l": 48, "m": 49, "n": 50, "o": 51, "p": 52, "q": 53, "r": 54, "s": 55, "t": 56, "u": 57, "v": 58, "w": 59, "x": 60, "y": 61, "z": 62, "\u060c": 63}, "koo": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "'": 5, "-": 6, ".": 7, "1": 8, "A": 9, "B": 10, "C": 11, "E": 12, "G": 13, "H": 14, "I": 15, "K": 16, "L": 17, "M": 18, "N": 19, "O": 20, "P": 21, "R": 22, "S": 23, "T": 24, "U": 25, "V": 26, "W": 27, "Y": 28, "a": 29, "b": 30, "c": 31, "d": 32, "e": 33, "f": 34, "g": 35, "h": 36, "i": 37, "j": 38, "k": 39, "l": 40, "m": 41, "n": 42, "o": 43, "p": 44, "q": 45, "r": 46, "s": 47, "t": 48, "u": 49, "v": 50, "w": 51, "x": 52, "y": 53, "z": 54, "\u00e0": 55, "\u00ec": 56, "\u00ed": 57, "\u00f9": 58, "\u0137": 59}, "led": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "'": 5, "-": 6, ".": 7, "A": 8, "B": 9, "C": 10, "D": 11, "E": 12, "F": 13, "G": 14, "H": 15, "I": 16, "J": 17, "K": 18, "L": 19, "M": 20, "N": 21, "P": 22, "R": 23, "S": 24, "T": 25, "U": 26, "V": 27, "W": 28, "Y": 29, "Z": 30, "`": 31, "a": 32, "b": 33, "c": 34, "d": 35, "e": 36, "f": 37, "g": 38, "h": 39, "i": 40, "j": 41, "k": 42, "l": 43, "m": 44, "n": 45, "o": 46, "p": 47, "r": 48, "s": 49, "t": 50, "u": 51, "v": 52, "w": 53, "x": 54, "y": 55, "z": 56, "\u00c0": 57, "\u00cc": 58, "\u00cd": 59, "\u00e0": 60, "\u00e1": 61, "\u00e2": 62, "\u00e8": 63, "\u00e9": 64, "\u00ea": 65, "\u00ec": 66, "\u00ed": 67, "\u00ee": 68, "\u00f2": 69, "\u00f3": 70, "\u00f4": 71, "\u00f9": 72, "\u00fa": 73, "\u00fb": 74, "\u0111": 75, "\u011b": 76, "\u014a": 77, "\u014b": 78, "\u01ce": 79, "\u01d0": 80, "\u01d2": 81, "\u01d4": 82, "\u0266": 83, "\u0268": 84, "\u0289": 85, "\u0300": 86, "\u0301": 87, "\u0302": 88, "\u030c": 89}, "lke": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "'": 5, "(": 6, ")": 7, ".": 8, "1": 9, "A": 10, "B": 11, "C": 12, "E": 13, "G": 14, "H": 15, "I": 16, "J": 17, "K": 18, "L": 19, "M": 20, "N": 21, "O": 22, "P": 23, "S": 24, "T": 25, "U": 26, "V": 27, "W": 28, "Y": 29, "Z": 30, "a": 31, "b": 32, "c": 33, "d": 34, "e": 35, "f": 36, "g": 37, "h": 38, "i": 39, "j": 40, "k": 41, "l": 42, "m": 43, "n": 44, "o": 45, "p": 46, "q": 47, "r": 48, "s": 49, "t": 50, "u": 51, "v": 52, "w": 53, "x": 54, "y": 55, "z": 56, "\u00e0": 57, "\u00e9": 58, "\u0137": 59}, "lth": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "'": 5, "-": 6, "0": 7, "1": 8, "2": 9, "A": 10, "B": 11, "C": 12, "D": 13, "E": 14, "F": 15, "G": 16, "I": 17, "J": 18, "K": 19, "L": 20, "M": 21, "N": 22, "O": 23, "P": 24, "R": 25, "S": 26, "T": 27, "U": 28, "V": 29, "W": 30, "Y": 31, "a": 32, "b": 33, "c": 34, "d": 35, "e": 36, "f": 37, "g": 38, "h": 39, "i": 40, "j": 41, "k": 42, "l": 43, "m": 44, "n": 45, "o": 46, "p": 47, "r": 48, "s": 49, "t": 50, "u": 51, "v": 52, "w": 53, "x": 54, "y": 55, "z": 56, "\u00cb": 57, "\u00cf": 58, "\u00d6": 59, "\u00e4": 60, "\u00eb": 61, "\u00ef": 62, "\u00f6": 63, "\u00fc": 64, "\u0254": 65, "\u0268": 66, "\u02b7": 67, "\u0308": 68, "\u0327": 69}, "meh": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "'": 5, "-": 6, ".": 7, "A": 8, "D": 9, "E": 10, "F": 11, "H": 12, "I": 13, "J": 14, "K": 15, "L": 16, "M": 17, "N": 18, "O": 19, "P": 20, "R": 21, "S": 22, "T": 23, "U": 24, "V": 25, "W": 26, "X": 27, "Y": 28, "]": 29, "a": 30, "b": 31, "c": 32, "d": 33, "e": 34, "f": 35, "g": 36, "h": 37, "i": 38, "j": 39, "k": 40, "l": 41, "m": 42, "n": 43, "o": 44, "p": 45, "q": 46, "r": 47, "s": 48, "t": 49, "u": 50, "v": 51, "x": 52, "y": 53, "z": 54, "\u00d1": 55, "\u00e1": 56, "\u00e9": 57, "\u00ed": 58, "\u00f1": 59, "\u00fa": 60, "\u0197": 61, "\u0268": 62, "\u02c8": 63, "\u2019": 64, "\u2026": 65}, "mmc": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "'": 5, ".": 6, "A": 7, "B": 8, "C": 9, "D": 10, "E": 11, "G": 12, "H": 13, "I": 14, "J": 15, "K": 16, "L": 17, "M": 18, "N": 19, "O": 20, "P": 21, "Q": 22, "R": 23, "S": 24, "T": 25, "V": 26, "X": 27, "Y": 28, "Z": 29, "a": 30, "b": 31, "c": 32, "d": 33, "e": 34, "f": 35, "g": 36, "h": 37, "i": 38, "j": 39, "k": 40, "l": 41, "m": 42, "n": 43, "o": 44, "p": 45, "q": 46, "r": 47, "s": 48, "t": 49, "u": 50, "v": 51, "w": 52, "x": 53, "y": 54, "z": 55, "}": 56, "\u00b4": 57, "\u00c0": 58, "\u00cc": 59, "\u00cd": 60, "\u00d1": 61, "\u00d3": 62, "\u00e0": 63, "\u00e1": 64, "\u00e2": 65, "\u00e4": 66, "\u00e8": 67, "\u00e9": 68, "\u00ea": 69, "\u00eb": 70, "\u00ec": 71, "\u00ed": 72, "\u00ee": 73, "\u00ef": 74, "\u00f1": 75, "\u00f2": 76, "\u00f3": 77, "\u00f4": 78, "\u00f6": 79, "\u00f9": 80, "\u00fa": 81, "\u00fb": 82, "\u00fc": 83, "\u00fd": 84, "\u014d": 85, "\u0300": 86, "\u0301": 87, "\u0302": 88, "\u0303": 89, "\u0304": 90, "\u0308": 91, "\u030c": 92}, "pne": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "'": 5, "(": 6, ")": 7, "-": 8, ".": 9, "0": 10, "1": 11, "2": 12, "3": 13, "9": 14, "A": 15, "B": 16, "C": 17, "D": 18, "E": 19, "G": 20, "H": 21, "I": 22, "J": 23, "K": 24, "L": 25, "M": 26, "N": 27, "O": 28, "P": 29, "R": 30, "S": 31, "T": 32, "U": 33, "V": 34, "Y": 35, "a": 36, "b": 37, "c": 38, "d": 39, "e": 40, "f": 41, "g": 42, "h": 43, "i": 44, "j": 45, "k": 46, "l": 47, "m": 48, "n": 49, "o": 50, "p": 51, "q": 52, "r": 53, "s": 54, "t": 55, "u": 56, "v": 57, "w": 58, "x": 59, "y": 60, "z": 61, "~": 62}, "ruc": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "'": 5, "-": 6, ".": 7, "2": 8, "3": 9, "4": 10, "A": 11, "B": 12, "C": 13, "E": 14, "F": 15, "G": 16, "H": 17, "I": 18, "J": 19, "K": 20, "L": 21, "M": 22, "N": 23, "O": 24, "P": 25, "R": 26, "S": 27, "T": 28, "U": 29, "V": 30, "W": 31, "Y": 32, "Z": 33, "a": 34, "b": 35, "c": 36, "d": 37, "e": 38, "f": 39, "g": 40, "h": 41, "i": 42, "j": 43, "k": 44, "l": 45, "m": 46, "n": 47, "o": 48, "p": 49, "r": 50, "s": 51, "t": 52, "u": 53, "v": 54, "w": 55, "x": 56, "y": 57, "z": 58}, "rwm": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "-": 5, "A": 6, "B": 7, "C": 8, "D": 9, "E": 10, "F": 11, "G": 12, "H": 13, "I": 14, "J": 15, "K": 16, "L": 17, "M": 18, "N": 19, "O": 20, "P": 21, "S": 22, "T": 23, "U": 24, "V": 25, "W": 26, "Y": 27, "Z": 28, "a": 29, "b": 30, "c": 31, "d": 32, "e": 33, "f": 34, "g": 35, "h": 36, "i": 37, "j": 38, "k": 39, "l": 40, "m": 41, "n": 42, "o": 43, "p": 44, "q": 45, "r": 46, "s": 47, "t": 48, "u": 49, "v": 50, "w": 51, "x": 52, "y": 53, "z": 54, "\u00ed": 55, "\u00f1": 56, "\u0125": 57, "\u0137": 58}, "sco": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "'": 5, "(": 6, ")": 7, "-": 8, "/": 9, "2": 10, "5": 11, "7": 12, "9": 13, "A": 14, "B": 15, "C": 16, "D": 17, "E": 18, "F": 19, "G": 20, "H": 21, "I": 22, "J": 23, "K": 24, "L": 25, "M": 26, "N": 27, "O": 28, "P": 29, "Q": 30, "R": 31, "S": 32, "T": 33, "U": 34, "V": 35, "W": 36, "X": 37, "Y": 38, "Z": 39, "a": 40, "b": 41, "c": 42, "d": 43, "e": 44, "f": 45, "g": 46, "h": 47, "i": 48, "j": 49, "k": 50, "l": 51, "m": 52, "n": 53, "o": 54, "p": 55, "q": 56, "r": 57, "s": 58, "t": 59, "u": 60, "v": 61, "w": 62, "x": 63, "y": 64, "z": 65, "\u00df": 66, "\u00e9": 67, "\u00ed": 68, "\u2013": 69, "\u2018": 70, "\u2019": 71, "\u201c": 72, "\u201d": 73, "\u2026": 74}, "tob": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "'": 5, "-": 6, ".": 7, "/": 8, "1": 9, "2": 10, "5": 11, "7": 12, "9": 13, "A": 14, "B": 15, "C": 16, "D": 17, "E": 18, "F": 19, "G": 20, "H": 21, "I": 22, "J": 23, "K": 24, "L": 25, "M": 26, "N": 27, "O": 28, "P": 29, "Q": 30, "R": 31, "S": 32, "T": 33, "U": 34, "V": 35, "W": 36, "X": 37, "Y": 38, "a": 39, "b": 40, "c": 41, "d": 42, "e": 43, "f": 44, "g": 45, "h": 46, "i": 47, "j": 48, "k": 49, "l": 50, "m": 51, "n": 52, "o": 53, "p": 54, "q": 55, "r": 56, "s": 57, "t": 58, "u": 59, "v": 60, "w": 61, "x": 62, "y": 63, "z": 64, "\u00b4": 65, "\u00d1": 66, "\u00e1": 67, "\u00e8": 68, "\u00e9": 69, "\u00ed": 70, "\u00f1": 71, "\u00f3": 72, "\u00fa": 73, "\u00fd": 74, "\u00ff": 75, "\u0177": 76, "\u1ef9": 77, "\u2019": 78}, "top": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "'": 5, "(": 6, ")": 7, "+": 8, "-": 9, ".": 10, "0": 11, "1": 12, "2": 13, "5": 14, "6": 15, "7": 16, "9": 17, "A": 18, "B": 19, "C": 20, "D": 21, "E": 22, "F": 23, "G": 24, "H": 25, "I": 26, "J": 27, "K": 28, "L": 29, "M": 30, "N": 31, "O": 32, "P": 33, "R": 34, "S": 35, "T": 36, "U": 37, "V": 38, "W": 39, "X": 40, "Z": 41, "a": 42, "b": 43, "c": 44, "d": 45, "e": 46, "f": 47, "g": 48, "h": 49, "i": 50, "j": 51, "k": 52, "l": 53, "m": 54, "n": 55, "o": 56, "p": 57, "q": 58, "r": 59, "s": 60, "t": 61, "u": 62, "v": 63, "w": 64, "x": 65, "y": 66, "z": 67, "\u00b4": 68, "\u00e1": 69, "\u00e9": 70, "\u00ed": 71, "\u00f1": 72, "\u00f3": 73, "\u00fa": 74, "\u00fc": 75, "\u00fd": 76, "\u2019": 77}, "ttj": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "&": 5, "'": 6, "-": 7, "1": 8, "4": 9, "7": 10, "A": 11, "B": 12, "C": 13, "D": 14, "E": 15, "F": 16, "G": 17, "H": 18, "I": 19, "K": 20, "L": 21, "M": 22, "N": 23, "O": 24, "P": 25, "Q": 26, "R": 27, "S": 28, "T": 29, "U": 30, "W": 31, "Y": 32, "a": 33, "b": 34, "c": 35, "d": 36, "e": 37, "f": 38, "g": 39, "h": 40, "i": 41, "j": 42, "k": 43, "l": 44, "m": 45, "n": 46, "o": 47, "p": 48, "r": 49, "s": 50, "t": 51, "u": 52, "v": 53, "w": 54, "y": 55, "z": 56, "\u00f6": 57, "\u00fc": 58, "\u0119": 59}, "ukv": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "'": 5, "*": 6, "A": 7, "B": 8, "D": 9, "E": 10, "G": 11, "I": 12, "K": 13, "L": 14, "M": 15, "N": 16, "P": 17, "R": 18, "S": 19, "T": 20, "U": 21, "W": 22, "Y": 23, "a": 24, "b": 25, "c": 26, "d": 27, "e": 28, "f": 29, "g": 30, "h": 31, "i": 32, "j": 33, "k": 34, "l": 35, "m": 36, "n": 37, "o": 38, "p": 39, "r": 40, "s": 41, "t": 42, "u": 43, "v": 44, "w": 45, "y": 46, "z": 47, "\u00e4": 48, "\u00f3": 49, "\u00f5": 50, "\u00f6": 51, "\u014b": 52, "\u0169": 53, "\u0199": 54, "\u0257": 55, "\u0272": 56, "\u0301": 57, "\u0304": 58, "\u0307": 59, "\u0308": 60, "\u0327": 61, "\u0335": 62}, "ady": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "'": 5, "-": 6, "A": 7, "B": 8, "C": 9, "D": 10, "E": 11, "F": 12, "G": 13, "H": 14, "I": 15, "J": 16, "K": 17, "L": 18, "M": 19, "N": 20, "P": 21, "R": 22, "S": 23, "T": 24, "U": 25, "V": 26, "X": 27, "Y": 28, "Z": 29, "a": 30, "b": 31, "c": 32, "d": 33, "e": 34, "f": 35, "g": 36, "h": 37, "i": 38, "j": 39, "k": 40, "l": 41, "m": 42, "n": 43, "o": 44, "p": 45, "r": 46, "s": 47, "t": 48, "u": 49, "v": 50, "x": 51, "y": 52, "z": 53, "\u00ab": 54, "\u00bb": 55, "\u00c7": 56, "\u00e7": 57, "\u00ea": 58, "\u00f6": 59, "\u00fc": 60, "\u011e": 61, "\u011f": 62, "\u0131": 63, "\u015e": 64, "\u015f": 65, "\u0410": 66, "\u0411": 67, "\u0412": 68, "\u0413": 69, "\u0414": 70, "\u0415": 71, "\u0416": 72, "\u0417": 73, "\u0418": 74, "\u041a": 75, "\u041b": 76, "\u041c": 77, "\u041d": 78, "\u041e": 79, "\u041f": 80, "\u0420": 81, "\u0421": 82, "\u0422": 83, "\u0423": 84, "\u0424": 85, "\u0425": 86, "\u0426": 87, "\u0427": 88, "\u0428": 89, "\u0429": 90, "\u042b": 91, "\u042d": 92, "\u042e": 93, "\u042f": 94, "\u0430": 95, "\u0431": 96, "\u0432": 97, "\u0433": 98, "\u0434": 99, "\u0435": 100, "\u0436": 101, "\u0437": 102, "\u0438": 103, "\u0439": 104, "\u043a": 105, "\u043b": 106, "\u043c": 107, "\u043d": 108, "\u043e": 109, "\u043f": 110, "\u0440": 111, "\u0441": 112, "\u0442": 113, "\u0443": 114, "\u0444": 115, "\u0445": 116, "\u0446": 117, "\u0447": 118, "\u0448": 119, "\u0449": 120, "\u044a": 121, "\u044b": 122, "\u044c": 123, "\u044d": 124, "\u044e": 125, "\u044f": 126, "\u0451": 127, "\u04c0": 128, "\u04cf": 129, "\u2013": 130, "\u2014": 131, "\u2026": 132}, "bas": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "-": 5, ".": 6, "A": 7, "B": 8, "D": 9, "E": 10, "F": 11, "G": 12, "H": 13, "I": 14, "J": 15, "K": 16, "L": 17, "M": 18, "N": 19, "O": 20, "P": 21, "S": 22, "T": 23, "U": 24, "W": 25, "Y": 26, "a": 27, "b": 28, "d": 29, "e": 30, "f": 31, "g": 32, "h": 33, "i": 34, "j": 35, "k": 36, "l": 37, "m": 38, "n": 39, "o": 40, "p": 41, "r": 42, "s": 43, "t": 44, "u": 45, "v": 46, "w": 47, "y": 48, "z": 49, "\u00c9": 50, "\u00d1": 51, "\u00d4": 52, "\u00e9": 53, "\u00f1": 54, "\u00f4": 55, "\u0301": 56, "\u0302": 57, "\u0303": 58, "\u0308": 59}, "kbd": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "'": 5, "-": 6, ".": 7, "A": 8, "B": 9, "C": 10, "D": 11, "E": 12, "F": 13, "G": 14, "H": 15, "I": 16, "J": 17, "K": 18, "L": 19, "M": 20, "N": 21, "P": 22, "R": 23, "S": 24, "T": 25, "U": 26, "V": 27, "X": 28, "Y": 29, "Z": 30, "a": 31, "b": 32, "c": 33, "d": 34, "e": 35, "f": 36, "g": 37, "h": 38, "i": 39, "j": 40, "k": 41, "l": 42, "m": 43, "n": 44, "o": 45, "p": 46, "r": 47, "s": 48, "t": 49, "u": 50, "v": 51, "x": 52, "y": 53, "z": 54, "\u00ab": 55, "\u00bb": 56, "\u00c7": 57, "\u00e7": 58, "\u00ea": 59, "\u00fc": 60, "\u011e": 61, "\u011f": 62, "\u0131": 63, "\u015e": 64, "\u015f": 65, "\u0406": 66, "\u0410": 67, "\u0411": 68, "\u0412": 69, "\u0413": 70, "\u0414": 71, "\u0415": 72, "\u0416": 73, "\u0417": 74, "\u0418": 75, "\u0419": 76, "\u041a": 77, "\u041b": 78, "\u041c": 79, "\u041d": 80, "\u041e": 81, "\u041f": 82, "\u0420": 83, "\u0421": 84, "\u0422": 85, "\u0423": 86, "\u0424": 87, "\u0425": 88, "\u0426": 89, "\u0427": 90, "\u0428": 91, "\u0429": 92, "\u042b": 93, "\u042d": 94, "\u042e": 95, "\u042f": 96, "\u0430": 97, "\u0431": 98, "\u0432": 99, "\u0433": 100, "\u0434": 101, "\u0435": 102, "\u0436": 103, "\u0437": 104, "\u0438": 105, "\u0439": 106, "\u043a": 107, "\u043b": 108, "\u043c": 109, "\u043d": 110, "\u043e": 111, "\u043f": 112, "\u0440": 113, "\u0441": 114, "\u0442": 115, "\u0443": 116, "\u0444": 117, "\u0445": 118, "\u0446": 119, "\u0447": 120, "\u0448": 121, "\u0449": 122, "\u044a": 123, "\u044b": 124, "\u044c": 125, "\u044d": 126, "\u044e": 127, "\u044f": 128, "\u0451": 129, "\u04c0": 130, "\u04cf": 131, "\u2013": 132, "\u2014": 133, "\u2026": 134}, "qxp": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "'": 5, "-": 6, "A": 7, "B": 8, "C": 9, "D": 10, "E": 11, "G": 12, "H": 13, "I": 14, "J": 15, "K": 16, "L": 17, "M": 18, "N": 19, "P": 20, "Q": 21, "R": 22, "S": 23, "T": 24, "U": 25, "V": 26, "W": 27, "Y": 28, "a": 29, "b": 30, "c": 31, "d": 32, "e": 33, "f": 34, "g": 35, "h": 36, "i": 37, "j": 38, "k": 39, "l": 40, "m": 41, "n": 42, "o": 43, "p": 44, "q": 45, "r": 46, "s": 47, "t": 48, "u": 49, "v": 50, "w": 51, "y": 52, "z": 53, "\u00d1": 54, "\u00e1": 55, "\u00ed": 56, "\u00f1": 57, "\u00fa": 58, "\u2019": 59}, "ush": {"<pad>": 0, "<s>": 1, "</s>": 2, "<unk>": 3, "|": 4, "#": 5, "(": 6, ")": 7, "-": 8, "/": 9, "=": 10, "@": 11, "D": 12, "E": 13, "T": 14, "[": 15, "]": 16, "a": 17, "d": 18, "e": 19, "h": 20, "n": 21, "o": 22, "p": 23, "r": 24, "s": 25, "t": 26, "w": 27, "}": 28, "\u0436": 29, "\u060c": 30, "\u061b": 31, "\u061f": 32, "\u0622": 33, "\u0623": 34, "\u0624": 35, "\u0626": 36, "\u0627": 37, "\u0628": 38, "\u062a": 39, "\u062b": 40, "\u062c": 41, "\u062d": 42, "\u062e": 43, "\u062f": 44, "\u0630": 45, "\u0631": 46, "\u0632": 47, "\u0633": 48, "\u0634": 49, "\u0635": 50, "\u0636": 51, "\u0637": 52, "\u0638": 53, "\u0639": 54, "\u063a": 55, "\u0641": 56, "\u0642": 57, "\u0644": 58, "\u0645": 59, "\u0646": 60, "\u0647": 61, "\u0648": 62, "\u064b": 63, "\u064f": 64, "\u0650": 65, "\u0679": 66, "\u067e": 67, "\u0685": 68, "\u0686": 69, "\u0687": 70, "\u0688": 71, "\u0691": 72, "\u0698": 73, "\u0699": 74, "\u06a9": 75, "\u06af": 76, "\u06ba": 77, "\u06be": 78, "\u06c1": 79, "\u06cc": 80, "\u06d2": 81, "\u06d4": 82, "\u075c": 83, "\u2014": 84, "\u2018": 85, "\u2019": 86, "\u201c": 87, "\u201d": 88}}
|
requirements.txt
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
--extra-index-url https://download.pytorch.org/whl/cu128
|
| 2 |
+
|
| 3 |
+
numpy==1.26.4
|
| 4 |
+
scipy==1.16.3
|
| 5 |
+
pandas==2.3.3
|
| 6 |
+
pyarrow==22.0.0
|
| 7 |
+
torch==2.9.0
|
| 8 |
+
torchaudio==2.9.0
|
| 9 |
+
torchcodec==0.8.1
|
| 10 |
+
torchao==0.14.1
|
| 11 |
+
transformers==4.57.1
|
| 12 |
+
tokenizers==0.22.1
|
| 13 |
+
datasets[audio]==4.3.0
|
| 14 |
+
evaluate==0.4.6
|
| 15 |
+
bitsandbytes==0.48.2
|
| 16 |
+
trl==0.23.0
|
| 17 |
+
sentencepiece==0.2.1
|
| 18 |
+
jiwer==4.0.0
|
| 19 |
+
protobuf==6.33.1
|
| 20 |
+
pyctcdecode==0.5.0
|
| 21 |
+
kenlm==0.3.0
|
solution.ipynb
ADDED
|
@@ -0,0 +1,297 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"cells": [
|
| 3 |
+
{
|
| 4 |
+
"cell_type": "markdown",
|
| 5 |
+
"id": "7fa2feb8",
|
| 6 |
+
"metadata": {},
|
| 7 |
+
"source": [
|
| 8 |
+
"# Shared Task: Mozilla Common Voice Spontaneous Speech ASR\n",
|
| 9 |
+
"*https://www.codabench.org/competitions/10820/* \n",
|
| 10 |
+
"*1st place solution* \n",
|
| 11 |
+
"*Copyright (c) 2025 Igor Ivanov* \n",
|
| 12 |
+
"*Email: vecxoz@gmail.com* \n",
|
| 13 |
+
"*License: MIT* \n",
|
| 14 |
+
"*I will be happy to answer any questions.*"
|
| 15 |
+
]
|
| 16 |
+
},
|
| 17 |
+
{
|
| 18 |
+
"cell_type": "markdown",
|
| 19 |
+
"id": "6dfa145d",
|
| 20 |
+
"metadata": {},
|
| 21 |
+
"source": [
|
| 22 |
+
"# Contents\n",
|
| 23 |
+
"\n",
|
| 24 |
+
"1. Solution summary \n",
|
| 25 |
+
"2. Installation \n",
|
| 26 |
+
"3. Inference"
|
| 27 |
+
]
|
| 28 |
+
},
|
| 29 |
+
{
|
| 30 |
+
"cell_type": "markdown",
|
| 31 |
+
"id": "43ff13da-4175-4345-a880-d59e26bbb8d7",
|
| 32 |
+
"metadata": {},
|
| 33 |
+
"source": [
|
| 34 |
+
"# 1. Summary\n",
|
| 35 |
+
"\n",
|
| 36 |
+
"In this notebook we present an inference code and models for all 4 tasks of the Shared Task: Mozilla Common Voice Spontaneous Speech ASR. We did not use external data. Only Common Voice datasets were used: spontaneous speech for 21 languages, and scripted speech for 5 unseen languages. We fine-tuned the MMS model with adapter layers per language. \n",
|
| 37 |
+
"\n",
|
| 38 |
+
"Our best single model features the following improvements over the baseline. (1) More data. We used both training and validation subsets for fine-tuning. (2) Different pretrained checkpoint `facebook/mms-1b-l1107`. (3) Longer training for 30 epochs. (4) Learning rate schedules tailored for each language. (5) Beam search decoding with KenLM language model. For the small model subtask we used the same MMS models with pruning and 4-bit quantization. \n",
|
| 39 |
+
"\n",
|
| 40 |
+
"Our overall best submission is an ensemble of 4 models. (1) `facebook/mms-1b-l1107` fine-tuned using training data only. (2) `facebook/mms-1b-l1107` fine-tuned using all data (training and validation subsets). (3) `facebook/mms-1b-all` fine-tuned using all data. (4) `facebook/mms-1b-fl102` fine-tuned using all data. We applied the [ROVER](https://github.com/usnistgov/SCTK) ensembling method, which outperformed each single model. \n",
|
| 41 |
+
"\n",
|
| 42 |
+
"Please find all details in the paper."
|
| 43 |
+
]
|
| 44 |
+
},
|
| 45 |
+
{
|
| 46 |
+
"cell_type": "markdown",
|
| 47 |
+
"id": "0ddd35e1-bbd4-4f56-a143-e8430cd7238c",
|
| 48 |
+
"metadata": {},
|
| 49 |
+
"source": [
|
| 50 |
+
"# 2. Installation\n",
|
| 51 |
+
"\n",
|
| 52 |
+
"## Directory structure\n",
|
| 53 |
+
"```\n",
|
| 54 |
+
"solution\n",
|
| 55 |
+
"|-- kenlm_models_order_3 # KenLM models per language\n",
|
| 56 |
+
"|-- mdc_asr_shared_task_test_data # Official test dataset\n",
|
| 57 |
+
"|-- models-01-mms-1b-l1107-tuned-commonvoice-train-data # `mms-1b-l1107` fine-tuned using training subsets only\n",
|
| 58 |
+
"|-- models-02-mms-1b-l1107-tuned-commonvoice-all-data # `mms-1b-l1107` fine-tuned using all data (best single model)\n",
|
| 59 |
+
"|-- models-03-mms-1b-all-tuned-commonvoice-all-data # `mms-1b-all` fine-tuned using all data\n",
|
| 60 |
+
"|-- models-04-mms-1b-fl102-tuned-commonvoice-all-data # `mms-1b-fl102` fine-tuned using all data\n",
|
| 61 |
+
"|-- models-05-mms-1b-l1107-tuned-commonvoice-all-data-pruned-quant # Pruned and quantized version of `models-02`\n",
|
| 62 |
+
"|-- SCTK # ROVER ensemble (source and binaries)\n",
|
| 63 |
+
"|-- ensemble.py\n",
|
| 64 |
+
"|-- infer.py\n",
|
| 65 |
+
"|-- LICENSE.txt\n",
|
| 66 |
+
"|-- README.md\n",
|
| 67 |
+
"|-- requirements.txt\n",
|
| 68 |
+
"|-- solution.ipynb\n",
|
| 69 |
+
"```"
|
| 70 |
+
]
|
| 71 |
+
},
|
| 72 |
+
{
|
| 73 |
+
"cell_type": "markdown",
|
| 74 |
+
"id": "f734ecae-d352-439a-aa18-96fd2546702e",
|
| 75 |
+
"metadata": {},
|
| 76 |
+
"source": [
|
| 77 |
+
"## ROVER check\n",
|
| 78 |
+
"\n",
|
| 79 |
+
"We built a binary from source on Ubuntu 22.04. If you are using a similar system it should work out of the box. \n",
|
| 80 |
+
"Please run the command below. If a help message is displayed, then everything works. \n",
|
| 81 |
+
"If not, you have to build it from source, as shown below or in official documentation: https://github.com/usnistgov/SCTK"
|
| 82 |
+
]
|
| 83 |
+
},
|
| 84 |
+
{
|
| 85 |
+
"cell_type": "code",
|
| 86 |
+
"execution_count": 13,
|
| 87 |
+
"id": "b3cf2628-be6c-48cb-9ebf-7d2955be1e5c",
|
| 88 |
+
"metadata": {},
|
| 89 |
+
"outputs": [
|
| 90 |
+
{
|
| 91 |
+
"name": "stdout",
|
| 92 |
+
"output_type": "stream",
|
| 93 |
+
"text": [
|
| 94 |
+
"rover: <OPTIONS>\n",
|
| 95 |
+
"rover Version: 0.1, SCTK Version: 1.3\n",
|
| 96 |
+
"Description: rover takes N input files and does an N-way DP alignment\n",
|
| 97 |
+
" on those files. The output is either a set of minimal cost\n",
|
| 98 |
+
" alignments, or a Voted output depending the -m option.\n",
|
| 99 |
+
"Input Options:\n",
|
| 100 |
+
" -h hypfile ctm\n",
|
| 101 |
+
" Define the hypothesis file and it's format. This option\n",
|
| 102 |
+
" must be used more than once.\n",
|
| 103 |
+
"Output Options:\n",
|
| 104 |
+
" -o outfile Define the output file. (Will be same format as hyps)\n",
|
| 105 |
+
" -f level Defines feedback mode, default is 1\n",
|
| 106 |
+
" -l width Defines the line width.\n",
|
| 107 |
+
"Alignment Options:\n",
|
| 108 |
+
" -m meth Execute method:\n",
|
| 109 |
+
" oracle -> output the fully alternated transcript\n",
|
| 110 |
+
" meth1 -> alpha = -a , conf = -c, choose highest avg\n",
|
| 111 |
+
" maxconf -> Same as meth1, but use the maximum conf\n",
|
| 112 |
+
" score for a CS set as the metric\n",
|
| 113 |
+
" avgconf -> alpha*Sum(WO) + (1-alpha)Sum(Conf(W))\n",
|
| 114 |
+
" maxconfa -> Same as maxconf, but conf=N(@)/S\n",
|
| 115 |
+
" putat -> Output the putative hit format\n",
|
| 116 |
+
" -s Do Case-sensitive alignments.\n",
|
| 117 |
+
" -T Use time information, (if available), to calculated word-to-\n",
|
| 118 |
+
" word distances based on times.\n",
|
| 119 |
+
"Processing Options:\n",
|
| 120 |
+
" -a alpha Default: 1.0\n",
|
| 121 |
+
" -c Null_conf\n",
|
| 122 |
+
" Default: 0.0\n",
|
| 123 |
+
"rover: Req'd Hyp File names, 2 or more\n",
|
| 124 |
+
"\n"
|
| 125 |
+
]
|
| 126 |
+
}
|
| 127 |
+
],
|
| 128 |
+
"source": [
|
| 129 |
+
"!./SCTK/bin/rover"
|
| 130 |
+
]
|
| 131 |
+
},
|
| 132 |
+
{
|
| 133 |
+
"cell_type": "markdown",
|
| 134 |
+
"id": "35b537f7-36a3-40cd-9d79-892b150cd925",
|
| 135 |
+
"metadata": {},
|
| 136 |
+
"source": [
|
| 137 |
+
"## ROVER installation (if needed)\n",
|
| 138 |
+
"\n",
|
| 139 |
+
"Compilation takes about 2 minutes."
|
| 140 |
+
]
|
| 141 |
+
},
|
| 142 |
+
{
|
| 143 |
+
"cell_type": "markdown",
|
| 144 |
+
"id": "cdaba278-3472-4289-8dfb-b1017310064e",
|
| 145 |
+
"metadata": {},
|
| 146 |
+
"source": [
|
| 147 |
+
"```\n",
|
| 148 |
+
"!mv SCTK SCTK_prebuilt\n",
|
| 149 |
+
"!git clone https://github.com/usnistgov/SCTK\n",
|
| 150 |
+
"%cd SCTK\n",
|
| 151 |
+
"\n",
|
| 152 |
+
"!make config\n",
|
| 153 |
+
"!make all\n",
|
| 154 |
+
"!make check\n",
|
| 155 |
+
"!make install\n",
|
| 156 |
+
"!make doc\n",
|
| 157 |
+
" \n",
|
| 158 |
+
"%cd ..\n",
|
| 159 |
+
"```"
|
| 160 |
+
]
|
| 161 |
+
},
|
| 162 |
+
{
|
| 163 |
+
"cell_type": "markdown",
|
| 164 |
+
"id": "8108da48-12aa-4663-9c20-3028b9b8117e",
|
| 165 |
+
"metadata": {},
|
| 166 |
+
"source": [
|
| 167 |
+
"## Package installation\n",
|
| 168 |
+
"\n",
|
| 169 |
+
"**Hardware:**\n",
|
| 170 |
+
"* Core-i5 CPU\n",
|
| 171 |
+
"* 32 GB RAM\n",
|
| 172 |
+
"* 500 GB SSD\n",
|
| 173 |
+
"* RTX-3090-24GB GPU\n",
|
| 174 |
+
"\n",
|
| 175 |
+
"**System:**\n",
|
| 176 |
+
"* Ubuntu 22.04\n",
|
| 177 |
+
"* Python 3.12\n",
|
| 178 |
+
"* CUDA 12.8\n",
|
| 179 |
+
"* PyTorch 2.9.0\n",
|
| 180 |
+
"\n",
|
| 181 |
+
"**Note.** During the training phase we used Flash Attention 2 (`flash_attn==2.7.4.post1`), but for inference we did not use it. So we did not include it in the `requirements.txt`, given that the installation (compilation) of this version takes about 2 hours on Core-i5, 12th Gen."
|
| 182 |
+
]
|
| 183 |
+
},
|
| 184 |
+
{
|
| 185 |
+
"cell_type": "code",
|
| 186 |
+
"execution_count": null,
|
| 187 |
+
"id": "b5444ca5-e719-4e40-a851-1a2fc4900542",
|
| 188 |
+
"metadata": {},
|
| 189 |
+
"outputs": [],
|
| 190 |
+
"source": [
|
| 191 |
+
"!pip install -r requirements.txt"
|
| 192 |
+
]
|
| 193 |
+
},
|
| 194 |
+
{
|
| 195 |
+
"cell_type": "markdown",
|
| 196 |
+
"id": "eda488d4-8e09-4c22-9ff4-3675ed3bc9dc",
|
| 197 |
+
"metadata": {},
|
| 198 |
+
"source": [
|
| 199 |
+
"# 3. Inference\n",
|
| 200 |
+
"\n",
|
| 201 |
+
"The distribution archive already has an official test dataset `mdc_asr_shared_task_test_data`, so inference should run out of the box. \n",
|
| 202 |
+
"If you want to infer a different dataset, just set the `input_dir` argument of both scripts `infer.py` and `ensemble.py`. \n",
|
| 203 |
+
"\n",
|
| 204 |
+
"Total inference time is about 3 hours on `RTX-3090-24GB` GPU.\n",
|
| 205 |
+
"\n",
|
| 206 |
+
"Script `infer.py` will create the following directories. \n",
|
| 207 |
+
"Directories with `_ctm` suffix contain intermediate `.ctm` files which will be used for the ensemble. \n",
|
| 208 |
+
"Directories with `_submission` suffix contain `.tsv` files ready for scoring. Specifically, `output_2_submission` is the results from the best single model, and `output_5_submission` is the results from the small model. \n",
|
| 209 |
+
"Please note, that all directories with `_submission` suffix contain standard subdirectories `multilingual-general` and `unseen-langs`. \n",
|
| 210 |
+
"```\n",
|
| 211 |
+
"|-- output_1_ctm\n",
|
| 212 |
+
"|-- output_1_submission\n",
|
| 213 |
+
"|-- output_2_ctm\n",
|
| 214 |
+
"|-- output_2_submission\n",
|
| 215 |
+
"|-- output_3_ctm\n",
|
| 216 |
+
"|-- output_3_submission\n",
|
| 217 |
+
"|-- output_4_ctm\n",
|
| 218 |
+
"|-- output_4_submission\n",
|
| 219 |
+
"|-- output_5_ctm\n",
|
| 220 |
+
"|-- output_5_submission\n",
|
| 221 |
+
"```\n",
|
| 222 |
+
"\n",
|
| 223 |
+
"Script `ensemble.py` will create the following. \n",
|
| 224 |
+
"`submission_single_model` is the final submission from the best single model corresponding to Codabench submission `ID 452610`. \n",
|
| 225 |
+
"`submission_ensemble` is final submission from the ensemble corresponding to Codabench submission `ID 456691`. \n",
|
| 226 |
+
"\n",
|
| 227 |
+
"```\n",
|
| 228 |
+
"|-- submission_ensemble\n",
|
| 229 |
+
"|-- submission_single_model\n",
|
| 230 |
+
"|-- submission_ensemble.zip\n",
|
| 231 |
+
"|-- submission_single_model.zip\n",
|
| 232 |
+
"```"
|
| 233 |
+
]
|
| 234 |
+
},
|
| 235 |
+
{
|
| 236 |
+
"cell_type": "code",
|
| 237 |
+
"execution_count": null,
|
| 238 |
+
"id": "79e8f7bc-d529-411f-a09f-08e8ca210a0f",
|
| 239 |
+
"metadata": {},
|
| 240 |
+
"outputs": [],
|
| 241 |
+
"source": [
|
| 242 |
+
"!python infer.py \\\n",
|
| 243 |
+
"--input_dir=mdc_asr_shared_task_test_data \\\n",
|
| 244 |
+
"--kenlm_model=kenlm_models_order_3 \\\n",
|
| 245 |
+
"--beam_width=100 \\\n",
|
| 246 |
+
"--attn_implementation=sdpa \\\n",
|
| 247 |
+
"--use_amp=0 \\\n",
|
| 248 |
+
"--device=cuda"
|
| 249 |
+
]
|
| 250 |
+
},
|
| 251 |
+
{
|
| 252 |
+
"cell_type": "code",
|
| 253 |
+
"execution_count": null,
|
| 254 |
+
"id": "65044956-7435-4bbf-b419-7ac437de9e00",
|
| 255 |
+
"metadata": {},
|
| 256 |
+
"outputs": [],
|
| 257 |
+
"source": [
|
| 258 |
+
"!python ensemble.py \\\n",
|
| 259 |
+
"--input_dir=mdc_asr_shared_task_test_data \\\n",
|
| 260 |
+
"--output_dir_single=submission_single_model \\\n",
|
| 261 |
+
"--output_dir_ensemble=submission_ensemble \\\n",
|
| 262 |
+
"--rover_path=./SCTK/bin/rover"
|
| 263 |
+
]
|
| 264 |
+
},
|
| 265 |
+
{
|
| 266 |
+
"cell_type": "code",
|
| 267 |
+
"execution_count": 5,
|
| 268 |
+
"id": "f3efa9c1",
|
| 269 |
+
"metadata": {},
|
| 270 |
+
"outputs": [],
|
| 271 |
+
"source": [
|
| 272 |
+
"# END"
|
| 273 |
+
]
|
| 274 |
+
}
|
| 275 |
+
],
|
| 276 |
+
"metadata": {
|
| 277 |
+
"kernelspec": {
|
| 278 |
+
"display_name": "Python 3 (ipykernel)",
|
| 279 |
+
"language": "python",
|
| 280 |
+
"name": "python3"
|
| 281 |
+
},
|
| 282 |
+
"language_info": {
|
| 283 |
+
"codemirror_mode": {
|
| 284 |
+
"name": "ipython",
|
| 285 |
+
"version": 3
|
| 286 |
+
},
|
| 287 |
+
"file_extension": ".py",
|
| 288 |
+
"mimetype": "text/x-python",
|
| 289 |
+
"name": "python",
|
| 290 |
+
"nbconvert_exporter": "python",
|
| 291 |
+
"pygments_lexer": "ipython3",
|
| 292 |
+
"version": "3.12.11"
|
| 293 |
+
}
|
| 294 |
+
},
|
| 295 |
+
"nbformat": 4,
|
| 296 |
+
"nbformat_minor": 5
|
| 297 |
+
}
|