Command-line Clients¶
A Docker image containing sample command-line drivers for the Riva services is available on NGC. Pull and run the container by using the commands below. The client expects that a Riva server is running with models deployed, and all command-line drivers accept an optional argument to specify the location of the server. No GPU is required to run the sample clients.
docker pull nvcr.io/nvidia/riva/riva-speech-client:1.8.0-beta
docker run -it --rm nvcr.io/nvidia/riva/riva-speech-client:1.8.0-beta
Speech Recognition¶
Both binary and Python clients are included in the Docker image with options to do ASR inference in streaming as well as offline (non-streaming) mode.
Binary Streaming Example¶
Run the ASR streaming client, where --audio_file
is used to specify the
audio file that is to be transcribed. Other options can be found in
riva_streaming_asr_client --help
.
riva_streaming_asr_client --audio_file /work/wav/test/1272-135031-0001.wav
Binary Offline/Batch (non-streaming) Example¶
Run the binary ASR offline client, where --audio_file
is used to specify the
audio file that is to be transcribed. Other options can be found in
riva_asr_client --help
.
riva_asr_client --audio_file /work/wav/test/1272-135031-0001.wav
Python Streaming Example¶
Run the Python ASR streaming client, where --input-file
is used to specify the
audio file that is to be transcribed. Other options can be found in
riva_streaming_asr_client.py
.
python riva_streaming_asr_client.py --input-file=/work/wav/test/1272-135031-0001.wav
Other Python ASR clients are also available. The transcribe_mic.py
example is the preferred,
cross-platform way to interact with Riva using a microphone from an arbitrary remote system
running on any operating system and hardware platform.
transcribe_file.py
transcribes audio files in streaming mode.transcribe_file_offline.py
transcribes audio files in offline mode.transcribe_file_rt.py
transcribes audio files while playing back through PyAudio stream.transcribe_mic.py
transcribes audio from a microphone device.
Natural Language Processing¶
Both binary and Python clients are included in the Docker image for supported NLP tasks.
Binary NER Example¶
Run the Token Classification Model (NER), where --queries
is used to specify the
query file in which to provide token labels for. Other options can be found in
riva_nlp_classify_tokens --help
.
riva_nlp_classify_tokens --queries=/work/test_files/nlu/queries.txt
Binary QA Example¶
Run the binary Question Answering client, where --questions
is used to specify the
file containing questions and --contexts
is used to specify the file containing the context
paragraph. Other options can be found in riva_nlp_qa --help
.
riva_nlp_qa --questions=/work/test_files/nlu/qa_questions.txt --contexts=/work/test_files/nlu/qa_contexts.txt
Python QA Example¶
Run the Python Question Answering client. Modify test_context
and req.query
in the test_qa.py
script to try different Question Answering examples.
python test_qa.py
Binary Punctuation Example¶
Run the Punctuation client, where --queries
is used to specify the file containing
inputs to punctuate. Note that if you want to specify --output
to write output of the
punctuation model to a file, you need to also specify --parallel_requests=1
.
riva_nlp_punct --queries=/work/test_files/nlu/punctuation_input.txt
Speech Synthesis¶
Binary clients are supported in the Docker image for TTS.
Binary TTS Client Example¶
Run the binary TTS client, where --text
is used to specify the input text for which to
synthesize audio. The output of the client is a .wav
file which can be specified by --audio_file
. Other options can be
found in riva_tts_client --help
.
riva_tts_client --text="I had a dream yesterday."
Binary TTS Performance Client Example¶
Run the binary TTS Performance client which will provide information about latency and
throughput. Options --text
can be used to specify the input text and --text_file
can
be used to specify the file containing multiple text inputs. Other options can be found in
riva_tts_perf_client --help
.
riva_tts_perf_client --text_file=/work/test_files/tts/ljs_audio_text_test_filelist_small.txt
Python Client Examples¶
Two command-line clients implemented in Python are provided as an example of how to interact with the TTS service using the Python API. talk.py is an implementation of a client for performing offline inference, and talk_stream.py is an implementation using online inference (with audio being streamed back to the client in chunks).