为 vanna-chat 组件添加本地语音输入支持
作者: lmangueira创建于 2026年1月16日更新于 2026年1月16日
您的功能请求是否与问题有关?请描述。
希望使用语音输入与 Vanna 聊天界面进行交互的用户必须实现自定义解决方案,将其注入到 Shadow DOM 中。这种解决方案很脆弱,在组件更新时可能会出现问题。现代聊天界面越来越期望支持语音输入,特别是以下情况:
- 移动用户,键入操作繁琐
- 双手忙碌的场景(工业环境)
- 可访问性需求(机体障碍的用户)
请描述您想要的解决方案
在 <vanna-chat> Web 组件中添加一个原生语音输入按钮,位于发送按钮旁边。此功能应:
- 使用浏览器的 Web Speech API 进行零成本的客户端转录
- 可通过属性进行配置(例如,
<vanna-chat voice-input="true">) - 在录音期间提供视觉反馈(闪烁动画、状态文本)
- 在发送之前将输入字段填充为转录的文本,以供用户审查
- 优雅地处理错误(权限被拒绝、未检测到语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、
内容来源: vanna-ai/vanna