故障排除
目录
故障排除#
要分享有关此版本的反馈或提出问题,请访问我们的 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