OpenAI标准 API
Audio 语音处理
OpenAI 格式的 Audio API 使用方法
Audio API 提供三种核心语音处理功能:
- 语音转文字 (Transcriptions):将音频转换为文字,支持多种语言
- 语音翻译 (Translations):将音频翻译为英语
- 文字转语音 (Speech):将文字合成为自然语音
| 功能 | 接口地址 | 内容类型 |
|---|
| 语音转文字 | POST /v1/audio/transcriptions | multipart/form-data |
| 语音翻译 | POST /v1/audio/translations | multipart/form-data |
| 文字转语音 | POST /v1/audio/speech | application/json |
Authorization: Bearer sk-your-api-key
将音频文件转换为文字,支持多种音频格式和语言。
| 参数名 | 类型 | 必填 | 说明 |
|---|
file | File | 是 | 音频文件(支持 mp3, mp4, mpeg, mpga, m4a, wav, webm 格式) |
model | string | 是 | 模型 ID,如 whisper-1 |
language | string | 否 | 音频语言(ISO-639-1 格式,如 zh, en, ja) |
prompt | string | 否 | 提示词,引导模型识别特定词汇 |
response_format | string | 否 | 响应格式:json, text, srt, verbose_json, vtt,默认 json |
temperature | number | 否 | 采样温度 (0-1),默认 0 |
timestamp_granularities | array | 否 | 时间戳粒度:word 或 segment |
{
"text": "这是一段测试语音的转写内容。"
}
curl -X POST "{BASE_URL}/v1/audio/transcriptions" \
-H "Authorization: Bearer sk-your-api-key" \
-F "file=@/path/to/audio.mp3" \
-F "model=whisper-1" \
-F "language=zh"
from openai import OpenAI
client = OpenAI(
api_key="sk-your-api-key",
base_url="{BASE_URL}/v1"
)
with open("audio.mp3", "rb") as audio_file:
transcript = client.audio.transcriptions.create(
model="whisper-1",
file=audio_file,
language="zh"
)
print(transcript.text)
将音频文件翻译为英语文字。
| 参数名 | 类型 | 必填 | 说明 |
|---|
file | File | 是 | 音频文件 |
model | string | 是 | 模型 ID,如 whisper-1 |
prompt | string | 否 | 提示词 |
response_format | string | 否 | 响应格式,默认 json |
temperature | number | 否 | 采样温度,默认 0 |
curl -X POST "{BASE_URL}/v1/audio/translations" \
-H "Authorization: Bearer sk-your-api-key" \
-F "file=@/path/to/audio.mp3" \
-F "model=whisper-1"
将文字合成为自然语音。
| 参数名 | 类型 | 必填 | 说明 |
|---|
model | string | 是 | TTS 模型,如 tts-1 或 tts-1-hd |
input | string | 是 | 要合成的文字(最多 4096 字符) |
voice | string | 是 | 语音类型:alloy, echo, fable, onyx, nova, shimmer |
response_format | string | 否 | 音频格式:mp3, opus, aac, flac, wav, pcm,默认 mp3 |
speed | number | 否 | 语速 (0.25-4.0),默认 1.0 |
| 语音 | 特点 |
|---|
alloy | 中性、平衡 |
echo | 成熟、稳重 |
fable | 温暖、叙事感 |
onyx | 深沉、有力 |
nova | 明亮、活力 |
shimmer | 清晰、专业 |
curl -X POST "{BASE_URL}/v1/audio/speech" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-your-api-key" \
-d '{
"model": "tts-1",
"input": "你好,这是语音合成测试。",
"voice": "nova",
"response_format": "mp3",
"speed": 1.0
}' \
--output speech.mp3
from openai import OpenAI
client = OpenAI(
api_key="sk-your-api-key",
base_url="{BASE_URL}/v1"
)
response = client.audio.speech.create(
model="tts-1",
voice="nova",
input="你好,这是语音合成测试。",
speed=1.0
)
with open("speech.mp3", "wb") as f:
f.write(response.content)
import OpenAI from 'openai';
import fs from 'fs';
const openai = new OpenAI({
apiKey: 'sk-your-api-key',
baseURL: '{BASE_URL}/v1',
});
async function main() {
const mp3 = await openai.audio.speech.create({
model: 'tts-1',
voice: 'nova',
input: '你好,这是语音合成测试。',
});
const buffer = Buffer.from(await mp3.arrayBuffer());
fs.writeFileSync('speech.mp3', buffer);
}
main();
| 格式 | 说明 | 最大文件大小 |
|---|
mp3 | MP3 音频 | 25MB |
mp4 | MP4 视频(提取音频) | 25MB |
mpeg | MPEG 音频 | 25MB |
mpga | MPGA 音频 | 25MB |
m4a | M4A 音频 | 25MB |
wav | WAV 音频 | 25MB |
webm | WebM 音频 | 25MB |
| 格式 | 说明 | 推荐场景 |
|---|
mp3 | MP3 格式 | 通用场景,兼容性最好 |
opus | Opus 格式 | 网络传输,低延迟 |
aac | AAC 格式 | 移动设备 |
flac | FLAC 格式 | 无损音质 |
wav | WAV 格式 | 未压缩,高质量 |
pcm | PCM 格式 | 原始音频数据 |
- 预处理音频
- 去除静音片段
- 降噪处理
- 转换为推荐的采样率(16kHz)
- 设置正确的语言
- 如果知道音频语言,使用
language 参数
- 可以提高识别准确率
- 减少处理时间
- 使用提示词
- 对于专业术语,使用
prompt 参数
- 帮助模型识别特定词汇
- 选择合适的语音
- 调整语速
- 根据内容复杂度调整
speed
- 技术内容可以适当放慢
- 选择正确的格式
- 网络播放:使用
mp3 或 opus
- 存储空间敏感:使用
opus
- 最高质量:使用
flac