Triton-client
Send requests using client
In the docker container, run the client script to do ASR inference:
cd sherpa/triton/client
# Test one audio using offline ASR
python3 client.py --audio_file=./test_wavs/1089-134686-0001.wav --url=localhost:8001
# Test one audio using streaming ASR
python3 client.py --audio_file=./test_wavs/1089-134686-0001.wav --url=localhost:8001 --streaming
The above command sends a single audio 1089-134686-0001.wav to the server and get the result. --url option specifies the IP and port of the server,
in this example, we set the server and client on the same machine, therefore IP is localhost, and we use port 8001 since it is the default port for gRPC in Triton.
You can also test a bunch of audios together with the client. Just specify the path of wav.scp with --wavscp option,
set the path of test set directory with --data_dir option, and set the path of ground-truth transcript file with --trans option,
the client will infer all the audios in test set and calculate the WER upon the test set.
Decode manifests
You could also decode a whole dataset to benchmark metrics e.g. RTF, WER.
Caution
Decode manifests in simulation streaming mode would be supported in the future.
cd sherpa/triton/client
# For aishell manifests:
git lfs install
git clone https://huggingface.co/csukuangfj/aishell-test-dev-manifests
sudo mkdir -p /root/fangjun/open-source/icefall-aishell/egs/aishell/ASR/download/aishell
tar xf ./aishell-test-dev-manifests/data_aishell.tar.gz -C /root/fangjun/open-source/icefall-aishell/egs/aishell/ASR/download/aishell/
# dev set: ./aishell-test-dev-manifests/data/fbank/aishell_cuts_test.jsonl.gz
# test set: ./aishell-test-dev-manifests/data/fbank/aishell_cuts_test.jsonl.gz
python3 decode_manifest_triton.py \
--server-addr localhost \
--num-tasks 300 \
--log-interval 20 \
--model-name transducer \
--manifest-filename ./aishell-test-dev-manifests/data/fbank/aishell_cuts_test.jsonl.gz \
--compute-cer