OpenAI标准 API

Audio 语音处理

OpenAI 格式的 Audio API 使用方法

接口概述

Audio API 提供三种核心语音处理功能:

  • 语音转文字 (Transcriptions):将音频转换为文字,支持多种语言
  • 语音翻译 (Translations):将音频翻译为英语
  • 文字转语音 (Speech):将文字合成为自然语音

基本信息

功能接口地址内容类型
语音转文字POST /v1/audio/transcriptionsmultipart/form-data
语音翻译POST /v1/audio/translationsmultipart/form-data
文字转语音POST /v1/audio/speechapplication/json

认证方式

Authorization: Bearer sk-your-api-key

语音转文字 (Transcriptions)

将音频文件转换为文字,支持多种音频格式和语言。

请求参数

参数名类型必填说明
fileFile音频文件(支持 mp3, mp4, mpeg, mpga, m4a, wav, webm 格式)
modelstring模型 ID,如 whisper-1
languagestring音频语言(ISO-639-1 格式,如 zh, en, ja
promptstring提示词,引导模型识别特定词汇
response_formatstring响应格式:json, text, srt, verbose_json, vtt,默认 json
temperaturenumber采样温度 (0-1),默认 0
timestamp_granularitiesarray时间戳粒度:wordsegment

响应格式

{
  "text": "这是一段测试语音的转写内容。"
}

代码示例

cURL

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"

Python

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)

语音翻译 (Translations)

将音频文件翻译为英语文字。

请求参数

参数名类型必填说明
fileFile音频文件
modelstring模型 ID,如 whisper-1
promptstring提示词
response_formatstring响应格式,默认 json
temperaturenumber采样温度,默认 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"

文字转语音 (Speech)

将文字合成为自然语音。

请求参数

参数名类型必填说明
modelstringTTS 模型,如 tts-1tts-1-hd
inputstring要合成的文字(最多 4096 字符)
voicestring语音类型:alloy, echo, fable, onyx, nova, shimmer
response_formatstring音频格式:mp3, opus, aac, flac, wav, pcm,默认 mp3
speednumber语速 (0.25-4.0),默认 1.0

语音类型说明

语音特点
alloy中性、平衡
echo成熟、稳重
fable温暖、叙事感
onyx深沉、有力
nova明亮、活力
shimmer清晰、专业

代码示例

cURL

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

Python

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)

Node.js

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();

音频格式支持

输入格式(转录/翻译)

格式说明最大文件大小
mp3MP3 音频25MB
mp4MP4 视频(提取音频)25MB
mpegMPEG 音频25MB
mpgaMPGA 音频25MB
m4aM4A 音频25MB
wavWAV 音频25MB
webmWebM 音频25MB

输出格式(语音合成)

格式说明推荐场景
mp3MP3 格式通用场景,兼容性最好
opusOpus 格式网络传输,低延迟
aacAAC 格式移动设备
flacFLAC 格式无损音质
wavWAV 格式未压缩,高质量
pcmPCM 格式原始音频数据

最佳实践

语音转文字

  1. 预处理音频
    • 去除静音片段
    • 降噪处理
    • 转换为推荐的采样率(16kHz)
  2. 设置正确的语言
    • 如果知道音频语言,使用 language 参数
    • 可以提高识别准确率
    • 减少处理时间
  3. 使用提示词
    • 对于专业术语,使用 prompt 参数
    • 帮助模型识别特定词汇

语音合成

  1. 选择合适的语音
    • 根据内容场景选择语音类型
    • 测试不同语音的效果
  2. 调整语速
    • 根据内容复杂度调整 speed
    • 技术内容可以适当放慢
  3. 选择正确的格式
    • 网络播放:使用 mp3opus
    • 存储空间敏感:使用 opus
    • 最高质量:使用 flac

相关文档