Commit
·
8c27967
1
Parent(s):
b1d5bcd
Add omnilingual ASR
Browse files- model.py +41 -0
- requirements.txt +1 -1
model.py
CHANGED
|
@@ -174,6 +174,10 @@ def get_pretrained_model(
|
|
| 174 |
return multi_lingual_models[repo_id](
|
| 175 |
repo_id, decoding_method=decoding_method, num_active_paths=num_active_paths
|
| 176 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
| 177 |
elif repo_id in twenty_five_languages_models:
|
| 178 |
return twenty_five_languages_models[repo_id](
|
| 179 |
repo_id, decoding_method=decoding_method, num_active_paths=num_active_paths
|
|
@@ -1364,6 +1368,36 @@ def _get_streaming_vosk_pre_trained_model(
|
|
| 1364 |
return recognizer
|
| 1365 |
|
| 1366 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1367 |
@lru_cache(maxsize=10)
|
| 1368 |
def _get_sherpa_onnx_nemo_transducer_models_int8(
|
| 1369 |
repo_id: str,
|
|
@@ -2218,6 +2252,11 @@ english_models = {
|
|
| 2218 |
"csukuangfj/wenet-english-model": _get_wenet_model,
|
| 2219 |
}
|
| 2220 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2221 |
twenty_five_languages_models = {
|
| 2222 |
"csukuangfj/sherpa-onnx-nemo-parakeet-tdt-0.6b-v3-int8": _get_sherpa_onnx_nemo_transducer_models_int8,
|
| 2223 |
}
|
|
@@ -2326,6 +2365,7 @@ portuguese_brazlian_models = {
|
|
| 2326 |
|
| 2327 |
|
| 2328 |
all_models = {
|
|
|
|
| 2329 |
**twenty_five_languages_models,
|
| 2330 |
**multi_lingual_models,
|
| 2331 |
**sichuan_models,
|
|
@@ -2349,6 +2389,7 @@ all_models = {
|
|
| 2349 |
}
|
| 2350 |
|
| 2351 |
language_to_models = {
|
|
|
|
| 2352 |
"25 European languages": list(twenty_five_languages_models.keys()),
|
| 2353 |
"Multi-lingual (east aisa)": list(multi_lingual_models.keys()),
|
| 2354 |
"超多种中文方言": list(chinese_dialect_models.keys()),
|
|
|
|
| 174 |
return multi_lingual_models[repo_id](
|
| 175 |
repo_id, decoding_method=decoding_method, num_active_paths=num_active_paths
|
| 176 |
)
|
| 177 |
+
elif repo_id in more_than_1600_languages_models:
|
| 178 |
+
return more_than_1600_languages_models[repo_id](
|
| 179 |
+
repo_id, decoding_method=decoding_method, num_active_paths=num_active_paths
|
| 180 |
+
)
|
| 181 |
elif repo_id in twenty_five_languages_models:
|
| 182 |
return twenty_five_languages_models[repo_id](
|
| 183 |
repo_id, decoding_method=decoding_method, num_active_paths=num_active_paths
|
|
|
|
| 1368 |
return recognizer
|
| 1369 |
|
| 1370 |
|
| 1371 |
+
@lru_cache(maxsize=10)
|
| 1372 |
+
def _get_sherpa_onnx_omnilingual_asr_models(
|
| 1373 |
+
repo_id: str,
|
| 1374 |
+
decoding_method: str,
|
| 1375 |
+
num_active_paths: int,
|
| 1376 |
+
) -> sherpa_onnx.OfflineRecognizer:
|
| 1377 |
+
assert repo_id in [
|
| 1378 |
+
"csukuangfj/sherpa-onnx-omnilingual-asr-1600-languages-300M-ctc-2025-11-12",
|
| 1379 |
+
"csukuangfj/sherpa-onnx-omnilingual-asr-1600-languages-300M-ctc-int8-2025-11-12",
|
| 1380 |
+
], repo_id
|
| 1381 |
+
|
| 1382 |
+
is_int8 = "int8" in repo_id
|
| 1383 |
+
|
| 1384 |
+
model = _get_nn_model_filename(
|
| 1385 |
+
repo_id=repo_id,
|
| 1386 |
+
filename="model.int8.onnx" if is_int8 else "model.onnx",
|
| 1387 |
+
subfolder=".",
|
| 1388 |
+
)
|
| 1389 |
+
|
| 1390 |
+
tokens = _get_token_filename(repo_id=repo_id, subfolder=".")
|
| 1391 |
+
|
| 1392 |
+
recognizer = sherpa_onnx.OfflineRecognizer.from_omnilingual_asr_ctc(
|
| 1393 |
+
tokens=tokens,
|
| 1394 |
+
model=model,
|
| 1395 |
+
num_threads=2,
|
| 1396 |
+
)
|
| 1397 |
+
|
| 1398 |
+
return recognizer
|
| 1399 |
+
|
| 1400 |
+
|
| 1401 |
@lru_cache(maxsize=10)
|
| 1402 |
def _get_sherpa_onnx_nemo_transducer_models_int8(
|
| 1403 |
repo_id: str,
|
|
|
|
| 2252 |
"csukuangfj/wenet-english-model": _get_wenet_model,
|
| 2253 |
}
|
| 2254 |
|
| 2255 |
+
more_than_1600_languages_models = {
|
| 2256 |
+
"csukuangfj/sherpa-onnx-omnilingual-asr-1600-languages-300M-ctc-int8-2025-11-12": _get_sherpa_onnx_omnilingual_asr_models,
|
| 2257 |
+
"csukuangfj/sherpa-onnx-omnilingual-asr-1600-languages-300M-ctc-2025-11-12": _get_sherpa_onnx_omnilingual_asr_models,
|
| 2258 |
+
}
|
| 2259 |
+
|
| 2260 |
twenty_five_languages_models = {
|
| 2261 |
"csukuangfj/sherpa-onnx-nemo-parakeet-tdt-0.6b-v3-int8": _get_sherpa_onnx_nemo_transducer_models_int8,
|
| 2262 |
}
|
|
|
|
| 2365 |
|
| 2366 |
|
| 2367 |
all_models = {
|
| 2368 |
+
**more_than_1600_languages_models,
|
| 2369 |
**twenty_five_languages_models,
|
| 2370 |
**multi_lingual_models,
|
| 2371 |
**sichuan_models,
|
|
|
|
| 2389 |
}
|
| 2390 |
|
| 2391 |
language_to_models = {
|
| 2392 |
+
"1600+ languages": list(more_than_1600_languages_models.keys()),
|
| 2393 |
"25 European languages": list(twenty_five_languages_models.keys()),
|
| 2394 |
"Multi-lingual (east aisa)": list(multi_lingual_models.keys()),
|
| 2395 |
"超多种中文方言": list(chinese_dialect_models.keys()),
|
requirements.txt
CHANGED
|
@@ -10,6 +10,6 @@ numpy<2
|
|
| 10 |
|
| 11 |
huggingface_hub
|
| 12 |
|
| 13 |
-
https://huggingface.co/csukuangfj/sherpa-onnx-wheels/resolve/main/cpu/1.12.
|
| 14 |
|
| 15 |
#sherpa-onnx>=1.12.6
|
|
|
|
| 10 |
|
| 11 |
huggingface_hub
|
| 12 |
|
| 13 |
+
https://huggingface.co/csukuangfj/sherpa-onnx-wheels/resolve/main/cpu/1.12.15/sherpa_onnx-1.12.15-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
|
| 14 |
|
| 15 |
#sherpa-onnx>=1.12.6
|