437 lines
13 KiB
Bash
Executable File
437 lines
13 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -e
|
|
|
|
log() {
|
|
# This function is from espnet
|
|
local fname=${BASH_SOURCE[1]##*/}
|
|
echo -e "$(date '+%Y-%m-%d %H:%M:%S') (${fname}:${BASH_LINENO[0]}:${FUNCNAME[1]}) $*"
|
|
}
|
|
|
|
export GIT_CLONE_PROTECTION_ACTIVE=false
|
|
|
|
echo "EXE is $EXE"
|
|
echo "PATH: $PATH"
|
|
|
|
which $EXE
|
|
|
|
for type in base small; do
|
|
log "------------------------------------------------------------"
|
|
log "Run Dolphin CTC models ($type int8)"
|
|
log "------------------------------------------------------------"
|
|
curl -SL -O https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-dolphin-$type-ctc-multi-lang-int8-2025-04-02.tar.bz2
|
|
tar xvf sherpa-onnx-dolphin-$type-ctc-multi-lang-int8-2025-04-02.tar.bz2
|
|
rm sherpa-onnx-dolphin-$type-ctc-multi-lang-int8-2025-04-02.tar.bz2
|
|
|
|
$EXE \
|
|
--dolphin-model=./sherpa-onnx-dolphin-$type-ctc-multi-lang-int8-2025-04-02/model.int8.onnx \
|
|
--tokens=./sherpa-onnx-dolphin-$type-ctc-multi-lang-int8-2025-04-02/tokens.txt \
|
|
--debug=1 \
|
|
./sherpa-onnx-dolphin-$type-ctc-multi-lang-int8-2025-04-02/test_wavs/0.wav
|
|
|
|
rm -rf sherpa-onnx-dolphin-$type-ctc-multi-lang-int8-2025-04-02
|
|
|
|
log "------------------------------------------------------------"
|
|
log "Run Dolphin CTC models ($type)"
|
|
log "------------------------------------------------------------"
|
|
curl -SL -O https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-dolphin-$type-ctc-multi-lang-2025-04-02.tar.bz2
|
|
tar xvf sherpa-onnx-dolphin-$type-ctc-multi-lang-2025-04-02.tar.bz2
|
|
rm sherpa-onnx-dolphin-$type-ctc-multi-lang-2025-04-02.tar.bz2
|
|
|
|
$EXE \
|
|
--dolphin-model=./sherpa-onnx-dolphin-$type-ctc-multi-lang-2025-04-02/model.onnx \
|
|
--tokens=./sherpa-onnx-dolphin-$type-ctc-multi-lang-2025-04-02/tokens.txt \
|
|
--debug=1 \
|
|
./sherpa-onnx-dolphin-$type-ctc-multi-lang-2025-04-02/test_wavs/0.wav
|
|
|
|
rm -rf sherpa-onnx-dolphin-$type-ctc-multi-lang-2025-04-02
|
|
done
|
|
|
|
log "------------------------------------------------------------"
|
|
log "Run NeMo GigaAM Russian models v2"
|
|
log "------------------------------------------------------------"
|
|
curl -SL -O https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-nemo-ctc-giga-am-v2-russian-2025-04-19.tar.bz2
|
|
tar xvf sherpa-onnx-nemo-ctc-giga-am-v2-russian-2025-04-19.tar.bz2
|
|
rm sherpa-onnx-nemo-ctc-giga-am-v2-russian-2025-04-19.tar.bz2
|
|
|
|
$EXE \
|
|
--nemo-ctc-model=./sherpa-onnx-nemo-ctc-giga-am-v2-russian-2025-04-19/model.int8.onnx \
|
|
--tokens=./sherpa-onnx-nemo-ctc-giga-am-v2-russian-2025-04-19/tokens.txt \
|
|
--debug=1 \
|
|
./sherpa-onnx-nemo-ctc-giga-am-v2-russian-2025-04-19/test_wavs/example.wav
|
|
|
|
rm -rf sherpa-onnx-nemo-ctc-giga-am-v2-russian-2025-04-19
|
|
|
|
log "------------------------------------------------------------"
|
|
log "Run NeMo GigaAM Russian models v1"
|
|
log "------------------------------------------------------------"
|
|
curl -SL -O https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-nemo-ctc-giga-am-russian-2024-10-24.tar.bz2
|
|
tar xvf sherpa-onnx-nemo-ctc-giga-am-russian-2024-10-24.tar.bz2
|
|
rm sherpa-onnx-nemo-ctc-giga-am-russian-2024-10-24.tar.bz2
|
|
|
|
$EXE \
|
|
--nemo-ctc-model=./sherpa-onnx-nemo-ctc-giga-am-russian-2024-10-24/model.int8.onnx \
|
|
--tokens=./sherpa-onnx-nemo-ctc-giga-am-russian-2024-10-24/tokens.txt \
|
|
--debug=1 \
|
|
./sherpa-onnx-nemo-ctc-giga-am-russian-2024-10-24/test_wavs/example.wav
|
|
|
|
rm -rf sherpa-onnx-nemo-ctc-giga-am-russian-2024-10-24
|
|
|
|
log "------------------------------------------------------------"
|
|
log "Run SenseVoice models"
|
|
log "------------------------------------------------------------"
|
|
curl -SL -O https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-sense-voice-zh-en-ja-ko-yue-2024-07-17.tar.bz2
|
|
tar xvf sherpa-onnx-sense-voice-zh-en-ja-ko-yue-2024-07-17.tar.bz2
|
|
rm sherpa-onnx-sense-voice-zh-en-ja-ko-yue-2024-07-17.tar.bz2
|
|
repo=sherpa-onnx-sense-voice-zh-en-ja-ko-yue-2024-07-17
|
|
|
|
for m in model.onnx model.int8.onnx; do
|
|
for w in zh en yue ja ko; do
|
|
for use_itn in 0 1; do
|
|
echo "$m $w $use_itn"
|
|
time $EXE \
|
|
--tokens=$repo/tokens.txt \
|
|
--sense-voice-model=$repo/$m \
|
|
--sense-voice-use-itn=$use_itn \
|
|
$repo/test_wavs/$w.wav
|
|
done
|
|
done
|
|
done
|
|
|
|
curl -SL -O https://github.com/k2-fsa/sherpa-onnx/releases/download/hr-files/dict.tar.bz2
|
|
tar xf dict.tar.bz2
|
|
rm dict.tar.bz2
|
|
|
|
curl -SL -O https://github.com/k2-fsa/sherpa-onnx/releases/download/hr-files/replace.fst
|
|
curl -SL -O https://github.com/k2-fsa/sherpa-onnx/releases/download/hr-files/test-hr.wav
|
|
curl -SL -O https://github.com/k2-fsa/sherpa-onnx/releases/download/hr-files/lexicon.txt
|
|
|
|
for m in model.onnx model.int8.onnx; do
|
|
for use_itn in 0 1; do
|
|
echo "$m $w $use_itn"
|
|
time $EXE \
|
|
--tokens=$repo/tokens.txt \
|
|
--sense-voice-model=$repo/$m \
|
|
--sense-voice-use-itn=$use_itn \
|
|
--hr-lexicon=./lexicon.txt \
|
|
--hr-dict-dir=./dict \
|
|
--hr-rule-fsts=./replace.fst \
|
|
./test-hr.wav
|
|
done
|
|
done
|
|
|
|
rm -rf dict replace.fst test-hr.wav lexicon.txt
|
|
|
|
# test wav reader for non-standard wav files
|
|
waves=(
|
|
naudio.wav
|
|
junk-padding.wav
|
|
int8-1-channel-zh.wav
|
|
int8-2-channel-zh.wav
|
|
int8-4-channel-zh.wav
|
|
int16-1-channel-zh.wav
|
|
int16-2-channel-zh.wav
|
|
int32-1-channel-zh.wav
|
|
int32-2-channel-zh.wav
|
|
float32-1-channel-zh.wav
|
|
float32-2-channel-zh.wav
|
|
)
|
|
for w in ${waves[@]}; do
|
|
curl -SL -O https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/$w
|
|
|
|
time $EXE \
|
|
--tokens=$repo/tokens.txt \
|
|
--sense-voice-model=$repo/model.int8.onnx \
|
|
$w
|
|
rm -v $w
|
|
done
|
|
|
|
rm -rf $repo
|
|
|
|
if true; then
|
|
# It has problems with onnxruntime 1.18
|
|
log "------------------------------------------------------------"
|
|
log "Run Wenet models"
|
|
log "------------------------------------------------------------"
|
|
wenet_models=(
|
|
sherpa-onnx-zh-wenet-aishell
|
|
# sherpa-onnx-zh-wenet-aishell2
|
|
# sherpa-onnx-zh-wenet-wenetspeech
|
|
# sherpa-onnx-zh-wenet-multi-cn
|
|
sherpa-onnx-en-wenet-librispeech
|
|
# sherpa-onnx-en-wenet-gigaspeech
|
|
)
|
|
for name in ${wenet_models[@]}; do
|
|
repo_url=https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/$name.tar.bz2
|
|
log "Start testing ${repo_url}"
|
|
repo=$name
|
|
log "Download pretrained model and test-data from $repo_url"
|
|
curl -SL -O $repo_url
|
|
tar xvf $name.tar.bz2
|
|
rm $name.tar.bz2
|
|
|
|
log "test float32 models"
|
|
time $EXE \
|
|
--tokens=$repo/tokens.txt \
|
|
--wenet-ctc-model=$repo/model.onnx \
|
|
$repo/test_wavs/0.wav \
|
|
$repo/test_wavs/1.wav \
|
|
$repo/test_wavs/8k.wav
|
|
|
|
log "test int8 models"
|
|
time $EXE \
|
|
--tokens=$repo/tokens.txt \
|
|
--wenet-ctc-model=$repo/model.int8.onnx \
|
|
$repo/test_wavs/0.wav \
|
|
$repo/test_wavs/1.wav \
|
|
$repo/test_wavs/8k.wav
|
|
|
|
rm -rf $repo
|
|
done
|
|
fi
|
|
|
|
|
|
log "test offline TeleSpeech CTC"
|
|
url=https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-telespeech-ctc-int8-zh-2024-06-04.tar.bz2
|
|
name=$(basename $url)
|
|
repo=$(basename -s .tar.bz2 $name)
|
|
|
|
curl -SL -O $url
|
|
tar xvf $name
|
|
rm $name
|
|
ls -lh $repo
|
|
|
|
test_wavs=(
|
|
3-sichuan.wav
|
|
4-tianjin.wav
|
|
5-henan.wav
|
|
)
|
|
for w in ${test_wavs[@]}; do
|
|
time $EXE \
|
|
--tokens=$repo/tokens.txt \
|
|
--telespeech-ctc=$repo/model.int8.onnx \
|
|
--debug=1 \
|
|
$repo/test_wavs/$w
|
|
done
|
|
|
|
time $EXE \
|
|
--tokens=$repo/tokens.txt \
|
|
--telespeech-ctc=$repo/model.int8.onnx \
|
|
--debug=1 \
|
|
$repo/test_wavs/3-sichuan.wav \
|
|
$repo/test_wavs/4-tianjin.wav \
|
|
$repo/test_wavs/5-henan.wav
|
|
|
|
rm -rf $repo
|
|
|
|
log "-----------------------------------------------------------------"
|
|
log "Run Nemo fast conformer hybrid transducer ctc models (CTC branch)"
|
|
log "-----------------------------------------------------------------"
|
|
|
|
url=https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-nemo-fast-conformer-ctc-be-de-en-es-fr-hr-it-pl-ru-uk-20k.tar.bz2
|
|
name=$(basename $url)
|
|
curl -SL -O $url
|
|
tar xvf $name
|
|
rm $name
|
|
repo=$(basename -s .tar.bz2 $name)
|
|
ls -lh $repo
|
|
|
|
log "test $repo"
|
|
test_wavs=(
|
|
de-german.wav
|
|
es-spanish.wav
|
|
hr-croatian.wav
|
|
po-polish.wav
|
|
uk-ukrainian.wav
|
|
en-english.wav
|
|
fr-french.wav
|
|
it-italian.wav
|
|
ru-russian.wav
|
|
)
|
|
for w in ${test_wavs[@]}; do
|
|
time $EXE \
|
|
--tokens=$repo/tokens.txt \
|
|
--nemo-ctc-model=$repo/model.onnx \
|
|
--debug=1 \
|
|
$repo/test_wavs/$w
|
|
done
|
|
|
|
rm -rf $repo
|
|
|
|
url=https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-nemo-fast-conformer-ctc-en-24500.tar.bz2
|
|
name=$(basename $url)
|
|
curl -SL -O $url
|
|
tar xvf $name
|
|
rm $name
|
|
repo=$(basename -s .tar.bz2 $name)
|
|
ls -lh $repo
|
|
|
|
log "Test $repo"
|
|
|
|
time $EXE \
|
|
--tokens=$repo/tokens.txt \
|
|
--nemo-ctc-model=$repo/model.onnx \
|
|
--debug=1 \
|
|
$repo/test_wavs/en-english.wav
|
|
|
|
rm -rf $repo
|
|
|
|
url=https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-nemo-fast-conformer-ctc-es-1424.tar.bz2
|
|
name=$(basename $url)
|
|
curl -SL -O $url
|
|
tar xvf $name
|
|
rm $name
|
|
repo=$(basename -s .tar.bz2 $name)
|
|
ls -lh $repo
|
|
|
|
log "test $repo"
|
|
|
|
time $EXE \
|
|
--tokens=$repo/tokens.txt \
|
|
--nemo-ctc-model=$repo/model.onnx \
|
|
--debug=1 \
|
|
$repo/test_wavs/es-spanish.wav
|
|
|
|
rm -rf $repo
|
|
|
|
url=https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-nemo-fast-conformer-ctc-en-de-es-fr-14288.tar.bz2
|
|
name=$(basename $url)
|
|
curl -SL -O $url
|
|
tar xvf $name
|
|
rm $name
|
|
repo=$(basename -s .tar.bz2 $name)
|
|
ls -lh $repo
|
|
|
|
log "Test $repo"
|
|
|
|
test_wavs=(
|
|
en-english.wav
|
|
de-german.wav
|
|
fr-french.wav
|
|
es-spanish.wav
|
|
)
|
|
|
|
for w in ${test_wavs[@]}; do
|
|
time $EXE \
|
|
--tokens=$repo/tokens.txt \
|
|
--nemo-ctc-model=$repo/model.onnx \
|
|
--debug=1 \
|
|
$repo/test_wavs/$w
|
|
done
|
|
|
|
rm -rf $repo
|
|
|
|
|
|
|
|
log "------------------------------------------------------------"
|
|
log "Run tdnn yesno (Hebrew)"
|
|
log "------------------------------------------------------------"
|
|
url=https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-tdnn-yesno.tar.bz2
|
|
curl -SL -O $url
|
|
tar xvf sherpa-onnx-tdnn-yesno.tar.bz2
|
|
rm sherpa-onnx-tdnn-yesno.tar.bz2
|
|
log "Start testing ${url}"
|
|
repo=sherpa-onnx-tdnn-yesno
|
|
log "Download pretrained model and test-data from $url"
|
|
|
|
log "test float32 models"
|
|
time $EXE \
|
|
--sample-rate=8000 \
|
|
--feat-dim=23 \
|
|
\
|
|
--tokens=$repo/tokens.txt \
|
|
--tdnn-model=$repo/model-epoch-14-avg-2.onnx \
|
|
$repo/test_wavs/0_0_0_1_0_0_0_1.wav \
|
|
$repo/test_wavs/0_0_1_0_0_0_1_0.wav \
|
|
$repo/test_wavs/0_0_1_0_0_1_1_1.wav \
|
|
$repo/test_wavs/0_0_1_0_1_0_0_1.wav \
|
|
$repo/test_wavs/0_0_1_1_0_0_0_1.wav \
|
|
$repo/test_wavs/0_0_1_1_0_1_1_0.wav
|
|
|
|
log "test int8 models"
|
|
time $EXE \
|
|
--sample-rate=8000 \
|
|
--feat-dim=23 \
|
|
\
|
|
--tokens=$repo/tokens.txt \
|
|
--tdnn-model=$repo/model-epoch-14-avg-2.int8.onnx \
|
|
$repo/test_wavs/0_0_0_1_0_0_0_1.wav \
|
|
$repo/test_wavs/0_0_1_0_0_0_1_0.wav \
|
|
$repo/test_wavs/0_0_1_0_0_1_1_1.wav \
|
|
$repo/test_wavs/0_0_1_0_1_0_0_1.wav \
|
|
$repo/test_wavs/0_0_1_1_0_0_0_1.wav \
|
|
$repo/test_wavs/0_0_1_1_0_1_1_0.wav
|
|
|
|
rm -rf $repo
|
|
|
|
log "------------------------------------------------------------"
|
|
log "Run Citrinet (stt_en_citrinet_512, English)"
|
|
log "------------------------------------------------------------"
|
|
|
|
repo_url=https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-nemo-ctc-en-citrinet-512.tar.bz2
|
|
curl -SL -O $repo_url
|
|
tar xvf sherpa-onnx-nemo-ctc-en-citrinet-512.tar.bz2
|
|
rm sherpa-onnx-nemo-ctc-en-citrinet-512.tar.bz2
|
|
log "Start testing ${repo_url}"
|
|
repo=sherpa-onnx-nemo-ctc-en-citrinet-512
|
|
log "Download pretrained model and test-data from $repo_url"
|
|
|
|
time $EXE \
|
|
--tokens=$repo/tokens.txt \
|
|
--nemo-ctc-model=$repo/model.onnx \
|
|
--num-threads=2 \
|
|
$repo/test_wavs/0.wav \
|
|
$repo/test_wavs/1.wav \
|
|
$repo/test_wavs/8k.wav
|
|
|
|
time $EXE \
|
|
--tokens=$repo/tokens.txt \
|
|
--nemo-ctc-model=$repo/model.int8.onnx \
|
|
--num-threads=2 \
|
|
$repo/test_wavs/0.wav \
|
|
$repo/test_wavs/1.wav \
|
|
$repo/test_wavs/8k.wav
|
|
|
|
rm -rf $repo
|
|
|
|
log "------------------------------------------------------------"
|
|
log "Run Librispeech zipformer CTC H/HL/HLG decoding (English) "
|
|
log "------------------------------------------------------------"
|
|
repo_url=https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-zipformer-ctc-en-2023-10-02.tar.bz2
|
|
curl -SL -O $repo_url
|
|
log "Start testing ${repo_url}"
|
|
tar xvf sherpa-onnx-zipformer-ctc-en-2023-10-02.tar.bz2
|
|
rm sherpa-onnx-zipformer-ctc-en-2023-10-02.tar.bz2
|
|
repo=sherpa-onnx-zipformer-ctc-en-2023-10-02
|
|
log "Download pretrained model and test-data from $repo_url"
|
|
|
|
graphs=(
|
|
$repo/H.fst
|
|
$repo/HL.fst
|
|
$repo/HLG.fst
|
|
)
|
|
|
|
for graph in ${graphs[@]}; do
|
|
log "test float32 models with $graph"
|
|
time $EXE \
|
|
--model-type=zipformer2_ctc \
|
|
--ctc.graph=$graph \
|
|
--zipformer-ctc-model=$repo/model.onnx \
|
|
--tokens=$repo/tokens.txt \
|
|
$repo/test_wavs/0.wav \
|
|
$repo/test_wavs/1.wav \
|
|
$repo/test_wavs/2.wav
|
|
|
|
log "test int8 models with $graph"
|
|
time $EXE \
|
|
--model-type=zipformer2_ctc \
|
|
--ctc.graph=$graph \
|
|
--zipformer-ctc-model=$repo/model.int8.onnx \
|
|
--tokens=$repo/tokens.txt \
|
|
$repo/test_wavs/0.wav \
|
|
$repo/test_wavs/1.wav \
|
|
$repo/test_wavs/2.wav
|
|
done
|
|
|
|
rm -rf $repo
|