故障排除
目录
故障排除#
要分享有关此版本的反馈或提出问题,请访问我们的 NVIDIA Riva 开发者论坛。
NGC#
在从 NGC 拉取镜像或模型之前,请使用您的 API 密钥运行以下命令。
docker login nvcr.io
ngc config set
要查找 Riva 相关资料,请访问 NGC 目录。
模型导出和 ServiceMaker#
如果
.riva
文件已加密,请为riva-build
和riva-deploy
提供加密密钥。如果您想覆盖先前生成的 RMIR(Riva 模型中间表示)文件或包含 Triton Inference Server 工件的目录,请将
-f
传递给riva-build
或riva-deploy
。
服务#
通用
如果服务器崩溃,如果在 Kubernetes 环境中运行,pod 应该会自行重启。通过轮询服务器(例如每 10 秒一次)以确定其状态,可以在 Kubernetes 环境之外实现类似的功能。
/bin/grpc_health_probe -addr=:50051
服务可能会接受超过引用的最大流数量。如果发生这种情况,性能将开始下降,并且连接可能会开始超时。
GPU 利用率和内存消耗可通过端口
:8002
上的 API 获得。有关更多信息,请参阅 Triton Inference Server 指标。
自动语音识别 (ASR)
对于非常长的音频,请使用流式识别服务。
对于嘈杂的音频,请使用 Jasper 声学模型以提高准确性。提供的英语 Jasper 模型经过训练,可以应对中等程度的背景噪声。提供的英语 QuartzNet 模型对背景噪声的鲁棒性不如 Jasper 模型。
model
可以在RecognitionConfig
中设置。使用流式识别时,客户端发送音频块,通常来自麦克风。客户端可以使用任何块大小。Riva 服务器根据服务器配置创建 100 毫秒或 800 毫秒的块。流式识别模式比离线识别模式使用更多的 GPU 内存。
在离线识别模式下,客户端发送包含所有音频的请求。服务器在后台将音频分段成块。
服务器自动将 8khz 音频上采样到 16khz。
如果您想使用特定领域的 ASR 模型,您可以微调声学模型或训练特定领域的语言模型并使用 Riva 部署。
为了充分利用硬件,您可能希望实时使用多个流。在客户端示例中,只需通过设置
--num_parallel_requests
来指定并行流的数量即可。
文本到语音 (TTS)
对于实时应用程序,请使用在线流式模式(命令行客户端中的选项
--online=True
,或 gRPC API 中的函数SynthesizeOnline
)。为了充分利用硬件,您可能希望实时使用多个流。在客户端示例中,只需通过设置
--num_parallel_requests
来指定并行流的数量即可。使用超过您的硬件配置支持的流可能会导致问题,例如某些请求超时。
客户端集成#
如果您遇到以下错误
Cannot create GRPC channel at uri localhost:50051
,请检查 Riva 服务器是否已启动,方法是查看日志docker logs riva-speech
。
Riva Helm 部署#
使用 helm 安装时可能会发生各种问题。下面捕获了一些更常见的问题
在安装期间,要观看 init 容器的日志,请运行
kubectl logs $POD riva-model-init --follow
在安装期间,要观看服务器的日志(服务器在上述操作完成之前不会启动),请运行
kubectl logs $POD --follow
要确保 pod 正确启动,请运行
kubectl get pods -A
要验证哪些服务正在运行,请运行
kubectl get services
如果使用来自 traefik 的负载均衡来验证入口路由,请运行
kubectl get ingressroutes
要确保入口路由指向正确的服务,请运行
kubectl get service `kubectl get ingressroutes riva-ingressroute -o=jsonpath='{..spec.routes[0].services[0].name}'
SpeechSquad#
SpeechSquad 容器连接必须正常运行。
POD=`kubectl get pods | grep speechsquad | awk '{print $1}'` kubectl exec -it $POD -- /bin/bash