[BUG]: Speak Your Prompt isn’t working

AnythingLLM 里点麦克风后图标有反应、却始终无法把语音转成提示词,通常发生在本地开发环境或桌面版的 STT(语音转文字)链路上;优先排查浏览器/系统麦克风权限,以及录音是否被截断、Whisper 是否对静音或半截音频产生幻觉文本。

快速结论:AnythingLLM 里点麦克风后图标有反应、却始终无法把语音转成提示词,通常发生在本地开发环境或桌面版的 STT(语音转文字)链路上;优先排查浏览器/系统麦克风权限,以及录音是否被截断、Whisper 是否对静音或半截音频产生幻觉文本。

适用环境:AnythingLLM 本地开发环境(Local development);另有用户报告 AnythingLLM Desktop v1.16.1、macOS、本地 Whisper STT(Xenova/whisper-tiny)、外接 USB 麦克风。Issue 正文未给出 Python、CUDA、PyTorch 或显卡版本。

最快修复方案:暂无确认的一步修复方案。可优先尝试 Issue 中用于缓解的临时手段:提高麦克风系统输入电平、改用快速点按而非长按麦克风按钮、等麦克风进入稳定监听状态后再说话。

注意事项:上述三点只是缓解措施,并非根因修复,Issue 中并未确认能彻底解决录音截断问题;官方回复把原因归为浏览器权限或浏览器不支持 STT,而后续诊断显示录音实际有信号但被中途截断,并伴随 Whisper 幻觉文本,因此权限修复不一定对所有情况有效。

问题场景

用户在 AnythingLLM 中使用 Speak Your Prompt(语音输入提示词)功能时,点击麦克风图标后录音似乎已经启动,但语音始终无法转换成提示词。原报告者是在本地开发环境(Local development)下运行。后续跟进的用户则在 AnythingLLM Desktop v1.16.1、macOS、本地 Whisper STT(Xenova/whisper-tiny)加外接 USB 麦克风的组合下复现,并做了较深入的诊断。

官方在评论中先判断为浏览器权限或浏览器不支持 STT,但同时指出麦克风图标仍然被渲染。报告者表示已授予包括麦克风在内的权限,问题依旧。

报错原文

[BUG]: Speak Your Prompt isn't working

诊断中出现的相关现象文本(原文):

[BLANK_AUDIO] >> <real partial phrase> >> Thank you.
Audio recording was blank

原因分析

根据 Issue 讨论,可能原因有两层:

  • 官方初步判断:浏览器权限未开启,或当前浏览器不支持 STT,但界面仍然渲染了麦克风图标。在本地开发环境下,由于不是 HTTPS,浏览器可能默认不弹出权限提示,从而让用户以为已经授权。
  • 后续诊断的实际情况:录音并非完全没有采集到声音,而是采集到的音频在句子中途被截断,开头通过、后半段丢失;对于截断或接近静音的部分,whisper-tiny 会幻觉出填充文本(如 “(soft music)”、重复短语、凭空追加的 “Thank you.”)。”Audio recording was blank” 提示在这些部分采集的情况下也会出现,容易误导排查方向。

诊断者已排除的项包括:输入设备选错、macOS 语音控制干扰、信号链中存在聚合/回环音频设备、应用麦克风权限(用 tccutil reset Microphone 重置后干净重新授权,无变化)、屏幕使用时间/内容与隐私限制、麦克风硬件或系统音频管线本身(用 ffmpeg -f avfoundation 直接录音可正常采到信号)、3001 端口冲突、Whisper 模型文件不可达(确认 HTTP 200 且 tokenizer.json 有效)。

环境排查

  • 确认 AnythingLLM 的运行方式:本地开发环境还是桌面版。
  • 确认浏览器是否支持 STT,以及麦克风权限是否真正授予(本地开发非 HTTPS 时可能不弹出授权提示)。
  • 确认所选输入设备是否为实际要使用的麦克风。
  • 确认 macOS 麦克风权限(可通过 tccutil reset Microphone 重置后重新授权验证)。
  • 确认系统输入电平是否偏低(诊断者自述约 40-50%)。
  • 确认是否存在聚合/回环音频设备、端口 3001 冲突。
  • 确认本地 Whisper 模型文件是否可达(诊断中检查 tokenizer.json 返回 HTTP 200)。
  • Issue 未提供 Python、CUDA、PyTorch、显卡版本信息,无需据此排查。

解决步骤

  1. 先按官方方向排查浏览器与系统权限:确认浏览器支持 STT,并为当前站点授予麦克风权限;本地开发环境注意非 HTTPS 可能不弹出权限提示,需手动在浏览器设置里放行。
  2. 如果权限已确认无误但问题依旧,按后续诊断的思路继续排查:用系统级录音工具(如 ffmpeg -f avfoundation)验证麦克风硬件与系统音频管线是否正常,确认能采到高于静音的实时信号。
  3. 确认没有选错输入设备、没有聚合/回环音频设备介入、没有端口 3001 冲突、Whisper 模型文件可达。
  4. 在此基础上试 Issue 中已验证可缓解的三个操作:
    ① 适当提高麦克风系统输入电平;
    ② 用一次快速点按触发麦克风,不要长按(长按会产生系统按键重复事件,而该控件更像启停切换,可能反复触发开始/停止);
    ③ 触发后等待图标进入稳定监听状态再说话。
  5. 如果以上都无效,说明可能仍存在应用内采集/截断管线的缺陷,Issue 中并未给出确定的最终修复,需继续关注或另行上报。

验证方法

重新使用 Speak Your Prompt 说话,观察是否能稳定得到与所说内容一致的完整转录文本,而不是只截到句子开头、或混入 “(soft music)”、”Thank you.” 等幻觉填充内容;同时确认 “Audio recording was blank” 提示不再出现。若仍出现部分转录加幻觉文本,说明采集截断问题尚未解决。

参考来源

Mintplex-Labs/anything-llm #2298

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 25744

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注