Skip to content

Commit 9fe25cc

Browse files
authored
Fix VAD+ASR C++ example. (#2335)
It was not able to handle short audios., e.g., 2.1 seconds.
1 parent ea3e583 commit 9fe25cc

3 files changed

Lines changed: 96 additions & 4 deletions

File tree

scripts/apk/generate-asr-apk-script.py

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -300,6 +300,66 @@ def get_models():
300300
301301
ls -lh
302302
303+
popd
304+
""",
305+
),
306+
Model(
307+
model_name="sherpa-onnx-streaming-zipformer-ctc-zh-int8-2025-06-30",
308+
idx=17,
309+
lang="zh",
310+
short_name="large_zipformer_int8",
311+
rule_fsts="itn_zh_number.fst",
312+
cmd="""
313+
if [ ! -f itn_zh_number.fst ]; then
314+
curl -SL -O https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/itn_zh_number.fst
315+
fi
316+
pushd $model_name
317+
rm -fv bpe.model
318+
319+
rm -rf test_wavs
320+
321+
ls -lh
322+
323+
popd
324+
""",
325+
),
326+
Model(
327+
model_name="sherpa-onnx-streaming-zipformer-ctc-zh-2025-06-30",
328+
idx=18,
329+
lang="zh",
330+
short_name="large_zipformer",
331+
rule_fsts="itn_zh_number.fst",
332+
cmd="""
333+
if [ ! -f itn_zh_number.fst ]; then
334+
curl -SL -O https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/itn_zh_number.fst
335+
fi
336+
pushd $model_name
337+
rm -fv bpe.model
338+
339+
rm -rf test_wavs
340+
341+
ls -lh
342+
343+
popd
344+
""",
345+
),
346+
Model(
347+
model_name="sherpa-onnx-streaming-zipformer-ctc-fp16-zh-2025-06-30",
348+
idx=19,
349+
lang="zh",
350+
short_name="large_zipformer_fp16",
351+
rule_fsts="itn_zh_number.fst",
352+
cmd="""
353+
if [ ! -f itn_zh_number.fst ]; then
354+
curl -SL -O https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/itn_zh_number.fst
355+
fi
356+
pushd $model_name
357+
rm -fv bpe.model
358+
359+
rm -rf test_wavs
360+
361+
ls -lh
362+
303363
popd
304364
""",
305365
),

sherpa-onnx/csrc/sherpa-onnx-vad-with-offline-asr.cc

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -186,13 +186,15 @@ for a list of pre-trained models to download.
186186
fprintf(stderr, "Started!\n");
187187
int32_t window_size = vad_config.silero_vad.window_size;
188188
int32_t i = 0;
189-
while (i + window_size < samples.size()) {
190-
vad->AcceptWaveform(samples.data() + i, window_size);
191-
i += window_size;
192-
if (i >= samples.size()) {
189+
while (i < samples.size()) {
190+
if (i + window_size <= samples.size()) {
191+
vad->AcceptWaveform(samples.data() + i, window_size);
192+
} else {
193193
vad->Flush();
194194
}
195195

196+
i += window_size;
197+
196198
while (!vad->Empty()) {
197199
const auto &segment = vad->Front();
198200
float duration = segment.samples.size() / 16000.;

sherpa-onnx/kotlin-api/OnlineRecognizer.kt

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -395,6 +395,36 @@ fun getModelConfig(type: Int): OnlineModelConfig? {
395395
)
396396
}
397397

398+
17 -> {
399+
val modelDir = "sherpa-onnx-streaming-zipformer-ctc-zh-int8-2025-06-30"
400+
return OnlineModelConfig(
401+
zipformer2Ctc = OnlineZipformer2CtcModelConfig(
402+
model = "$modelDir/model.int8.onnx",
403+
),
404+
tokens = "$modelDir/tokens.txt",
405+
)
406+
}
407+
408+
18 -> {
409+
val modelDir = "sherpa-onnx-streaming-zipformer-ctc-zh-2025-06-30"
410+
return OnlineModelConfig(
411+
zipformer2Ctc = OnlineZipformer2CtcModelConfig(
412+
model = "$modelDir/model.onnx",
413+
),
414+
tokens = "$modelDir/tokens.txt",
415+
)
416+
}
417+
418+
19 -> {
419+
val modelDir = "sherpa-onnx-streaming-zipformer-ctc-zh-fp16-2025-06-30"
420+
return OnlineModelConfig(
421+
zipformer2Ctc = OnlineZipformer2CtcModelConfig(
422+
model = "$modelDir/model.fp16.onnx",
423+
),
424+
tokens = "$modelDir/tokens.txt",
425+
)
426+
}
427+
398428
1000 -> {
399429
val modelDir = "sherpa-onnx-rk3588-streaming-zipformer-bilingual-zh-en-2023-02-20"
400430
return OnlineModelConfig(

0 commit comments

Comments
 (0)