问题根源在于tts合成通道未触发、语音助手v2未绑定输出设备、whisper识别结果未送达llm、minimax响应格式异常或音频硬件路由错误,需依次排查五项核心环节。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您已完成Minimax智能体的创建与部署,但在语音通话测试中发现完全无声音输出,既听不到模型响应语音,也无法被外部设备采集到音频信号,则问题可能出在TTS合成通道未触发、语音助手v2未绑定输出设备、Whisper识别结果未送达LLM、MiniMax响应格式异常或音频硬件路由错误。以下是针对性的排查与修复步骤:
一、验证TTS语音合成服务是否已激活并返回有效音频流
TTS是语音反馈链路的最终执行环节,若服务未调用、密钥失效或返回非音频内容(如JSON错误响应),将导致静默。必须确认TTS接口能稳定输出audio/mp3二进制数据。
1、访问MiniMax控制台,在“语音合成”模块中输入测试文本,点击“试听”并打开浏览器开发者工具(Network标签页)。
2、查找名为tts或speech的请求,确认其响应头中包含Content-Type: audio/mp3且响应体为二进制数据(非文本JSON)。
3、若响应为{"code":401,"message":"invalid api_key"},需进入API密钥管理页重新生成密钥,并同步更新至智能体配置中的tts_api_key字段。
4、若响应头显示Content-Type: application/json,说明TTS未启用或被旁路,需检查智能体配置中是否误设"enable_tts": false或缺失tts_provider参数。
二、检查语音助手v2是否启用且默认TTS引擎已正确指定
语音助手v2作为调度中枢,负责将LLM输出文本交由TTS处理并推送到播放设备;若其未启用或未绑定TTS提供者,整个语音通路即处于逻辑断开状态。
1、登录Home Assistant前端,进入【设置】→【系统】→【语音助手】,确认“语音助手v2”开关为开启状态。
2、在语音助手设置页下拉至“语音输出”区域,检查是否已从下拉菜单中手动选择“MiniMax TTS”作为默认提供者,而非留空或显示“无可用引擎”。
3、点击“测试语音输出”,输入“测试语音”,观察日志中是否出现类似tts.minimax_speech: Sending text to TTS service及后续audio playback started记录。
4、若日志仅显示text received但无TTS调用痕迹,说明语音助手未加载MiniMax TTS插件,需确认custom_components/minimax_tts目录结构完整,并执行ha core restart命令重启服务。
三、确认Whisper语音识别结果是否完整传递至MiniMax模型推理层
用户语音经Whisper转写后,必须以纯文本形式、无截断、无编码错误地提交给MiniMax API;若传入为空字符串、base64乱码或含不可见控制字符,模型将无法生成有效响应,自然无后续语音输出。
1、在语音交互流程中启用调试日志,捕获Whisper返回的raw_text字段内容。
使用APIDot进行MiniMax Music 2.6 API工作流程,包括AI音乐生成、歌词创作、器乐制作、音频导出规划、异步任务提交、任务ID...
2、检查该字段是否为非空、无前后空白符、不含\uFFFD等替换字符,例如合法值应为“今天天气怎么样”,而非“ 今天天气怎么样 ”或“天天气怎么样”。
3、若文本含HTML实体(如")、URL编码(%E4%BB%8A%E5%A4%A9)或Markdown符号(**加粗**),需在送入MiniMax前执行decode_entities()、unquote()及strip_markdown()预处理。
4、在MiniMax API调用前插入日志打印:curl -X POST https://api.minimax.chat/v1/text/chatcompletion -H "Authorization: Bearer $TOKEN" -d '{"messages":[{"role":"user","content":"'$RAW_TEXT'"}]}',验证实际发送内容是否与预期一致。
四、排查MiniMax响应格式是否符合语音合成预期结构
MiniMax模型返回的JSON响应中,若assistant消息未包裹于标准text字段,或存在多段content混杂(如含tool_calls、image_urls),TTS模块将因解析失败而跳过合成步骤。
1、捕获MiniMax API原始响应体,定位assistant角色对应的message对象。
2、确认该对象内存在且仅存在一个text字段,且其值为字符串类型(非null、数组或嵌套对象),例如{"role":"assistant","text":"好的,正在为您查询"}而非{"role":"assistant","content":"好的..."}
3、若响应含"choices":[{...}]结构,需提取choices[0].message.text,而非直接使用message字段(部分旧版SDK返回格式不一致)。
4、若模型返回function_call指令,需确保在调用function后,将function返回结果拼接为新user消息重新提交,并等待第二轮含text字段的assistant响应,方可触发TTS。
五、核查音频播放设备路由是否指向可用扬声器
即使TTS成功生成音频流,若播放端未正确选择物理输出设备,或系统音频焦点被抢占,仍会导致无声。该环节独立于TTS与模型,属于终端播放控制层。
1、在运行智能体的设备上执行aplay -l(Linux)或检查Windows声音设置中的“播放设备”,确认默认扬声器设备状态为“已启用”且未显示“未插入”。
2、若使用蓝牙音箱,关闭手机蓝牙并拔掉所有有线耳机,排除音频通道被外部设备劫持可能。
3、在Home Assistant中进入【设置】→【系统】→【语音助手】→【语音输出】,点击当前TTS引擎后的“配置”按钮,检查output_device字段是否明确指定为hw:CARD=Device,DEV=0(Linux ALSA)或对应设备ID,而非默认auto。
4、执行speaker-test -D plughw:CARD=Device,DEV=0 -l 1 -s 1,验证底层音频驱动能否发出测试音;若失败,说明问题已下沉至操作系统音频子系统。










