Appearance
使用 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-identity2. 建立实时连接
使用 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。
你可能还需要
暂无推荐