命令行客户端
目录
命令行客户端#
数据中心
Riva Speech Docker 镜像包含 Riva Speech AI 服务的示例命令行驱动程序。使用以下命令拉取并运行容器。客户端期望 Riva 服务器正在运行并部署了模型,并且所有命令行驱动程序都接受一个可选参数来指定服务器的位置。运行示例客户端不需要 GPU。
docker pull nvcr.io/nvidia/riva/riva-speech:2.18.0
docker run -it --rm nvcr.io/nvidia/riva/riva-speech:2.18.0
嵌入式
示例命令行客户端存在于 Riva Speech AI 服务器容器中。有关如何启动 Riva Speech AI 服务器容器的步骤,请参阅 快速入门指南。
语音识别#
Docker 镜像中包含二进制和 Python 客户端,它们具有在流式传输以及离线(非流式传输)模式下执行 ASR 推理的选项。
二进制流式传输示例#
运行 ASR 流式传输客户端,其中 --audio_file
指定要转录的音频文件。其他选项可以在 riva_streaming_asr_client --help
中找到。
注意
目前支持 .wav
、.opus
和 .ogg
(Opus 编码) 容器。
riva_streaming_asr_client --audio_file /work/wav/test/1272-135031-0001.wav
二进制离线/批量(非流式传输)示例#
运行二进制 ASR 离线客户端,其中 --audio_file
指定要转录的音频文件。其他选项可以在 riva_asr_client --help
中找到。
riva_asr_client --audio_file /work/wav/test/1272-135031-0001.wav
Python 流式传输示例#
运行 Python ASR 流式传输客户端,其中 --input-file
指定要转录的音频文件。其他选项可以在 riva_streaming_asr_client.py
脚本中找到。
python riva_streaming_asr_client.py --input-file=/work/wav/test/1272-135031-0001.wav
transcribe_mic.py
示例是与 Riva 交互的首选跨平台方式。此外,建议使用来自在任何操作系统和硬件平台上运行的任意远程系统的麦克风。
python transcribe_mic.py --input-device <device_id>
您的音频输入设备的 <device_id>
可以从以下位置获得
python transcribe_mic.py --list-devices
类似地,transcribe_file.py
示例以流式传输模式转录音频文件。
Python 离线示例#
运行 Python ASR 离线客户端,其中 --input-file
指定要转录的音频文件。其他选项可以在 transcribe_file_offline.py
脚本中找到。
python transcribe_file_offline.py --input-file=/work/wav/test/1272-135031-0001.wav
HTTP 客户端离线示例#
运行以下命令以使用 HTTP API 和离线 ASR 模型转录音频文件,其中 file
指定要转录的音频文件,language
指定输入音频文件的语言代码。
curl -s http://127.0.0.1:50000/v1/audio/transcriptions -F file="@/work/wav/test/1272-135031-0000.wav" -F language=en-US
二进制离线说话人分离示例#
运行二进制 ASR 离线客户端,其中 --audio_file
指定要进行说话人分离的音频文件,--speaker_diarization
是启用说话人分离的标志。
riva_asr_client --audio_file /opt/riva/wav/en-US_sample.wav --speaker_diarization=true
Python 离线说话人分离示例#
运行 Python ASR 离线客户端,其中 --input-file
指定要进行说话人分离的音频文件,--speaker-diarization
是启用说话人分离的标志。
python transcribe_file_offline.py --input-file /opt/riva/wav/en-US_sample.wav --speaker-diarization
自然语言处理#
Docker 镜像中包含二进制和 Python 客户端,用于支持的 NLP 任务。
二进制标点符号示例#
运行标点符号客户端,其中 --queries
指定包含要添加标点符号的输入的文件。请注意,如果您想指定 --output
以将标点符号模型的输出写入文件,则还需要指定 --parallel_requests=1
。
riva_nlp_punct --queries=/work/test_files/nlu/punctuation_input.txt
语音合成#
Docker 镜像中支持用于 TTS 的二进制客户端。
二进制 TTS 客户端示例#
运行二进制 TTS 客户端,其中 --text
用于指定要合成音频的输入文本。客户端的输出是一个 .wav
文件,可以通过 --audio_file
指定。其他选项可以在 riva_tts_client --help
中找到。
riva_tts_client --text="I had a dream yesterday." --audio_file=/opt/riva/wav/output.wav
二进制 TTS 性能客户端示例#
运行二进制 TTS 性能客户端,它提供有关延迟和吞吐量的信息。选项 --text
指定输入文本,--text_file
指定包含多个文本输入的文件。其他选项可以在 riva_tts_perf_client --help
中找到。
riva_tts_perf_client --text_file=/work/test_files/tts/ljs_audio_text_test_filelist_small.txt
Python 客户端示例#
talk.py
脚本是用于执行离线和流式传输(音频以块的形式流式传输回客户端)推理的客户端实现。
python talk.py --stream --output-device <device_id>
您的音频输出设备的 <device_id>
可以从以下位置获得
python talk.py --list-devices
机器翻译#
Docker 镜像中支持用于神经机器翻译 (NMT) 的二进制和 python 客户端。
二进制文本翻译示例#
检索可用的模型和语言对
riva_nmt_t2t_client --list_models
languages {
key: "en_de_24x6"
value {
src_lang: "en"
tgt_lang: "de"
}
}
运行二进制客户端
riva_nmt_t2t_client --model_name=en_de_24x6 --source_language_code="en-US" --target_language_code="de-DE" --text="This will become German words." --riva_uri=0.0.0.0:50051
其中
--source_language_code
是源语言代码--target_language_code
是目标语言代码--text
是您要翻译的文本--riva_uri
是服务器的 IP 地址--model_name
是模型的名称
要翻译 .txt
文件,请确保每个句子都形成新行,然后运行
riva_nmt_t2t_client --source_language_code es-US --target_language_code en-US --text_file /raid/wmt_tests/wmt13-es-en.es --riva_uri=0.0.0.0:50051 --model_name mnmt_deesfr_en_transformer12x2 --batch_size=8
其中
--text_file
是您要翻译的文件的路径batch_size
是批次的大小。默认值为8
。
Python 客户端示例#
提供的 Python 客户端实现了 gRPC API。
例如,要将句子 *Please translate this English to German.* 翻译成德语,请运行
检索可用的模型和语言对
python3 /opt/riva/examples/nmt.py --list-models
languages {
key: "en_de_24x6"
value {
src_lang: "en"
tgt_lang: "de"
}
}
运行 python 客户端
python3 /opt/riva/examples/nmt.py --source-language-code=en-US --target-language-code=de-DE --text="Please translate this English to German." --server=0.0.0.0:50051 --model-name=en_de_24x6
其中
--source-language-code
是源语言代码--target-language-code
是目标语言代码--text
是您要翻译的文本--server
是服务器的 IP 地址--model-name
是模型的名称
要翻译 .txt
文件,请确保每个句子都形成新行,然后运行
python3 /opt/riva/examples/nmt.py --source-language-code es-US --target-language-code en-US --text-file /raid/wmt_tests/wmt13-es-en.es --server=0.0.0.0:50051 --model-name mnmt_deesfr_en_transformer12x2 --batch-size=8
其中
--text-file
是您要翻译的文件的路径batch-size
是批次的大小。默认值为8
。
语音到语音翻译#
二进制客户端支持 Docker 中的语音到语音 (S2S) 服务。
二进制语音到语音翻译客户端示例#
运行二进制客户端。
riva_nmt_streaming_s2s_client --riva_uri=0.0.0.0:50051 --audio_file=/opt/riva/wav/es-US_sample.wav --source_language_code="es-US" --target_language_code="en-US"
其中
--audio_file
是输入音频文件--source_language_code
是源语言--target_language_code
是目标语言--riva_uri
是服务器的 IP 地址
其他参数选项可以在 riva_nmt_streaming_s2s_client --help
中找到。
语音到文本翻译#
二进制客户端支持 Docker 中的语音到翻译 (S2T) 服务。
二进制语音到文本翻译客户端示例#
运行二进制客户端。
riva_nmt_streaming_s2t_client --riva_uri=0.0.0.0:50051 --audio_file=/opt/riva/wav/en-US_sample.wav --source_language_code="en-US" --target_language_code="de-DE"
其中
--audio_file
是输入音频文件--source_language_code
是源语言--target_language_code
是目标语言--riva_uri
是服务器的 IP 地址
其他参数选项可以在 riva_nmt_streaming_s2t_client --help
中找到。