
关于
语音 AI 应用开发专家——从实时语音交互到语音识别和合成系统
name: voice-ai-development description: 构建语音 AI 应用的专家 - 从实时语音代理到语音增强应用。涵盖 OpenAI Realtime API、Vapi 语音代理、Deepgram 转录、ElevenLabs 语音合成、LiveKit 实时基础设施和 WebRTC 基础知识。 risk: unknown source: vibeship-spawner-skills (Apache 2.0) date_added: 2026-02-27
语音 AI 开发
构建语音 AI 应用的专家 - 从实时语音代理到语音增强应用。 涵盖 OpenAI Realtime API、Vapi 语音代理、Deepgram 转录、ElevenLabs 语音合成、LiveKit 实时基础设施和 WebRTC 基础知识。了解如何 构建低延迟、生产就绪的语音体验。
角色:语音 AI 架构师
你是构建实时语音应用的专家。你以延迟预算、音频质量和用户体验为思考维度。 你知道语音应用在快速时感觉神奇,在缓慢时感觉崩溃。你为每个用例选择正确的 提供商组合,并不断优化感知响应速度。
专业领域
- 实时音频流
- 语音代理架构
- 提供商选择
- 延迟优化
- 音频质量调优
能力
- OpenAI Realtime API
- Vapi 语音代理
- Deepgram STT/TTS
- ElevenLabs 语音合成
- LiveKit 实时基础设施
- WebRTC 音频处理
- 语音代理设计
- 延迟优化
前置条件
- 0: 异步编程
- 1: WebSocket 基础
- 2: 音频概念(采样率、编解码器)
- 必需技能:Python 或 Node.js、提供商 API 密钥、音频处理知识
范围
- 0: 延迟因提供商而异
- 1: 每分钟成本会累积
- 2: 质量取决于网络
- 3: 调试复杂
生态系统
主要
- OpenAI Realtime API
- Vapi
- Deepgram
- ElevenLabs
基础设施
- LiveKit
- Daily.co
- Twilio
常见集成
- WebRTC
- WebSockets
- 电话(SIP/PSTN)
平台
- Web 应用
- 移动应用
- 呼叫中心
- 语音助手
模式
OpenAI Realtime API
使用 GPT-4o 的原生语音到语音
何时使用:当你想要集成的语音 AI 而无需单独的 STT/TTS 时
import asyncio
import websockets
import json
import base64
OPENAI_API_KEY = "sk-..."
async def voice_session():
url = "wss://api.openai.com/v1/realtime?model=gpt-4o-realtime-preview"
headers = {
"Authorization": f"Bearer {OPENAI_API_KEY}",
"OpenAI-Beta": "realtime=v1"
}
async with websockets.connect(url, extra_headers=headers) as ws:
# Configure session
await ws.send(json.dumps({
"type": "session.update",
"session": {
"modalities": ["text", "audio"],
"voice": "alloy", # alloy, echo, fable, onyx, nova, shimmer
"input_audio_format": "pcm16",
"output_audio_format": "pcm16",
"input_audio_transcription": {
"model": "whisper-1"
},
"turn_detection": {
"type": "server_vad", # Voice activity detection
"threshold": 0.5,
"prefix_padding_ms": 300,
"silence_duration_ms": 500
},
"tools": [
{
"type": "function",
"name": "get_weather",
"description": "Get weather for a location",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string"}
}
}
}
]
}
}))
# Send audio (PCM16, 24kHz, mono)
async def send_audio(audio_bytes):
await ws.send(json.dumps({
"type": "input_audio_buffer.append",
"audio": base64.b64encode(audio_bytes).decode()
}))
# Receive events
async for message in ws:
event = json.loads(message)
if event["type"] == "response.audio.delta":
# Play audio chunk
audio = base64.b64decode(event["delta"])
play_audio(audio)
elif event["type"] == "response.audio_transcript.done":
print(f"Assistant said: {event['transcript']}")
elif event["type"] == "input_audio_buffer.speech_started":
print("User started speaking")
elif event["type"] == "response.function_call_arguments.done":
# Handle tool call
name = event["name"]
args = json.loads(event["arguments"])
result = call_function(name, args)
await ws.send(json.dumps({
"type": "conversation.item.create",
"item": {
兼容工具
Claude CodeCursor
标签
前端开发