Popular blog tags

funasr 接入 home assistant

Published
funasr 接入 home assistant
 
 
 

要将 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_commandwebhook 的方式与 FunASR 进行交互。以下是一个简单的配置示例:

yaml
Copy
# 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 进行转录。

yaml
Copy
# 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,并实现语音识别功能。如果你在配置过程中遇到问题,可以参考相关文档或社区论坛寻求帮助。