音频接口 (Audio)
约 869 字大约 3 分钟
2025-02-10
音频接口提供文本转语音(TTS)和语音转文本(STT)服务。
文本转语音 (TTS)
接口地址
POST https://api.ai.webweb.cn/v1/audio/speech请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| model | string | 是 | 模型名称:tts-1 或 tts-1-hd |
| input | string | 是 | 要转换的文本内容 |
| voice | string | 是 | 声音:alloy、echo、fable、onyx、nova、shimmer |
| response_format | string | 否 | 输出格式:mp3、opus、aac、flac、wav、pcm |
| speed | number | 否 | 语速,0.25-4.0,默认 1.0 |
声音预览
| 声音 | 特点 |
|---|---|
| alloy | 中性、平衡 |
| echo | 温暖、友好 |
| fable | 叙事、故事性 |
| onyx | 深沉、权威 |
| nova | 活泼、年轻 |
| shimmer | 清澈、悦耳 |
请求示例
cURL
curl https://api.ai.webweb.cn/v1/audio/speech \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "tts-1",
"input": "你好,欢迎使用我们的语音服务。",
"voice": "alloy"
}' \
--output speech.mp3Python
from openai import OpenAI
from pathlib import Path
client = OpenAI(
api_key="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
base_url="https://api.ai.webweb.cn/v1"
)
response = client.audio.speech.create(
model="tts-1",
voice="alloy",
input="你好,欢迎使用我们的语音服务。"
)
# 保存音频文件
speech_file = Path("speech.mp3")
response.stream_to_file(speech_file)JavaScript
import OpenAI from 'openai';
import fs from 'fs';
const openai = new OpenAI({
apiKey: 'sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
baseURL: 'https://api.ai.webweb.cn/v1'
});
const response = await openai.audio.speech.create({
model: 'tts-1',
voice: 'alloy',
input: '你好,欢迎使用我们的语音服务。'
});
const buffer = Buffer.from(await response.arrayBuffer());
fs.writeFileSync('speech.mp3', buffer);流式输出
from openai import OpenAI
client = OpenAI(
api_key="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
base_url="https://api.ai.webweb.cn/v1"
)
# 流式获取音频
with client.audio.speech.with_streaming_response.create(
model="tts-1",
voice="alloy",
input="这是一段需要转换的长文本..."
) as response:
response.stream_to_file("speech.mp3")语音转文本 (STT)
Whisper 转录
将音频文件转换为文本。
接口地址
POST https://api.ai.webweb.cn/v1/audio/transcriptions请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| file | file | 是 | 音频文件(支持 mp3、mp4、mpeg、mpga、m4a、wav、webm) |
| model | string | 是 | 模型名称:whisper-1 |
| language | string | 否 | 音频语言(ISO-639-1 格式) |
| prompt | string | 否 | 提示词,帮助模型理解上下文 |
| response_format | string | 否 | 输出格式:json、text、srt、verbose_json、vtt |
| temperature | number | 否 | 采样温度,0-1 |
请求示例
cURL
curl https://api.ai.webweb.cn/v1/audio/transcriptions \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-F file="@audio.mp3" \
-F model="whisper-1" \
-F language="zh"Python
from openai import OpenAI
client = OpenAI(
api_key="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
base_url="https://api.ai.webweb.cn/v1"
)
audio_file = open("audio.mp3", "rb")
transcript = client.audio.transcriptions.create(
model="whisper-1",
file=audio_file,
language="zh"
)
print(transcript.text)JavaScript
import OpenAI from 'openai';
import fs from 'fs';
const openai = new OpenAI({
apiKey: 'sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
baseURL: 'https://api.ai.webweb.cn/v1'
});
const transcript = await openai.audio.transcriptions.create({
file: fs.createReadStream('audio.mp3'),
model: 'whisper-1',
language: 'zh'
});
console.log(transcript.text);响应示例
{
"text": "你好,这是一段音频转文字的示例。"
}Whisper 翻译
将音频翻译为英文文本。
接口地址
POST https://api.ai.webweb.cn/v1/audio/translations请求示例
from openai import OpenAI
client = OpenAI(
api_key="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
base_url="https://api.ai.webweb.cn/v1"
)
audio_file = open("chinese_audio.mp3", "rb")
translation = client.audio.translations.create(
model="whisper-1",
file=audio_file
)
print(translation.text) # 输出英文翻译支持的音频格式
| 格式 | 扩展名 | 说明 |
|---|---|---|
| MP3 | .mp3 | 最常见的音频格式 |
| MP4 | .mp4, .m4a | 苹果设备常用 |
| WAV | .wav | 无损音频 |
| WebM | .webm | 网页音频 |
| MPEG | .mpeg, .mpga | 标准音频 |
注意
- 音频文件大小限制:25MB
- 建议使用 16kHz 或更高采样率
- 中文识别建议指定 language 为 "zh"
应用场景
1. 播客转录
def transcribe_podcast(audio_path):
"""转录播客音频"""
with open(audio_path, "rb") as audio_file:
transcript = client.audio.transcriptions.create(
model="whisper-1",
file=audio_file,
response_format="srt" # 带时间戳的字幕格式
)
return transcript2. 语音助手
def voice_assistant(audio_input):
"""语音助手:语音输入 -> AI回复 -> 语音输出"""
# 语音转文字
transcript = client.audio.transcriptions.create(
model="whisper-1",
file=audio_input
)
# AI 生成回复
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": transcript.text}]
)
reply = response.choices[0].message.content
# 文字转语音
audio_response = client.audio.speech.create(
model="tts-1",
voice="nova",
input=reply
)
return audio_response价格说明
| 服务 | 模型 | 价格 |
|---|---|---|
| TTS | tts-1 | ¥105/百万字符 |
| TTS | tts-1-hd | ¥210/百万字符 |
| STT | whisper-1 | ¥42/小时 |
