#1075·vanna

为 vanna-chat 组件添加本地语音输入支持

作者: lmangueira创建于 2026年1月16日更新于 2026年1月16日

您的功能请求是否与问题有关?请描述。

希望使用语音输入与 Vanna 聊天界面进行交互的用户必须实现自定义解决方案,将其注入到 Shadow DOM 中。这种解决方案很脆弱,在组件更新时可能会出现问题。现代聊天界面越来越期望支持语音输入,特别是以下情况:

  • 移动用户,键入操作繁琐
  • 双手忙碌的场景(工业环境)
  • 可访问性需求(机体障碍的用户)

请描述您想要的解决方案

<vanna-chat> Web 组件中添加一个原生语音输入按钮,位于发送按钮旁边。此功能应:

  1. 使用浏览器的 Web Speech API 进行零成本的客户端转录
  2. 可通过属性进行配置(例如,<vanna-chat voice-input="true">)
  3. 在录音期间提供视觉反馈(闪烁动画、状态文本)
  4. 在发送之前将输入字段填充为转录的文本,以供用户审查
  5. 优雅地处理错误(权限被拒绝、未检测到语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、无法识别语音、