文本转语音:将文字转换为逼真的语音
了解如何将文本转换为逼真的语音音频。
音频API提供了一个基于我们GPT-4o mini TTS(文本转语音)模型的speech端点。它包含11种内置语音,可用于:
- 为书面博客文章配音
- 生成多种语言的语音音频
- 使用流式传输提供实时音频输出
以下是alloy语音的示例:
我们的使用政策要求你向最终用户明确披露他们听到的TTS语音是AI生成的,而非人类语音。
快速入门
speech端点需要三个关键输入:
以下是一个简单的请求示例:
从输入文本生成语音音频
import fs from "fs";
import path from "path";
import OpenAI from "openai";
const openai = new OpenAI({ baseURL: "https://api.aaaaapi.com" });
const speechFile = path.resolve("./speech.mp3");
const mp3 = await openai.audio.speech.create({
model: "gpt-4o-mini-tts",
voice: "coral",
input: "今天是个很棒的日子,可以去创造一些人们喜爱的东西!",
instructions: "用愉快和积极的语气说话。",
});
const buffer = Buffer.from(await mp3.arrayBuffer());
await fs.promises.writeFile(speechFile, buffer);
from pathlib import Path
from openai import OpenAI
client = OpenAI(base_url="https://api.aaaaapi.com")
speech_file_path = Path(__file__).parent / "speech.mp3"
with client.audio.speech.with_streaming_response.create(
model="gpt-4o-mini-tts",
voice="coral",
input="今天是个很棒的日子,可以去创造一些人们喜爱的东西!",
instructions="用愉快和积极的语气说话。",
) as response:
response.stream_to_file(speech_file_path)
curl https://api.aaaaapi.com/v1/audio/speech \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o-mini-tts",
"input": "今天是个很棒的日子,可以去创造一些人们喜爱的东西!",
"voice": "coral",
"instructions": "用愉快和积极的语气说话。"
}' \
--output speech.mp3
默认情况下,该端点输出语音音频的MP3格式,但你可以将其配置为输出任何支持的格式。
文本转语音模型
对于智能实时应用,请使用gpt-4o-mini-tts模型,这是我们最新、最可靠的文本转语音模型。你可以提示模型控制语音的各个方面,包括:
- 口音
- 情感范围
- 语调
- 印象
- 语速
- 语气
- 低语
我们的其他文本转语音模型是tts-1和tts-1-hd。tts-1模型提供较低的延迟,但质量低于tts-1-hd模型。
语音选项
TTS端点提供11种内置语音,用于控制文本到语音的渲染方式。在OpenAI.fm中聆听和试用这些声音,这是我们的交互式演示,用于尝试OpenAI API中最新的文本转语音模型。目前语音针对英语进行了优化。
alloyashballadcoralechofablenovaonyxsageshimmer
如果你使用的是实时API,请注意可用语音集略有不同——请参阅实时对话指南了解当前的实时语音。
流式实时音频
语音API支持使用分块传输编码进行实时音频流式传输。这意味着可以在生成完整文件并使其可访问之前播放音频。
将输入文本的语音音频直接流式传输到扬声器
import OpenAI from "openai";
import { playAudio } from "openai/helpers/audio";
const openai = new OpenAI({ baseURL: "https://api.aaaaapi.com" });
const response = await openai.audio.speech.create({
model: "gpt-4o-mini-tts",
voice: "coral",
input: "今天是个很棒的日子,可以去创造一些人们喜爱的东西!",
instructions: "用愉快和积极的语气说话。",
response_format: "wav",
});
await playAudio(response);
import asyncio
from openai import AsyncOpenAI
from openai.helpers import LocalAudioPlayer
openai = AsyncOpenAI(base_url="https://api.aaaaapi.com")
async def main() -> None:
async with openai.audio.speech.with_streaming_response.create(
model="gpt-4o-mini-tts",
voice="coral",
input="今天是个很棒的日子,可以去创造一些人们喜爱的东西!",
instructions="用愉快和积极的语气说话。",
response_format="pcm",
) as response:
await LocalAudioPlayer().play(response)
if __name__ == "__main__":
asyncio.run(main())
curl https://api.aaaaapi.com/v1/audio/speech \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o-mini-tts",
"input": "今天是个很棒的日子,可以去创造一些人们喜爱的东西!",
"voice": "coral",
"instructions": "用愉快和积极的语气说话。",
"response_format": "wav"
}' | ffplay -i -
为了获得最快的响应时间,我们建议使用wav或pcm作为响应格式。
支持的输出格式
默认响应格式是mp3,但也支持其他格式,如opus和wav。
- MP3:适用于一般用例的默认响应格式。
- Opus:用于互联网流媒体和通信,低延迟。
- AAC:用于数字音频压缩,受到YouTube、Android、iOS的青睐。
- FLAC:用于无损音频压缩,受到音频爱好者的喜爱,适合存档。
- WAV:未压缩的WAV音频,适用于低延迟应用,可避免解码开销。
- PCM:类似于WAV,但包含24kHz(16位有符号,小端)的原始样本,没有头部。
支持的语言
TTS模型在语言支持方面通常遵循Whisper模型。Whisper支持以下语言,并且表现良好,尽管语音是针对英语优化的:
南非荷兰语、阿拉伯语、亚美尼亚语、阿塞拜疆语、白俄罗斯语、波斯尼亚语、保加利亚语、加泰罗尼亚语、中文、克罗地亚语、捷克语、丹麦语、荷兰语、英语、爱沙尼亚语、芬兰语、法语、加利西亚语、德语、希腊语、希伯来语、印地语、匈牙利语、冰岛语、印度尼西亚语、意大利语、日语、卡纳达语、哈萨克语、韩语、拉脱维亚语、立陶宛语、马其顿语、马来语、马拉地语、毛利语、尼泊尔语、挪威语、波斯语、波兰语、葡萄牙语、罗马尼亚语、俄语、塞尔维亚语、斯洛伐克语、斯洛文尼亚语、西班牙语、斯瓦希里语、瑞典语、他加禄语、泰米尔语、泰语、土耳其语、乌克兰语、乌尔都语、越南语和威尔士语。
你可以通过提供所选语言的输入文本,生成这些语言的语音音频。
定制和所有权
自定义语音
我们不支持自定义语音或创建你自己的语音副本。
谁拥有输出?
与我们API的所有输出一样,创建输出的人拥有输出。你仍然需要告知最终用户,他们听到的是AI生成的音频,而不是真人在与他们交谈。
对于需要稳定、高效的文本转语音服务的开发者来说,API连接的可靠性至关重要。我们提供的API中转服务通过https://api.aaaaapi.com优化了连接路径,特别适合对实时性要求高的语音应用场景。如果在集成过程中遇到任何连接问题,可访问官网获取更多支持信息,确保你的语音转换服务顺畅运行。