NeMo/tools/nmt_grpc_service
Sandeep Subramanian 3a419ac1f8
Provide NMT gRPC models via a directory instead of individual files (#2773)
* Provide models via a directory instead of individual files

Signed-off-by: MaximumEntropy <sandeep.subramanian.1@umontreal.ca>

* Style fixes

Signed-off-by: MaximumEntropy <sandeep.subramanian.1@umontreal.ca>

Co-authored-by: Oleksii Kuchaiev <okuchaiev@users.noreply.github.com>
2021-09-09 22:58:45 -07:00
..
api Add basic grpc MT server (#1807) 2021-08-09 16:31:41 -06:00
asr_nmt_client.py Add basic grpc MT server (#1807) 2021-08-09 16:31:41 -06:00
client.py Add basic grpc MT server (#1807) 2021-08-09 16:31:41 -06:00
nmt.proto Add basic grpc MT server (#1807) 2021-08-09 16:31:41 -06:00
README.md Add basic grpc MT server (#1807) 2021-08-09 16:31:41 -06:00
server.py Provide NMT gRPC models via a directory instead of individual files (#2773) 2021-09-09 22:58:45 -07:00

NMT gRPC Server Getting Started

Starting the NMT server

Start the server by specifying multiple models (.nemo files) via the --model argument:

python server.py --model models/en-es.nemo --model models/en-de.nemo --model models/en-fr.nemo

If working with the outputs of a speech recognition system without punctuation and capitalization, you can provide the path to a .nemo model file that performs punctuation and capitalization ex: https://ngc.nvidia.com/catalog/models/nvidia:nemo:punctuation_en_bert via the --punctuation_model flag.

NOTE: The server will throw an error if NMT models do not have have src_language and tgt_language attributes.

Notes

Port can be overridden with --port flag. Default is 50052. Beam decoder parameters can also be set at server start time. See --help for more details.

Example Text Client

python client.py --target_language de --source_language en --text Hello

ASR with Riva + Translation with NeMo cascade

Below, we'll describe how to use Riva's ASR models and NeMo's NMT models to do speech translation via a cascade pipeline.

Installing Riva and python APIs

Follow instructions in https://docs.nvidia.com/deeplearning/riva/user-guide/docs/quick-start-guide.html to setup and install Riva along with the python whl.

For latest setup instructions follow the link above, since instructions below may not be up-to-date.

ngc registry resource download-version nvidia/riva/riva_quickstart:1.4.0-beta
cd riva_quickstart_v1.4.0-beta
bash riva_init.sh
bash riva_start.sh

pip install riva_api-1.4.0b0-py3-none-any.whl

This will start a Riva Speech Recognition service and nvidia-smi should show tritonserver running on GPU0.

ASR + NMT

Start the NeMo translation server using instructions in the previous section (with or without a punctuation and capitalization model).

Run the cascade client using a single channel audio wav file specifying the target language to translate into. By default, Riva ASR is in Englisha and so we specify only the target language to translate into.

python asr_nmt_client.py --audio-file recording.mono.wav --asr_punctuation --target_language de

To view ASR outputs only

python asr_nmt_client.py --audio-file recording.mono.wav --asr_punctuation --target_language de --asr_only