要将 FunASR(一个自动语音识别工具)接入 Home Assistant,你可以按照以下步骤进行配置。以下是一个基本的指南,帮助你实现 FunASR 与 Home Assistant 的集成。
FunASR 本身不支持 Wyoming 协议,因此需要对其进行修改后重新封装。Wyoming 协议用于语音助手和 Home Assistant 的语音集成。
要让 Docker 容器中的 FunASR 支持 Wyoming 协议并接入 Home Assistant 语音助手,需要进行以下步骤:
1. 安装 FunASR
首先,你需要在你的服务器或设备上安装 FunASR。你可以通过以下步骤安装 FunASR:
docker pull funasr/funasr:latest
2. 配置 FunASR
在安装完成后,你需要配置 FunASR 以启动语音识别服务。你可以使用 FunASR 提供的示例配置文件,或者根据你的需求进行自定义配置。
# 启动 FunASR 服务
docker run -d --name funasr -p 10300:10300 funasr/funasr:latest
3. 安装 Home Assistant
如果你还没有安装 Home Assistant,可以参考官方文档进行安装:Home Assistant 安装指南。
4. 配置 Home Assistant
在 Home Assistant 中,你可以通过 rest_command
或 webhook
的方式与 FunASR 进行交互。以下是一个简单的配置示例:
# configuration.yaml rest_command: funasr_transcribe: url: "http://your-funasr-server-ip:port/asr" method: POST content_type: "application/json" payload: '{"audio_file": "{{ audio_file }}"}'
5. 创建自动化或脚本
你可以创建一个自动化或脚本,当 Home Assistant 检测到语音输入时,调用 FunASR 进行转录。
# automations.yaml - alias: "Transcribe Audio with FunASR" trigger: - platform: state entity_id: media_player.your_media_player to: "playing" action: - service: rest_command.funasr_transcribe data: audio_file: "{{ state_attr('media_player.your_media_player', 'media_content_id') }}" - service: notify.notify data: message: "Transcription: {{ states('sensor.funasr_transcription') }}"
6. 测试与调试
完成配置后,你可以通过 Home Assistant 的界面或命令行测试你的配置。确保 FunASR 服务正常运行,并且 Home Assistant 能够成功调用 FunASR 进行语音识别。
7. 进一步优化
根据你的需求,你可以进一步优化配置,例如:
添加错误处理机制。
调整 FunASR 的识别参数以提高准确性。
将转录结果用于其他自动化场景。
参考文档
通过以上步骤,你应该能够成功将 FunASR 接入 Home Assistant,并实现语音识别功能。如果你在配置过程中遇到问题,可以参考相关文档或社区论坛寻求帮助。