
三步搭一个本地语音助手NeMo Voice Agent 从零跑通到调优【免费下载链接】SpeechA scalable generative AI framework built for researchers and developers working on Large Language Models, Multimodal, and Speech AI (Automatic Speech Recognition and Text-to-Speech)项目地址: https://gitcode.com/GitHub_Trending/nem/Speech想在自己机器上跑一个能听懂、会说、还能听指令改语速的语音助手NeMo Voice Agent 把流式语音识别、HuggingFace LLM 和语音合成全部放在本地不依赖任何云 API。本文按“装环境 → 起服务 → 对话 → 调优”的顺序带你完整跑通一遍。先过硬件关一张卡就够结论先说1 块 GPU 就能跑瓶颈主要在 LLM 的显存上。用默认的 9B 模型NVIDIA-Nemotron-Nano-9B-v2建议 21GB 显存换 4B 级别的模型13GB 显存起步再配上麦克风和扬声器就齐了。两个提前说好的小限制整套链路目前只支持英文输入输出服务一次只接受一个客户端连接后连的会把先连的顶掉上下文会保留。装环境一条命令建好 conda 环境网页客户端是 Node.js 写的先确认 node/npm 是较新的版本v20用 apt 或 fnm 装都行。然后克隆仓库、建环境git clone https://gitcode.com/GitHub_Trending/nem/NeMo cd NeMo/examples/voice_agent conda env create -f environment.yaml装完执行conda activate nemo-voice激活。依赖版本在 environment.yaml 里锁得比较死第一次拉取可能要几分钟耐心等。三步聊起来起服务、开网页、说话第一个终端启动服务端export PYTHONPATH/path/to/NeMo:$PYTHONPATH python ./server/server.py第二个终端启动网页客户端cd client npm install npm run dev浏览器打开终端里打印的地址默认是 http://[本机IP]:5173。用 Chrome 的话记得把该地址加进chrome://flags/#unsafely-treat-insecure-origin-as-secure白名单否则拿不到麦克风权限。页面上 Mute 键控制麦克风Reset 键清空对话上下文和说话人缓存。对话里能玩什么工具调用和说话人分离默认 LLM 支持工具调用直接用嘴下指令就行“Whats the weather in Paris?” 查天气“Can you speak faster?” 调语速“Reset to the original speaking speed” 恢复默认“Switch to a male voice.” 换声线英音美音也能切。另外默认开了流式 Sortformer 说话人分离整场对话最多区分 4 个说话人不同回合会带上 speaker 标签LLM 能分清是谁在说话。环境吵的时候它容易分错把diar.enabled设为 false 可以关掉。还有个细节机器人说话时你插一句 “uh-huh”、“yeah” 这类附和词它不会被打断词表在 server/backchannel_phrases.yaml 里可以按自己的习惯改。调优换大脑、换声音、控延迟可调项集中在 server/server_configs/default.yaml常用的几处换 LLM改 llm.model比如换成 Qwen2.5-7B-Instructllm.type 可设为 vllm、hf 或 auto默认 auto先试 vLLM不行再回退 HuggingFace。有多卡的话可以把各组件分到不同 GPU。定人设llm.system_prompt 支持直接写字符串或指向文本文件server/example_prompts/ 里有现成模板。换声音TTS 默认是轻量的 Kokoro-82M想要多语言可以换 magpie_tts_multilingual_357m纯英文场景也可以用 FastPitch-HiFiGAN。控延迟希望它更快交还话语权把 vad.stop_secs默认 1.2 秒调小追求低延迟就保持 enable_reasoning: false别开思考模式llm.generation_kwargs 里的 temperature 调低回答会更稳。踩坑清单这几个报错见一次就懂提示无法访问麦克风或报 enumerateDevices 错误浏览器没放行麦克风按前面说的加白名单然后重启浏览器。模型下载报 I/O 错误设 HF_HUB_CACHE 换个缓存目录或者先把模型下到本地、在配置里填本地路径。npm run dev 报 SyntaxError 或 node:internal/errors前者是 Node 版本太老升级即可后者删掉 client/node_modules 重装再跑。识别效果时好时坏默认的 ASR 和分离模型对噪声不鲁棒嘈杂环境建议配降噪麦克风或者干脆在安静点的地方说话。跑通到这里你就有一条完全本地化的语音对话链路。后续想加自己的工具照着 server.py 里注册工具的写法往里加函数就行整体骨架不用动。【免费下载链接】SpeechA scalable generative AI framework built for researchers and developers working on Large Language Models, Multimodal, and Speech AI (Automatic Speech Recognition and Text-to-Speech)项目地址: https://gitcode.com/GitHub_Trending/nem/Speech创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考