OpenAI 音频与语音功能全解:语音识别、语音合成、实时对话全搞定!
本文将为你详细介绍如何通过 OpenAI API 构建语音驱动的应用,如语音助手、实时对话系统、语音识别与合成等完整音频工作流。
✨ 快速了解音频 API 能力
OpenAI 提供了一整套音频相关的 API 能力,可以实现语音输入(如语音识别)、语音输出(如语音合成)甚至构建完整的语音助手。下图是常见的使用场景:
| 使用场景 | 简介 |
|---|---|
| 🔊 语音代理 | 构建可以听懂用户说话并进行自然回复的语音助手 |
| ✍️ 语音转文字 | 将音频准确快速地转成文字(支持实时流式处理) |
| 🗣️ 文本转语音 | 将文本以自然语音方式朗读出来(支持多种声音) |
🚀 快速构建语音交互应用
1. 语音代理(Voice Agents)
语音代理即语音助手,可以理解用户的语音输入并做出自然语言回复。有两种构建方式:
- ✅ 端到端语音对语音模型(Realtime API):延迟更低,更自然;
- 🔁 串联语音转文字 + 文本生成 + 文本转语音:更可控,适用于已有文本代理系统。
如果你已经使用 OpenAI Agents SDK,可以使用这个示例快速为你的文本代理添加语音能力。
2. 实时语音流处理
通过 Realtime API 可以实现低延迟的语音识别或实时语音对话。OpenAI 提供的多语言识别模型可以高效、准确处理音频流。
3. 文本转语音(Text to Speech)
使用 audio/speech 接口将文本转换为自然语音。
可用模型包括:
gpt-4o-mini-ttstts-1tts-1-hd
如果使用 gpt-4o-mini-tts,你还可以设定语气或语调。
4. 语音转文字(Speech to Text)
使用 audio/transcriptions 接口,将用户的语音实时转成文本。
可用模型:
gpt-4o-transcribegpt-4o-mini-transcribewhisper-1
支持连续流式语音识别!
🤖 API 对比与选择指南
| 接口 | 支持模式 | 是否支持流式 |
|---|---|---|
| Realtime API | 音频输入 + 音频输出 + 文本 | ✅ |
| Chat Completions | 音频 / 文本输入 + 音频 / 文本输出 | ✅(音频流出) |
| Transcription API | 仅音频输入 | ✅ |
| Speech API | 仅文本输入(输出音频) | ✅ |
✅ 提示:你可以通过我们的 OpenAI API 中转站使用以上接口,享受更快更稳定的服务:点击快速接入
💡 开发者建议
- 如果你需要实时语音交互:推荐使用 Realtime API;
- 如果你构建语音助手但不强求低延迟:使用 Chat Completions;
- 如果你只需要纯语音识别或语音合成:使用 Transcription / Speech 专用 API;
🎯 添加语音能力到已有应用
如果你已有基于 Chat Completions 的聊天程序,现在可以加入音频能力,只需:
"modalities": ["text", "audio"]
并选择音频模型,如:gpt-4o-audio-preview。
📦 示例:从模型获取语音回复(文本转语音)
Python 示例
import base64
from openai import OpenAI
client = OpenAI(base_url="https://api.aaaaapi.com/v1")
completion = client.chat.completions.create(
model="gpt-4o-audio-preview",
modalities=["text", "audio"],
audio={"voice": "alloy", "format": "wav"},
messages=[
{
"role": "user",
"content": "金毛是适合家庭的狗吗?"
}
]
)
wav_bytes = base64.b64decode(completion.choices[0].message.audio.data)
with open("golden.wav", "wb") as f:
f.write(wav_bytes)
📥 示例:用音频作为输入(语音转文字 + 回答)
import base64
import requests
from openai import OpenAI
client = OpenAI(base_url="https://api.aaaaapi.com/v1")
# 获取音频文件
url = "https://cdn.openai.com/API/docs/audio/alloy.wav"
response = requests.get(url)
wav_data = response.content
encoded_string = base64.b64encode(wav_data).decode('utf-8')
completion = client.chat.completions.create(
model="gpt-4o-audio-preview",
modalities=["text", "audio"],
audio={"voice": "alloy", "format": "wav"},
messages=[
{
"role": "user",
"content": [
{ "type": "text", "text": "这段录音讲了什么?" },
{
"type": "input_audio",
"input_audio": {
"data": encoded_string,
"format": "wav"
}
}
]
}
]
)
print(completion.choices[0].message)
🌍 关于稳定使用 API 的小提示
OpenAI 官方 API 在某些地区访问不稳定,推荐使用我们搭建的中转 API:立即体验更顺畅的调用体验
将你的 OpenAI(base_url="https://api.openai.com/v1") 替换为:
OpenAI(base_url="https://api.aaaaapi.com/v1")
📚 结语
OpenAI 的音频能力非常强大,适合构建智能客服、语音助手、听力训练工具等各种场景。你可以按需选择模型和 API 接口,实现流畅自然的语音交互体验。
如果你喜欢这篇文章,欢迎点赞收藏评论;如需更稳定的 API 服务,记得试试我们的中转服务:点击体验 🚀