Skip to content

使用 Azure AI Voice Live 构建实时语音 AI 应用

解决传统语音交互延迟高、无法中途打断的痛点:利用双向 WebSocket 通信,构建能够实时处理音频流、支持 VAD(语音活动检测)并能快速响应的语音 AI 助手。

为什么需要这个技能

传统的语音 AI 流程通常是“录音 转文字 LLM 处理 文字转语音 播放”,这种线性流水线导致明显的延迟,且用户无法在 AI 说话时通过语音直接打断。

Azure AI Voice Live 采用了双向 WebSocket 架构,实现了音频流的实时传输和处理。通过本技能,你可以构建一个像人类一样能够自然对话、实时感知用户语音状态并支持动态中断的 AI 应用。

适用场景

  • 实时 AI 助手:需要极低响应延迟的语音交互产品。
  • 智能客服系统:支持用户在 AI 回答过程中随时插话的场景。
  • 语音驱动的工具控制:通过语音实时触发函数调用(Function Calling)并立即获得音频反馈。
  • 多模态交互界面:同时输出文本和音频,实现同步的视觉与听觉反馈。

核心工作流

1. 环境准备与认证

安装必要依赖并配置 Azure 认知服务终结点。建议在生产环境中使用 DefaultAzureCredential 进行身份验证。

bash
pip install azure-ai-voicelive aiohttp azure-identity

2. 建立实时连接

使用 connect 方法创建异步连接,指定使用的模型(如 gpt-4o-realtime-preview)。

python
async with connect(
    endpoint=os.environ["AZURE_COGNITIVE_SERVICES_ENDPOINT"],
    credential=DefaultAzureCredential(),
    model="gpt-4o-realtime-preview"
) as conn:
    # 配置会话参数
    await conn.session.update(session={
        "instructions": "你是一个专业的语音助手。",
        "modalities": ["text", "audio"],
        "voice": "alloy"
    })

3. 音频流处理

  • 发送:将麦克风采集的 PCM16 格式音频进行 Base64 编码后,通过 input_audio_buffer.append 发送。
  • 接收:通过监听 response.audio.delta 事件,实时解码并播放接收到的音频片段。

4. 事件驱动交互

通过 async for event in conn 循环处理不同类型的事件,例如:

  • input_audio_buffer.speech_started:检测到用户开始说话,此时可调用 conn.response.cancel() 实现打断。
  • response.function_call_arguments.done:处理 AI 触发的函数调用并返回结果。

下载和安装

下载 azure-ai-voicelive-py 中文版 Skill ZIP

解压后将目录放入你的 AI 工具 skills 文件夹,重启工具后即可使用。具体路径参考内附的 USAGE.zh.md

你可能还需要

暂无推荐