Commit
·
c0c87b2
1
Parent(s):
a1e6695
update russian models
Browse files- model.py +46 -4
- requirements.txt +2 -2
model.py
CHANGED
|
@@ -147,20 +147,56 @@ def _get_chinese_dialect_models(repo_id: str) -> sherpa_onnx.OfflineRecognizer:
|
|
| 147 |
|
| 148 |
|
| 149 |
@lru_cache(maxsize=10)
|
| 150 |
-
def
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 151 |
assert repo_id in (
|
| 152 |
"alphacep/vosk-model-ru",
|
| 153 |
"alphacep/vosk-model-small-ru",
|
|
|
|
| 154 |
), repo_id
|
| 155 |
|
| 156 |
if repo_id == "alphacep/vosk-model-ru":
|
| 157 |
model_dir = "am-onnx"
|
|
|
|
|
|
|
| 158 |
elif repo_id == "alphacep/vosk-model-small-ru":
|
| 159 |
model_dir = "am"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 160 |
|
| 161 |
encoder_model = _get_nn_model_filename(
|
| 162 |
repo_id=repo_id,
|
| 163 |
-
filename=
|
| 164 |
subfolder=model_dir,
|
| 165 |
)
|
| 166 |
|
|
@@ -176,7 +212,10 @@ def _get_russian_pre_trained_model(repo_id: str) -> sherpa_onnx.OfflineRecognize
|
|
| 176 |
subfolder=model_dir,
|
| 177 |
)
|
| 178 |
|
| 179 |
-
|
|
|
|
|
|
|
|
|
|
| 180 |
|
| 181 |
recognizer = sherpa_onnx.OfflineRecognizer.from_transducer(
|
| 182 |
tokens=tokens,
|
|
@@ -186,7 +225,8 @@ def _get_russian_pre_trained_model(repo_id: str) -> sherpa_onnx.OfflineRecognize
|
|
| 186 |
num_threads=2,
|
| 187 |
sample_rate=16000,
|
| 188 |
feature_dim=80,
|
| 189 |
-
decoding_method=
|
|
|
|
| 190 |
)
|
| 191 |
|
| 192 |
return recognizer
|
|
@@ -546,6 +586,8 @@ korean_models = {
|
|
| 546 |
}
|
| 547 |
|
| 548 |
russian_models = {
|
|
|
|
|
|
|
| 549 |
"alphacep/vosk-model-ru": _get_russian_pre_trained_model,
|
| 550 |
"alphacep/vosk-model-small-ru": _get_russian_pre_trained_model,
|
| 551 |
}
|
|
|
|
| 147 |
|
| 148 |
|
| 149 |
@lru_cache(maxsize=10)
|
| 150 |
+
def _get_russian_pre_trained_model_ctc(
|
| 151 |
+
repo_id: str, decoding_method: str, num_active_paths: int
|
| 152 |
+
) -> sherpa_onnx.OfflineRecognizer:
|
| 153 |
+
assert repo_id in (
|
| 154 |
+
"csukuangfj/sherpa-onnx-nemo-ctc-giga-am-russian-2024-10-24",
|
| 155 |
+
), repo_id
|
| 156 |
+
|
| 157 |
+
model = _get_nn_model_filename(
|
| 158 |
+
repo_id=repo_id,
|
| 159 |
+
filename="model.int8.onnx",
|
| 160 |
+
subfolder=".",
|
| 161 |
+
)
|
| 162 |
+
|
| 163 |
+
tokens = _get_token_filename(repo_id=repo_id, subfolder=".")
|
| 164 |
+
|
| 165 |
+
recognizer = sherpa_onnx.OfflineRecognizer.from_nemo_ctc(
|
| 166 |
+
model=model,
|
| 167 |
+
tokens=tokens,
|
| 168 |
+
num_threads=2,
|
| 169 |
+
)
|
| 170 |
+
|
| 171 |
+
return recognizer
|
| 172 |
+
|
| 173 |
+
|
| 174 |
+
@lru_cache(maxsize=10)
|
| 175 |
+
def _get_russian_pre_trained_model(
|
| 176 |
+
repo_id: str, decoding_method: str, num_active_paths: int
|
| 177 |
+
) -> sherpa_onnx.OfflineRecognizer:
|
| 178 |
assert repo_id in (
|
| 179 |
"alphacep/vosk-model-ru",
|
| 180 |
"alphacep/vosk-model-small-ru",
|
| 181 |
+
"csukuangfj/sherpa-onnx-nemo-transducer-giga-am-russian-2024-10-24",
|
| 182 |
), repo_id
|
| 183 |
|
| 184 |
if repo_id == "alphacep/vosk-model-ru":
|
| 185 |
model_dir = "am-onnx"
|
| 186 |
+
encoder = "encoder.onnx"
|
| 187 |
+
model_type = "transducer"
|
| 188 |
elif repo_id == "alphacep/vosk-model-small-ru":
|
| 189 |
model_dir = "am"
|
| 190 |
+
encoder = "encoder.onnx"
|
| 191 |
+
model_type = "transducer"
|
| 192 |
+
elif repo_id == "csukuangfj/sherpa-onnx-nemo-transducer-giga-am-russian-2024-10-24":
|
| 193 |
+
model_dir = "."
|
| 194 |
+
encoder = "encoder.int8.onnx"
|
| 195 |
+
model_type = "nemo_transducer"
|
| 196 |
|
| 197 |
encoder_model = _get_nn_model_filename(
|
| 198 |
repo_id=repo_id,
|
| 199 |
+
filename=encoder,
|
| 200 |
subfolder=model_dir,
|
| 201 |
)
|
| 202 |
|
|
|
|
| 212 |
subfolder=model_dir,
|
| 213 |
)
|
| 214 |
|
| 215 |
+
if repo_id == "csukuangfj/sherpa-onnx-nemo-transducer-giga-am-russian-2024-10-24":
|
| 216 |
+
tokens = _get_token_filename(repo_id=repo_id, subfolder=".")
|
| 217 |
+
else:
|
| 218 |
+
tokens = _get_token_filename(repo_id=repo_id, subfolder="lang")
|
| 219 |
|
| 220 |
recognizer = sherpa_onnx.OfflineRecognizer.from_transducer(
|
| 221 |
tokens=tokens,
|
|
|
|
| 225 |
num_threads=2,
|
| 226 |
sample_rate=16000,
|
| 227 |
feature_dim=80,
|
| 228 |
+
decoding_method=decoding_method,
|
| 229 |
+
model_type=model_type,
|
| 230 |
)
|
| 231 |
|
| 232 |
return recognizer
|
|
|
|
| 586 |
}
|
| 587 |
|
| 588 |
russian_models = {
|
| 589 |
+
"csukuangfj/sherpa-onnx-nemo-transducer-giga-am-russian-2024-10-24": _get_russian_pre_trained_model,
|
| 590 |
+
"csukuangfj/sherpa-onnx-nemo-ctc-giga-am-russian-2024-10-24": _get_russian_pre_trained_model_ctc,
|
| 591 |
"alphacep/vosk-model-ru": _get_russian_pre_trained_model,
|
| 592 |
"alphacep/vosk-model-small-ru": _get_russian_pre_trained_model,
|
| 593 |
}
|
requirements.txt
CHANGED
|
@@ -1,4 +1,4 @@
|
|
| 1 |
|
| 2 |
-
sherpa-onnx>=1.9.21
|
| 3 |
ffmpeg-python
|
| 4 |
-
|
|
|
|
| 1 |
|
| 2 |
+
#sherpa-onnx>=1.9.21
|
| 3 |
ffmpeg-python
|
| 4 |
+
https://huggingface.co/csukuangfj/sherpa-onnx-wheels/resolve/main/cpu/1.10.28/sherpa_onnx-1.10.28-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
|