实时AI音频助手

一个Home Assistant自定义组件,集成了OpenAI实时API和Google Gemini Live API,用于实时语音和文本对话,支持MCP服务器。

  • by SJang1
  • Python
  • 本地部署
  • 8 星标
  • 更新于
在 GitHub 查看 SJang1/ha-openai-realtime

使用说明

家庭助理实时AI音频

与集成的家庭助理自定义组件 OpenAI的实时API 和 谷歌Gemini Live API 用于实时语音和文本对话,并支持MCP(模型上下文协议)服务器。

🎯 包括集成

集成 API 语音模型
OpenAI实时 OpenAI实时API GPT-4o实时
双子座直播 Google Gemini Live API Gemini 2.0 Flash

这两种集成都以最小的延迟提供了本机语音转语音功能。

特性

共同特征(两种集成)

  • 实时对话:基于WebSocket的低延迟响应
  • 母语语音转换:直接音频处理,无需单独的STT/TTS管道
  • 语音支持:具有可配置设置的多种语音选项
  • 家庭助理集成:用于控制智能家居设备的内置工具
  • 对话代理:担任家庭助理对话代理
  • 媒体播放器实体:直接控制音频输入/输出
  • 二进制传感器:监控连接、听、说和处理状态
  • 自定义Lovelace卡:基于浏览器的麦克风,带实时可视化工具

OpenAI实时特定

  • MCP服务器集成:连接到外部MCP服务器以扩展工具功能
  • 定制STT/TTS提供商:使用实时API进行语音识别和合成

Gemini Live特定

  • 会话恢复:断开连接时自动恢复会话
  • 图像/音频文件输入:发送多模式对话的图像和音频文件
  • 谷歌搜索集成:内置谷歌搜索工具

隐私和个性化

这种集成提供了一种可选的“个性化”功能,可以通过使用对话内容来随着时间的推移调整行为,从而改进和定制AI响应。出于隐私原因,默认情况下禁用个性化。

  • 实现个性化有什么作用: 该集成可以向外部AI服务发送额外的对话内容或元数据,以使其能够提供更个性化的响应。
  • 违约: 关闭。您必须在配置过程中明确启用它,并确认您接受隐私影响。
  • 建议: 除非您理解并接受数据处理的含义并信任服务提供商,否则请禁用个性化设置。

如果启用个性化,请查看服务提供商的隐私政策和数据保留做法。

建筑

与默认的家庭助理语音管道(STT)不同→ AI → TTS),这些集成使用本地语音到语音API:

┌───────────────────────────────────────────────────────────┐
│ Default HA Pipeline                                       │
│ ┌─────┐    ┌────────────┐    ┌─────┐    ┌─────┐           │
│ │ Mic │───▶│ STT Engine │───▶│ AI  │───▶│ TTS │───▶🔊     │
│ └─────┘    └────────────┘    └─────┘    └─────┘           │
└───────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────┐
│ OpenAI / Gemini Live Pipeline                        │
│ ┌─────┐    ┌───────────────────────────────┐            │
│ │ Mic │───▶│ Realtime API                  │───▶🔊      │
│ └─────┘    │ (Native Speech-to-Speech)     │            │
│            └───────────────────────────────┘            │
└─────────────────────────────────────────────────────────┘

需求

  • 家庭助理2024.1.0或更高版本
  • OpenAI实时:可访问实时API的OpenAI API密钥
  • Gemini Live:谷歌人工智能API密钥(Gemini API)
  • Python 3.11或更高版本

注意:详细的配置和特定于平台的文档已移至每个集成文件夹中。请参阅:

以下部分为每个集成提供了简洁的快速配置摘要。有关完整详细信息和高级选项,请打开上面相应组件文件夹中的文件。

快速配置(最少示例)

下面是设置每个集成时可能需要的紧凑配置片段和关键设置。这些只是一个快速参考——有关扩展示例和边缘案例选项,请参阅组件文件夹。

OpenAI实时-快速配置

在集成UI中或在适用的情况下通过YAML公开的核心选项:

  • api_key:具有实时访问功能的OpenAI API密钥
  • model:实时模型(示例: gpt-4o-realtime-preview)
  • voice:选择声音(示例: alloy)
  • temperature:浮点数0.0–2.0
  • mcp_servers:MCP服务器配置列表(SSE或Stdio)

MCP服务器条目(SSE)的最小YAML示例:

# OpenAI Realtime MCP server example
- name: homeassistant
   url: http://localhost:8123/api/mcp
   type: sse
   token: YOUR_LONG_LIVED_ACCESS_TOKEN

使用集成UI时,请提供 api_key 并在那里配置型号/语音/温度。通过集成选项添加MCP服务器。

Gemini Live-快速配置

在集成UI中或在适用的情况下通过YAML公开的核心选项:

  • api_key / google_api_key:双子座的谷歌人工智能密钥
  • model:Gemini模型(示例: gemini-2.0-flash-exp)
  • voice:语音名称(示例: Puck)
  • ephemeral_token (可选):用于客户端身份验证
  • enable_session_resumption:真/假
  • enable_affective_dialog:真/假(v1alpha)
  • enable_proactive_audio:真/假(v1alpha)

最小设置示例(面向UI):

# Gemini Live basic settings (example representation)
model: gemini-2.0-flash-exp
voice: Puck
enable_session_resumption: true
# optional: ephemeral_token: xxxxx

对于高级功能(会话恢复句柄、主动音频、图像输入),请打开组件文件夹中的Gemini文档: 定制组件/gemini_live/GOOGLE_DOC.md

安装

HACS(推荐)

  1. 在家庭助理中打开HACS
  2. 点击“集成”
  3. 单击右上角的三个点
  4. 选择“自定义存储库”
  5. 添加此存储库URL: https://github.com/your-username/ha-realtime-ai-audio
  6. 安装“家庭助理实时AI音频”
  7. 重启 Home Assistant

手动安装

  1. 下载存储库
  2. 将这两个文件夹复制到家庭助理 custom_components 目录:
    • custom_components/openai_realtime -用于OpenAI集成
    • custom_components/gemini_live_audio -用于Gemini集成
  3. 重启 Home Assistant

🔵 OpenAI实时集成

配置

  1. 首选 设置 → 设备和服务 → 添加集成
  2. 搜索“OpenAI实时”
  3. 输入您的OpenAI API密钥
  4. 配置设置:
    • 模型:选择实时模型(默认值: gpt-4o-realtime-preview)
    • 语音:选择音频响应的声音
    • 说明:自定义系统说明
    • 温度:响应创造力(0.0-2.0)
    • 最大输出令牌数:最大响应长度
  5. 可选择添加MCP服务器以扩展功能

MCP服务器配置

MCP(模型上下文协议)服务器允许您使用外部工具扩展AI的功能。此集成支持两种类型的MCP服务器:

MCP服务器类型

类型 描述 用例
上海证券交易所 基于HTTP的服务器发送事件 远程服务器、云托管MCP服务
工作室 本地子流程通信 本地工具、基于CLI的MCP服务器

SSE服务器(建议用于HASSIO)

SSE服务器通过HTTP/HTTPS进行通信,并直接传递给OpenAI的实时API。这是家庭助理操作系统(HASSIO)安装的推荐方法。

要添加SSE服务器,请执行以下操作:

  1. 转到集成选项→ 添加SSE服务器
  2. 配置:
    • 服务器名称:唯一标识符(仅限字母、数字、下划线、连字符)
    • 服务器URLHTTP/HTTPS端点(例如。, http://localhost:8123/api/mcp)
    • 代币 (可选):身份验证令牌(如果需要)

Stdio服务器

Stdio服务器作为本地子进程运行,并通过stdin/stdout进行通信。集成在本地连接到这些服务器,并将它们的工具注册为函数调用。

⚠️ 重要提示:Stdio服务器要求该命令在Home Assistant主机系统上可用。

要添加Stdio服务器,请执行以下操作:

  1. 转到集成选项→ 添加Stdio服务器
  2. 配置:
    • 服务器名称:唯一标识符
    • 命令:要运行的可执行文件(例如。, python, node, /usr/bin/my-mcp-server)
    • 参数:逗号分隔的参数(例如。, -m,mcp_server,--port,3000)
    • 环境变量:逗号分隔的键=值对(例如。, API_KEY=xxx,DEBUG=true)

⚠️ HASSIO/家庭助理操作系统限制

Node.js(npx, node)命令在家庭助理操作系统(HASSIO)上不起作用 因为:

  • HASSIO是一个最小的容器化Linux环境
  • Node.js没有预先安装,无法轻松添加
  • 主机操作系统是只读的,不支持软件包安装

HASSIO用户的解决方案:

  1. 使用SSE模式而不是Stdio (推荐)

    许多MCP服务器支持这两种模式。使用Node.js在单独的机器上运行服务器,并通过SSE连接:

    # On a machine with Node.js (not HASSIO)
    npx @anthropic/mcp-server-brightdata --transport sse --port 3000
    

    然后使用URL配置为SSE服务器 http://your-server-ip:3000/sse

  2. 使用 uvx 基于Python的MCP服务器 ✅ 在HASSIO工作!

    如果 uv/uvx 您的Home Assistant操作系统上尚未安装,您可以在每次启动时使用附加组件进行安装:

    👉 ha-uv附加组件 -在家庭助理操作系统上安装uv/uvx

    安装后,此集成会自动配置所需的环境变量 uv 和 uvx 在HASSIO中工作的命令:

    Command: uvx
    Args: mcp-server-fetch
    

    集成会自动设置:

    • UV_TOOL_DIR=/config/.uv/tools
    • UV_CACHE_DIR=/config/.uv/cache
    • TMPDIR=/config/.uv/tmp

    这确保了uvx使用 /config 目录(具有exec权限)而不是 /tmp (HASSIO中没有xec)。

  3. 直接使用Python模块

    如果一个包安装在HA的Python环境中:

    Command: python
    Args: -m,mcp_server_filesystem,/config
    
  4. 在Docker容器中运行MCP服务器

    如果在Docker中运行HA(不是HASSIO),请将MCP服务器容器添加到您的compose文件中:

    mcp-server:
      image: node:20-alpine
      command: npx @anthropic/mcp-server-example --transport sse --port 3000
      ports:
        - "3000:3000"
    
  5. 创建家庭助理附加组件

    构建一个包含MCP服务器的自定义插件。该插件在其自己的容器中运行,包含所有依赖项。

MCP服务器配置示例

家庭助理内置MCP服务器(SSE)

Home Assistant具有内置的MCP服务器集成,可将您的所有实体和服务暴露给MCP客户端。这是让AI完全访问您的智能家居的最简单方法。

步骤1:启用MCP服务器集成

  1. 添加到您的 configuration.yaml:

    mcp_server:
    
  2. 重启 Home Assistant

  3. MCP服务器将在以下地点提供:

    http://localhost:8123/api/mcp
    

    或者,如果使用HTTPS:

    https://localhost:8123/api/mcp
    

有关更多详细信息,请参阅 家庭助理MCP服务器文档.

步骤2:配置OpenAI实时以使用它

在设置或配置OpenAI实时集成时:

  1. 首选 设置 → 设备和服务 → OpenAI实时 → 配置
  2. 添加MCP服务器:
    • 名字: homeassistant (或您喜欢的任何名称)
    • 统一资源定位符: http://localhost:8123/api/mcp
    • 代币:创建长效访问令牌:
      1. 转到您的个人资料(单击侧栏中的姓名)
      2. 滚动到“长期访问令牌”
      3. 点击“创建令牌”
      4. 复制令牌并粘贴到此处

配置示例

# MCP Server settings in OpenAI Realtime integration
name: homeassistant
url: http://localhost:8123/api/mcp
token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...  # Your long-lived access token

这能带来什么

连接HA MCP服务器后,AI可以访问:

  • 所有实体状态和属性
  • 所有可用服务
  • 区域和设备信息
  • 比单独的内置工具更全面的控制

备注:内置工具(get_entity_state, call_service等等)仍然与MCP服务器一起工作。MCP服务器提供了额外的功能。

Bright Data MCP服务器(SSE-外部机器)

Bright Data MCP服务器 提供网页抓取功能。

在使用Node.js的机器上:

npx @anthropic/mcp-server-brightdata --transport sse --port 3001

在OpenAI实时集成中:

  • 类型上海证券交易所
  • 名字: bright_data
  • 统一资源定位符: http://your-nodejs-machine:3001/sse
  • 代币:您的Bright Data API密钥(如果需要)

文件系统MCP服务器(Stdio-Python)

对于使用Python的HA Core安装:

  • 类型音频:
  • 名字: filesystem
  • 命令: python
  • 参数: -m,mcp_server_filesystem,/config

自定义MCP服务器(标准-本地二进制)

如果您有已编译的MCP服务器二进制文件:

  • 类型音频:
  • 名字: my_custom_server
  • 命令: /usr/local/bin/my-mcp-server
  • 参数: --config,/config/mcp/config.yaml
  • 环境: DEBUG=true,LOG_LEVEL=info

管理MCP服务器

您可以通过集成选项管理MCP服务器:

  1. 首选 设置 → 设备和服务 → OpenAI实时 → 配置
  2. 从以下选项中选择:
    • 添加SSE服务器:添加新的基于HTTP的MCP服务器
    • 添加Stdio服务器:添加新的基于子流程的MCP服务器
    • 管理现有服务器:编辑、启用/禁用或删除服务器
  3. 更改后,集成将自动重新加载

MCP服务器命名规则

服务器名称必须与模式匹配 ^[a-zA-Z0-9_-]+$:

  • ✅ home_assistant, bright-data, myServer1
  • ❌ Home Assistant, my server, 서버이름

名称中的空格和特殊字符将自动转换为下划线。

内置家庭助手工具

该集成提供了以下用于控制Home Assistant的内置工具:

get_entity_state

获取任何家庭助理实体的当前状态。

"Turn on the living room light" → Checks light.living_room state

呼叫服务

致电任何家庭助理服务。

"Set the thermostat to 72 degrees" → climate.set_temperature

get_entities_by_domain

列出域中的所有实体。

"What lights do I have?" → Lists all light entities

获取反应时间

获取特定区域中的所有实体。

"What devices are in the bedroom?" → Lists entities in bedroom area

用法

作为对话代理

  1. 首选 设置 → 语音助理
  2. 创建新助手或编辑现有助手
  3. 选择“OpenAI实时”作为对话代理
  4. 与任何语音输入法(辅助、语音卫星等)一起使用

使用媒体播放器

该集成创建了一个用于直接音频控制的媒体播放器实体:

  • 播放:开始收听音频输入
  • 停止:停止音频处理并取消响应

二进制传感器

监控实时连接的状态:

传感器 说明
binary_sensor.openai_realtime_connected WebSocket连接状态
binary_sensor.openai_realtime_listening 用户正在讲话(检测到VAD)
binary_sensor.openai_realtime_speaking 助理正在响应
binary_sensor.openai_realtime_processing 正在处理请求

服务

openai_realtime.send_message

发送短信并获得回复。

service: openai_realtime.send_message
data:
  message: "What's the weather like?"

openai_realtime.send_audio

将音频数据直接发送到API。

service: openai_realtime.send_audio
data:
  audio_data: "<base64_encoded_pcm_audio>"

openai_realtime.start_listening

启动音频会话。

service: openai_realtime.start_listening

openai_realtime.stop_listening

停止音频处理。

service: openai_realtime.stop_listening

openai_realtime.add_mcp_server

在运行时添加MCP服务器。

service: openai_realtime.add_mcp_server
data:
  name: "my_server"
  url: "https://mcp.example.com"
  token: "optional_token"

openai_realtime.clear_convention

清除对话历史记录。

service: openai_realtime.clear_conversation

示例命令

  • “打开厨房的灯”
  • “客厅的温度是多少?”
  • “将卧室恒温器设置为68度”
  • “把所有的门都锁上”
  • “什么灯亮着?”

Lovelace卡(浏览器麦克风)

此集成包括一个自定义的Lovelace卡,该卡可直接从浏览器的麦克风捕获音频,并将其流式传输到OpenAI Realtime API。

第一步:添加Lovelace资源

集成会尝试自动注册卡,但您可能需要手动添加:

  1. 首选 设置 → 仪表盘 → ⋮(三个点) → 资源
  2. 点击 添加资源
  3. 输入:
    • 统一资源定位符: /openai_realtime/openai-realtime-card.js?v=(random_int_for_debug/update)
    • 资源类型:JavaScript模块
  4. 点击 创建

或者,添加到您的 configuration.yaml:

lovelace:
  resources:
    - url: /openai_realtime/openai-realtime-card.js
      type: module

步骤2:将卡片添加到仪表板

备注:此卡不支持可视化编辑器。当您看到错误“不支持可视化编辑器”或 setConfig is not a function,请改用YAML编辑器。

使用YAML编辑器

  1. 转到您的仪表板并单击 编辑 (铅笔图标)
  2. 点击 +添加卡片
  3. 向下滚动并选择 手册 (或单击三个点并选择“在YAML中编辑”)
  4. 粘贴以下配置:
type: custom:openai-realtime-card
title: OpenAI Realtime Voice
show_transcript: true
show_waveform: true
mute_while_speaking: true
  1. 点击 保存

编辑现有卡

如果以后需要编辑卡片:

  1. 点击卡片上的三个点(⋮)
  2. 选择 编辑
  3. 如果您看到“不支持可视化编辑器”,请单击 在YAML中编辑
  4. 进行更改并保存

卡片功能

  • 一键通:按住麦克风按钮发言
  • 音频可视化:说话时实时波形显示
  • 转录本:实时显示您的演讲和人工智能响应
  • 音频播放:自动播放AI语音响应

卡配置选项

选项 类型 默认值 描述
title string “OpenAI实时” 卡片标题
show_transcript boolean true 显示对话记录
show_waveform boolean true 显示音频波形可视化
mute_while_speaking boolean true 在AI说话时将麦克风静音,以防止回声/反馈。吃起来 false 允许中断AI(需要耳机或良好的硬件回声消除)

浏览器要求

  • 支持Web Audio API的现代浏览器
  • 已授予麦克风权限
  • HTTPS连接(麦克风访问所需)

与语音卫星一起使用

对于基于ESP的语音卫星,将其配置为使用此集成创建的自定义STT/TTS提供程序,或使用直接的WebSocket API。

音频配置

实时API使用24kHz的PCM音频。当与Home Assistant的语音管道一起使用时,该集成会自动处理音频转换。

支持的音频格式

  • 输入:PCM 16位,24kHz
  • 输出:PCM 16位,24kHz

OpenAI语音选项

可用语音:

  • alloy -中性、平衡
  • echo -深沉、共鸣
  • fable -温暖,讲故事
  • onyx -深度、权威
  • nova -年轻、精力充沛
  • shimmer -清晰、富有表现力
  • coral -温暖、迷人

OpenAI定价

OpenAI实时API定价(每一百万代币):

类型 输入 缓存输入 输出
文本 4.00美元 0.50美元 16.00美元
音频 32.00美元 0.50美元 64.00美元

🟢 Gemini Live集成

配置

  1. 首选 设置 → 设备和服务 → 添加集成
  2. 搜索“Gemini Live”
  3. 输入您的Google AI API密钥
  4. 配置设置:
    • 模型:选择模型(默认值: gemini-2.0-flash-exp)
    • 语音:选择音频响应的声音
    • 说明:自定义系统说明

Gemini语音选项

可用语音:

  • Puck -活泼、精力充沛
  • Charon -深邃而神秘
  • Kore -热情友好
  • Fenrir -坚强、自信
  • Aoede -清晰、优美

双子座爱情卡

添加Lovelace资源

  1. 首选 设置 → 仪表盘 → ⋮(三个点) → 资源
  2. 点击 添加资源
  3. 输入:
    • 统一资源定位符: /gemini_live/gemini-live-card.js?v=1
    • 资源类型:JavaScript模块
  4. 点击 创建

将卡片添加到仪表板

type: custom:gemini-live-card
title: Gemini Live Voice

卡片功能

  • 一键通:单击麦克风按钮开始/停止讲话
  • 实时可视化仪:实时音频级别可视化
  • 实时成绩单:实时查看您的输入和AI响应
  • 文本输入:键入消息而不是说话
  • 文件上传:发送多模式对话的图像和音频文件
  • 静音切换:AI讲话时将麦克风静音,以防止回声

卡配置选项

选项 类型 默认值 描述
title string “Gemini Live” 卡片标题

Gemini服务

gemini_live.send_message

发送短信并获得回复。

service: gemini_live.send_message
data:
  message: "What's the weather like?"

gemini_live.send_audio

将音频数据直接发送到API。

service: gemini_live.send_audio
data:
  audio_data: "<base64_encoded_pcm_audio>"

gemini_live.start_listening

启动音频会话。

service: gemini_live.start_listening

gemini_live.stop_listening

停止音频处理。

service: gemini_live.stop_listening

Gemini二进制传感器

传感器 说明
binary_sensor.gemini_live_connected WebSocket连接状态
binary_sensor.gemini_live_listening 用户正在发言
binary_sensor.gemini_live_speaking 助理正在响应
binary_sensor.gemini_live_processing 正在处理请求

Gemini定价

Gemini 2.0 Flash目前处于预览阶段,具有慷慨的免费等级限制。检查 谷歌人工智能定价 以目前的价格。


故障排除

启用调试日志记录

添加到您的 configuration.yaml:

logger:
  default: info
  logs:
    custom_components.openai_realtime: debug

然后重新启动家庭助理。

要查找的关键日志消息

日志消息 含义
Connected to OpenAI Realtime API WebSocket连接成功
Session created: sess_XXX 与OpenAI建立会话
Updating session with X tools 正在注册工具
Session updated 工具注册成功✅
API Error: ... 出了点问题❌
Function call received AI正在调用家庭助手工具
Function result sent to OpenAI 工具执行已完成
Registering event handlers including function_call handler 已设置WebSocket API处理程序

常见问题

API错误:“session.max_response_output_tokens”的类型无效

这是一个已知的问题,其中令牌值以小数形式发送。更新到最新版本。

工具不起作用/AI说它做了一些事情,但什么也没发生

  1. 检查日志 API Error 消息之后 Updating session with X tools
  2. 寻找 Session updated -如果缺失,则会话配置失败,工具未注册
  3. 验证家庭助理中是否存在实体ID
  4. 检查 Function call received 在日志中确认AI正在尝试调用工具

无音频播放

  • 确保您的浏览器允许播放音频
  • 检查浏览器控制台是否有错误(F12→ 控制台)
  • 尝试使用Ctrl+Shift+R刷新页面

麦克风不工作

  • 确保启用了HTTPS(麦克风访问所需)
  • 检查麦克风访问的浏览器权限
  • 尝试其他浏览器(建议使用Chrome)

“未连接到OpenAI实时API”

  • 检查您的API密钥是否有效
  • 确保您有权访问实时API(并非所有帐户都有)
  • 检查您的互联网连接

音频播放多次/重叠

  • 这在最新版本中已修复-更新到最新版本
  • 清除浏览器缓存并重新加载

MCP服务器问题

Stdio服务器无法在HASSIO上运行

  • 原因:Node.js(npx, node)在Home Assistant操作系统上不可用
  • 解决方案:改用SSE模式。在单独的计算机上运行MCP服务器,并通过HTTP连接

MCP服务器“找不到命令”

  • 原因:该命令未安装或不在PATH中
  • 解决方案:
    • 使用可执行文件的完整路径(例如。, /usr/bin/python3 而不是 python)
    • 对于Python MCP服务器,请确保已安装该模块: pip install mcp-server-xxx

MCP工具未出现在AI响应中

  1. 检查日志 Loading X MCP servers from config
  2. 对于stdio服务器,请查找 Connected to stdio MCP server X, found Y tools
  3. 验证服务器是否已在选项中启用
  4. 检查日志中的连接错误

MCP呼叫成功,但无音频响应

  • 原因:MCP调用后,OpenAI可能需要一个触发器来生成音频
  • 解决方案:这在最新版本中会自动处理。更新到最新版本并重新启动。

调用MCP工具时出现“找不到服务器”错误

  • 原因:函数调用中的服务器名称与配置的服务器不匹配
  • 解决方案:检查服务器名称是否有特殊字符。名称被净化(空格→ 下划线)

浏览器控制台调试

  1. 打开浏览器开发工具(F12)
  2. 转到Console选项卡
  3. 查找消息:
    • Subscribing to OpenAI Realtime events... -卡正在连接
    • Subscribed successfully -已建立连接
    • Received event: -来自后端的事件
    • Playing audio chunk -正在播放音频

检查集成状态

  1. 首选 设置 → 设备和服务
  2. 查找“OpenAI实时”
  3. 检查是否显示任何错误

查看完整日志

# In Home Assistant terminal or SSH
tail -f /config/home-assistant.log | grep openai_realtime

测试API连接

尝试通过开发人员工具发送短信→ 服务:

service: openai_realtime.send_message
data:
  message: "Hello, can you hear me?"

更新中

更新集成

  1. 通过HACS:

    • 转到HACS→ 集成
    • 找到“OpenAI实时”并单击“更新”
    • 重启 Home Assistant
  2. 手动更新:

    • 更换 custom_components/openai_realtime 带有新版本的文件夹
    • 重启 Home Assistant

更新JavaScript卡(手动缓存破坏)

JS卡版本会根据文件修改时间自动更新。但是,浏览器可能会缓存旧版本。以下是如何强制更新:

方法1:在仪表板设置中更新资源版本(推荐)

  1. 首选 设置 → 仪表盘
  2. 点击三点菜单(⋮)→ 资源
  3. 查找包含以下内容的资源 /openai_realtime/openai-realtime-card.js
  4. 单击以编辑它
  5. 更改URL版本参数:
    Before: /openai_realtime/openai-realtime-card.js?v=1733000000
    After:  /openai_realtime/openai-realtime-card.js?v=1733100000
    
    (只需将数字更改为其他数字)
  6. 点击 更新
  7. 硬刷新浏览器: Ctrl+Shift+R (Windows/Linux)或 Cmd+Shift+R (Mac)

方法2:硬刷新浏览器

  • Windows/Linux: Ctrl+Shift+R
  • 雨衣: Cmd+Shift+R
  • 或打开DevTools(F12)→ 右键单击“刷新”→ “清空缓存并硬重新加载”

方法3:删除并重新添加资源

  1. 首选 设置 → 仪表盘 → 资源
  2. 删除OpenAI实时卡资源
  3. 重新加载集成:
    • 设置 → 设备和服务 → OpenAI实时 → ⋮ → 重新加载
  4. 资源将自动添加新版本

方法4:完全清除浏览器缓存

  1. 打开浏览器设置
  2. 清除缓存的图像和文件
  3. 重新加载仪表板

更新后

  1. 清除浏览器缓存或硬刷新(Ctrl+Shift+R)
  2. 重新加载仪表板
  3. 检查浏览器控制台(F12)是否有任何错误
  4. 测试麦克风按钮

连接问题

  • 验证您的API密钥是否具有实时API访问权限
  • 检查您的网络是否允许WebSocket连接
  • 查看Home Assistant日志以了解详细的错误消息

MCP服务器问题

  • 确保可以从家庭助理访问MCP服务器URL
  • 验证身份验证令牌是否正确
  • 检查MCP服务器日志是否存在连接问题

音频问题

  • 确保音频格式正确(PCM 24kHz)
  • 检查语音助手配置
  • 验证麦克风/扬声器设置

发展

地方发展

# Clone the repository
git clone https://github.com/your-username/ha-realtime-ai-audio.git

# Create virtual environment
python -m venv venv
source venv/bin/activate

# Install dependencies
pip install -r requirements.txt

# Link to Home Assistant custom_components
ln -s $(pwd)/custom_components/openai_realtime ~/.homeassistant/custom_components/
ln -s $(pwd)/custom_components/gemini_live ~/.homeassistant/custom_components/

运行测试

pytest tests/

许可证

MIT许可证-请参阅 许可证 了解详情。

贡献

欢迎投稿!请阅读我们的投稿指南并提交pull请求。

更新日志

2.0.0

  • 添加了Gemini Live Audio与谷歌Gemini Liveneneneba API的集成
  • Gemini功能:会话恢复、图像/音频输入、谷歌搜索
  • 将项目更名为“ha实时ai音频”
  • 更新了两个集成的README

1.0.0

  • 初始版本
  • OpenAI实时API集成
  • MCP服务器支持
  • 家庭助理对话代理
  • 内置智能家居工具