快速入门指南#

这是试用 Riva 的起点。具体而言,本快速入门指南使您能够在本地工作站上部署预训练模型并运行示例客户端。

Riva Speech AI Skills 支持两种架构:Linux x86_64 和 Linux ARM64。在本文档中,它们分别被称为数据中心 (x86_64) 和嵌入式 (ARM64)。

有关更多信息和问题,请访问 NVIDIA Riva 开发者论坛

注意

Riva 嵌入式 (ARM64) 处于 公开 Beta 测试 阶段。

先决条件#

在使用 Riva Speech AI 之前,请确保您满足以下先决条件

数据中心#

  1. 您已获得 NVIDIA NGC 的访问权限并已登录。有关分步说明,请参阅 NGC 入门指南

  2. 您拥有 NVIDIA Volta™、NVIDIA Turing™ 或基于 NVIDIA Ampere 架构的 A100 GPU 的访问权限。有关更多信息,请参阅支持矩阵

  3. 您已安装支持 NVIDIA GPU 的 Docker。有关更多信息,请参阅支持矩阵

  4. 获取免费试用许可证以安装 NVIDIA Riva。有关更多信息,请参阅NVIDIA AI Enterprise 试用

嵌入式#

  1. 您已获得 NVIDIA NGC 的访问权限并已登录。有关分步说明,请参阅 NGC 入门指南

  2. 您拥有 NVIDIA Jetson Orin、NVIDIA Jetson AGX Xavier™ 或 NVIDIA Jetson NX Xavier 的访问权限。有关更多信息,请参阅支持矩阵

  3. 您已在 Jetson 平台上安装 NVIDIA JetPack™ 6.0 版。有关更多信息,请参阅支持矩阵

  4. 您的 Jetson 上有约 15 GB 的可用磁盘空间,这是默认容器和模型所需的空间。如果您要部署任何 Riva 模型中间表示 (RMIR) 模型,则所需的额外磁盘空间约为 15 GB 加上 RMIR 模型的大小。

  5. 您已在 Jetson 平台上启用了以下电源模式。这些模式激活所有 CPU 核心,并将 CPU/GPU 时钟频率设置为最大频率,以实现最佳性能。

    sudo nvpmodel -m 0 (Jetson Orin AGX, mode MAXN)
    sudo nvpmodel -m 0 (Jetson Xavier AGX, mode MAXN)
    sudo nvpmodel -m 2 (Jetson Xavier NX, mode MODE_15W_6CORE)
    
  6. 您已通过在 /etc/docker/daemon.json 文件中添加以下行,在 Jetson 平台上将默认运行时设置为 nvidia。编辑文件后,使用 sudo systemctl restart docker 重启 Docker 服务。

    "default-runtime": "nvidia"
    
  7. 获取免费试用许可证以安装 NVIDIA Riva。有关更多信息,请参阅NVIDIA AI Enterprise 试用

可用于部署的模型#

有两种一键式部署选项可用于部署 Riva Speech AI,它们使用来自 NGC 目录的预训练模型

本地 Docker: 您可以使用快速入门脚本来设置本地工作站,并使用 Docker 部署 Riva 服务。继续阅读本指南以使用快速入门脚本。

Kubernetes: Riva Helm Chart 旨在自动化一键式部署到 Kubernetes 集群的步骤。有关更多信息,请参阅Kubernetes 部署嵌入式设备不支持此选项。

除了使用预训练模型外,Riva Speech AI 还可以使用通过 NVIDIA NeMo 微调的自定义模型运行。有关使用 NVIDIA NeMo 创建模型仓库的高级选项的详细信息,请参阅使用 NeMo 进行模型开发 部分。

使用快速入门脚本进行本地部署#

Riva 包含快速入门脚本,可帮助您开始使用 Riva Speech AI Skills。这些脚本旨在用于在本地部署服务,进行测试以及运行示例应用程序。

  1. 下载脚本。转到 Riva 快速入门,根据您使用的平台选择 数据中心嵌入式。选择 文件浏览器 选项卡下载脚本,或使用 NGC CLI 工具 从命令行下载。

    数据中心

    ngc registry resource download-version nvidia/riva/riva_quickstart:2.18.0
    

    嵌入式

    ngc registry resource download-version nvidia/riva/riva_quickstart_arm64:2.18.0
    
  2. 初始化并启动 Riva。初始化步骤会下载并准备 Docker 镜像和模型。启动脚本会启动服务器。

    注意

    此过程在平均互联网连接速度下可能需要长达一个小时。在数据中心上,每个模型在下载后都会针对目标 GPU 进行单独优化。在嵌入式平台上,会下载针对 NVIDIA Jetson 上的 GPU 预优化的模型。

    可选: 使用您的首选配置修改 quickstart 目录中的 config.sh 文件。选项包括

    • 要启用的服务

    • 要从 NGC 检索的模型

    • 模型的存储位置

    • 如果您的系统上安装了多个 GPU,则要使用的 GPU(有关更多详细信息,请参阅本地 (Docker)

    • SSL/TLS 证书的位置

    • 如果使用安全连接,则为密钥文件

    注意

    要使用 Riva 翻译服务,请参阅 quickstart 目录中 config.sh 文件中的 Configure translation services 说明。

    数据中心

    cd riva_quickstart_v2.18.0
    

    注意

    如果您使用的是 vGPU 环境,请将启用统一内存的参数 pciPassthru<vgpu-id>.cfg.enable_uvm 设置为 1,其中 <vgpu-id> 应替换为分配给 VM 的 vGPU ID。例如,要为分配给 VM 的两个 vGPU 启用统一内存,请将 pciPassthru0.cfg.enable_uvmpciPassthru1.cfg.enable_uvm 设置为 1。有关更多信息,请参阅 NVIDIA Virtual GPU Software User Guide

    嵌入式

    cd riva_quickstart_arm64_v2.18.0
    

    注意

    如果您使用的是 Jetson AGX Xavier 或 Jetson NX Xavier 平台,请在 quickstart 目录中的 config.sh 文件中将 $riva_tegra_platform 变量设置为 xavier

    要将 USB 设备用于音频输入/输出,请将其连接到 Jetson 平台,以便自动将其挂载到容器中。

    初始化并启动 Riva

    bash riva_init.sh
    bash riva_start.sh
    
  3. 尝试浏览 GitHub 上的不同教程。如果在云服务提供商(例如 AWS 或 GCP)上运行 Riva 快速入门脚本,请确保您的计算实例具有外部可见的 IP 地址。要运行教程,请将浏览器窗口连接到该外部 IP 地址的正确端口(默认为 8888)。

  4. 完成后关闭服务器。完成这些步骤并尝试推理后,运行 riva_stop.sh 脚本以停止服务器。

有关如何自定义本地部署的更多详细信息,请参阅本地 (Docker)

使用 Riva 转录音频文件#

对于自动语音识别 (ASR),从 Riva 客户端容器数据中心或 Riva 服务器容器嵌入式内部运行以下命令,以执行音频文件的流式和离线转录。如果使用 SSL/TLS,请确保包含 --ssl_server_cert /ssl/server.crt 选项。

  1. 对于数据中心,发出 riva_start_client.sh 脚本以启动客户端容器,其中包含每个服务的示例客户端。该脚本位于快速入门文件夹中(在使用快速入门脚本进行本地部署 部分的步骤 1 中下载)。

    bash riva_start_client.sh
    

    对于嵌入式,此步骤不是必需的,因为示例客户端已存在于上一步启动的 Riva 服务器容器中。

  2. 对于离线识别,运行

    riva_asr_client --audio_file=/opt/riva/wav/en-US_sample.wav
    
  3. 对于流式识别,运行

    riva_streaming_asr_client --audio_file=/opt/riva/wav/en-US_sample.wav
    

使用 Riva 合成语音#

从 Riva 客户端容器数据中心或 Riva 服务器容器嵌入式内部,运行以下命令来合成音频文件。

riva_tts_client --voice_name=English-US.Female-1 \
                --text="Hello, this is a speech synthesizer." \
                --audio_file=/opt/riva/wav/output.wav

音频文件存储在 /opt/riva/wav 目录中。

可以通过使用命令行选项 --online=true 来测试流式 API。但是,由于命令行客户端会将整个音频保存到 .wav 文件中,因此这两个选项之间没有区别。

使用 Riva 翻译文本或语音#

文本到文本翻译 (T2T)#

从 Riva 客户端容器数据中心或 Riva 服务器容器嵌入式内部,运行以下命令以执行从英语到德语的文本到文本翻译。

riva_nmt_t2t_client --source_language_code="en-US" --target_language_code="de-DE" --text="This will become German words."

语音到文本翻译 (S2T)#

从 Riva 客户端容器数据中心或 Riva 服务器容器嵌入式内部,运行以下命令以执行从英语音频到德语文本的语音到文本翻译。

riva_nmt_streaming_s2t_client --audio_file=/opt/riva/wav/en-US_sample.wav --source_language_code="en-US" --target_language_code="de-DE"

语音到语音翻译 (S2S)#

从 Riva 客户端容器数据中心或 Riva 服务器容器嵌入式内部,运行以下命令以执行从西班牙语音频到英语音频的语音到语音翻译。

riva_nmt_streaming_s2s_client --audio_file=/opt/riva/wav/es-US_sample.wav --source_language_code="es-US" --target_language_code="en-US"

后续步骤#

在本快速入门指南中,您学习了使用预训练模型部署 Riva 服务器以及使用 API 的基础知识。具体来说,您:

  • 安装了 Riva 服务器和预训练模型

  • 浏览了一些教程以使用 Riva API

  • 执行了 Riva 命令行客户端来转录音频 (ASR)、合成文本到语音 (TTS) 以及翻译文本或语音 (NMT)。

有关 Riva Speech AI Skills 如何在实际应用中使用的更多示例,您可以按照虚拟助手演示来了解 API 的使用方式。您可以使用可用的 API(如 gRPCPython 库命令行客户端)使用 Riva 构建您自己的语音 AI 应用程序。

要了解有关 Riva Speech AI Skills 的更多信息,请访问 NVIDIA Riva 开发者页面。