Transducer

In this section, we describe how to use pre-trained transducer models for online (i.e., streaming) speech recognition.

Hint

Please refer to Online transducer models for a list of available pre-trained transducer models to download.

In the following, we use the pre-trained model icefall-asr-librispeech-pruned-transducer-stateless7-streaming-2022-12-29 to demonstrate how to decode sound files.

Caution

Make sure you have installed sherpa before you continue.

Please refer to From source to install sherpa from source.

Download the pre-trained model

Please refer to icefall-asr-librispeech-pruned-transducer-stateless7-streaming-2022-12-29 for detailed instructions.

For ease of reference, we duplicate the download commands below:

# This model is trained using LibriSpeech with streaming zipformer transducer
#
# See https://github.com/k2-fsa/icefall/pull/787
#
GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/Zengwei/icefall-asr-librispeech-pruned-transducer-stateless7-streaming-2022-12-29
cd icefall-asr-librispeech-pruned-transducer-stateless7-streaming-2022-12-29

git lfs pull --include "exp/cpu_jit.pt"
git lfs pull --include "data/lang_bpe_500/LG.pt"

In the following, we describe different decoding methods.

fast_beam_search with LG

cd /path/to/sherpa

python3 ./sherpa/bin/online_transducer_asr.py \
  --decoding-method="fast_beam_search" \
  --LG=./icefall-asr-librispeech-pruned-transducer-stateless7-streaming-2022-12-29/data/lang_bpe_500/LG.pt \
  --nn-model=./icefall-asr-librispeech-pruned-transducer-stateless7-streaming-2022-12-29/exp/cpu_jit.pt \
  --tokens=./icefall-asr-librispeech-pruned-transducer-stateless7-streaming-2022-12-29/data/lang_bpe_500/tokens.txt \
  ./icefall-asr-librispeech-pruned-transducer-stateless7-streaming-2022-12-29/test_wavs/1089-134686-0001.wav \
  ./icefall-asr-librispeech-pruned-transducer-stateless7-streaming-2022-12-29/test_wavs/1221-135766-0001.wav \
  ./icefall-asr-librispeech-pruned-transducer-stateless7-streaming-2022-12-29/test_wavs/1221-135766-0002.wav