csukuangfj commited on
Commit
62e20af
β€’
1 Parent(s): 7fc713f

add russian

Browse files
Files changed (3) hide show
  1. examples.py +3 -3
  2. model.py +57 -1
  3. test_wavs/russian/test.wav +0 -0
examples.py CHANGED
@@ -38,11 +38,11 @@ examples = [
38
  "./test_wavs/paraformer-zh/四川话.wav",
39
  ],
40
  [
41
- "Chinese",
42
- "luomingshuang/icefall_asr_wenetspeech_pruned_transducer_stateless2",
43
  "greedy_search",
44
  4,
45
- "./test_wavs/wenetspeech/DEV_T0000000000.opus",
46
  ],
47
  [
48
  "German",
 
38
  "./test_wavs/paraformer-zh/四川话.wav",
39
  ],
40
  [
41
+ "Russian",
42
+ "alphacep/vosk-model-ru",
43
  "greedy_search",
44
  4,
45
+ "./test_wavs/russian/test.wav",
46
  ],
47
  [
48
  "German",
model.py CHANGED
@@ -188,6 +188,10 @@ def get_pretrained_model(
188
  return japanese_models[repo_id](
189
  repo_id, decoding_method=decoding_method, num_active_paths=num_active_paths
190
  )
 
 
 
 
191
  else:
192
  raise ValueError(f"Unsupported repo_id: {repo_id}")
193
 
@@ -268,6 +272,51 @@ def _get_aishell2_pretrained_model(
268
 
269
  return recognizer
270
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
271
 
272
  @lru_cache(maxsize=10)
273
  def _get_whisper_model(
@@ -768,7 +817,7 @@ def _get_french_pre_trained_model(
768
  encoder=encoder_model,
769
  decoder=decoder_model,
770
  joiner=joiner_model,
771
- num_threads=1,
772
  sample_rate=16000,
773
  feature_dim=80,
774
  decoding_method=decoding_method,
@@ -919,6 +968,11 @@ japanese_models = {
919
  "TeoWenShen/icefall-asr-csj-pruned-transducer-stateless7-streaming-230208-disfluent": _get_japanese_pre_trained_model,
920
  }
921
 
 
 
 
 
 
922
  all_models = {
923
  **chinese_models,
924
  **english_models,
@@ -928,6 +982,7 @@ all_models = {
928
  **arabic_models,
929
  **german_models,
930
  **french_models,
 
931
  }
932
 
933
  language_to_models = {
@@ -939,4 +994,5 @@ language_to_models = {
939
  "Arabic": list(arabic_models.keys()),
940
  "German": list(german_models.keys()),
941
  "French": list(french_models.keys()),
 
942
  }
 
188
  return japanese_models[repo_id](
189
  repo_id, decoding_method=decoding_method, num_active_paths=num_active_paths
190
  )
191
+ elif repo_id in russian_models:
192
+ return russian_models[repo_id](
193
+ repo_id, decoding_method=decoding_method, num_active_paths=num_active_paths
194
+ )
195
  else:
196
  raise ValueError(f"Unsupported repo_id: {repo_id}")
197
 
 
272
 
273
  return recognizer
274
 
275
+ @lru_cache(maxsize=10)
276
+ def _get_russian_pre_trained_model(
277
+ repo_id: str, decoding_method: str, num_active_paths: int
278
+ ) -> sherpa_onnx.OfflineRecognizer:
279
+ assert repo_id in ("alphacep/vosk-model-ru", "alphacep/vosk-model-small-ru"), repo_id
280
+
281
+ if repo_id == "alphacep/vosk-model-ru":
282
+ model_dir = "am-onnx"
283
+ elif repo_id == "alphacep/vosk-model-small-ru":
284
+ model_dir = "am"
285
+
286
+ encoder_model = _get_nn_model_filename(
287
+ repo_id=repo_id,
288
+ filename="encoder.onnx",
289
+ subfolder=model_dir,
290
+ )
291
+
292
+ decoder_model = _get_nn_model_filename(
293
+ repo_id=repo_id,
294
+ filename="decoder.onnx",
295
+ subfolder=model_dir,
296
+ )
297
+
298
+ joiner_model = _get_nn_model_filename(
299
+ repo_id=repo_id,
300
+ filename="joiner.onnx",
301
+ subfolder=model_dir,
302
+ )
303
+
304
+ tokens = _get_token_filename(repo_id=repo_id, subfolder="lang")
305
+
306
+ recognizer = sherpa_onnx.OfflineRecognizer(
307
+ tokens=tokens,
308
+ encoder=encoder_model,
309
+ decoder=decoder_model,
310
+ joiner=joiner_model,
311
+ num_threads=2,
312
+ sample_rate=16000,
313
+ feature_dim=80,
314
+ decoding_method=decoding_method,
315
+ )
316
+
317
+ return recognizer
318
+
319
+
320
 
321
  @lru_cache(maxsize=10)
322
  def _get_whisper_model(
 
817
  encoder=encoder_model,
818
  decoder=decoder_model,
819
  joiner=joiner_model,
820
+ num_threads=2,
821
  sample_rate=16000,
822
  feature_dim=80,
823
  decoding_method=decoding_method,
 
968
  "TeoWenShen/icefall-asr-csj-pruned-transducer-stateless7-streaming-230208-disfluent": _get_japanese_pre_trained_model,
969
  }
970
 
971
+ russian_models = {
972
+ "alphacep/vosk-model-ru": _get_russian_pre_trained_model,
973
+ "alphacep/vosk-model-small-ru": _get_russian_pre_trained_model,
974
+ }
975
+
976
  all_models = {
977
  **chinese_models,
978
  **english_models,
 
982
  **arabic_models,
983
  **german_models,
984
  **french_models,
985
+ **russian_models,
986
  }
987
 
988
  language_to_models = {
 
994
  "Arabic": list(arabic_models.keys()),
995
  "German": list(german_models.keys()),
996
  "French": list(french_models.keys()),
997
+ "Russian": list(russian_models.keys()),
998
  }
test_wavs/russian/test.wav ADDED
Binary file (227 kB). View file