You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

开发带麦克风输入的Jarvis聊天机器人遇jarvis_api模块缺失错误求助

解决jarvis_api模块找不到的问题

问题原因

你安装的JarvisAI和npm的api-jarvis都不是代码依赖的jarvis_api模块。这段代码是针对**NVIDIA Jarvis(现更名NeMo Conversational AI)**的语音识别服务,jarvis_api是从Jarvis官方提供的GRPC proto文件生成的Python客户端模块,并非PyPI上的第三方包。

解决步骤

1. 卸载无关依赖

先移除错误安装的包,避免冲突:

pip uninstall -y JarvisAI

npm i api-jarvis是Node.js包,和Python代码无关,可直接删除。

2. 生成jarvis_api模块

需要从Jarvis的官方proto文件生成Python GRPC代码:

  • 下载Jarvis的proto文件集合(包含audio.proto、jarvis_asr.proto等)
  • 安装grpcio-tools工具:
    pip install grpcio-tools
    
  • 执行命令生成代码,替换./proto_dir为你存放Jarvis proto文件的目录:
    python -m grpc_tools.protoc -I./proto_dir --python_out=. --grpc_python_out=. ./proto_dir/jarvis_api/*.proto
    
    执行后会生成jarvis_api目录,包含所需的audio_pb2.py、jarvis_asr_pb2.py、jarvis_asr_pb2_grpc.py文件。

3. 修正代码中的两处错误

你的代码里有两个小问题会导致运行失败:

  • MicrophoneStream类的__exit__方法中,self.audio_stream应该改为self._audio_stream(变量名定义时带下划线)
  • main函数里的device=args.input_device应该改为device=args.input_devices(命令行参数定义的是--input-devices)

修正后的关键代码片段:

# __exit__方法修正
def __exit__(self,type,value,traceback):
    self._audio_stream.stop_stream()
    self._audio_stream.close()
    self.closed= True
    self._buff.put(None)
    self._audio_interface.terminate()

# main函数中设备参数修正
with MicrophoneStream(RATE,CHUNK,device=args.input_devices) as stream:

4. 确保Jarvis服务正在运行

代码默认连接localhost:50051,需要确保你已经启动了Jarvis的ASR服务,否则会出现GRPC连接错误。

内容的提问来源于stack exchange,提问作者Abhishek Shahi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 10:05:21