For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
主导航

文本转语音

了解如何将文本转换为逼真的语音。

Audio API 提供了基于我们的 GPT-4o mini TTS(文本转语音)模型speech 端点。它内置 11 种语音,可用于:

  • 朗读博客文章
  • 生成多种语言的语音
  • 通过流式传输实时输出音频

以下是 alloy 语音的示例:

我们的使用政策要求您 明确告知最终用户,他们听到的 TTS 语音 由 AI 生成,并非真人语音。

快速入门

speech 端点接受三个关键输入:

  1. 您使用的模型
  2. 要转换为音频的文本
  3. 朗读输出内容所用的语音

以下是一个简单的请求示例:

根据输入文本生成语音
from pathlib import Path
from openai import OpenAI

client = OpenAI()
speech_file_path = Path(__file__).parent / "speech.mp3"

with client.audio.speech.with_streaming_response.create(
    model="gpt-4o-mini-tts",
    voice="coral",
    input="Today is a wonderful day to build something people love!",
    instructions="Speak in a cheerful and positive tone.",
) as response:
    response.stream_to_file(speech_file_path)

默认情况下,该端点以 MP3 格式输出语音,但您可以将其配置为以任意支持的格式输出。

文本转语音模型

对于智能实时应用,请使用 gpt-4o-mini-tts 模型,这是我们最新、最可靠的文本转语音模型。您可以通过提示来控制模型生成语音的各个方面,包括:

  • 口音
  • 情感表达范围
  • 语调
  • 声音模仿
  • 语速
  • 语气
  • 耳语

我们的其他文本转语音模型包括 tts-1tts-1-hdtts-1 模型的延迟更低,但质量不及 tts-1-hd 模型。

语音选项

TTS 端点提供 13 种内置语音,用于控制文本转换为语音时的发声效果。 您可以在 OpenAI.fm 中试听和体验这些语音。这是我们的交互式演示,可供您试用 OpenAI API 中最新的文本转语音模型。这些语音目前针对英语进行了优化。

  • alloy
  • ash
  • ballad
  • coral
  • echo
  • fable
  • nova
  • onyx
  • sage
  • shimmer
  • verse
  • marin
  • cedar

为获得最佳质量,我们建议使用 marincedar

可用的语音取决于模型。tts-1tts-1-hd 模型支持的语音较少,包括:alloyashcoralechofableonyxnovasageshimmer

如果您使用的是 Realtime API,请注意,可用的语音略有不同。请参阅实时对话指南,了解当前可用的实时语音。

实时音频流式传输

Speech API 使用分块传输编码来支持实时音频流式传输。这意味着,无需等待完整文件生成并可供访问,即可开始播放音频。

将输入文本生成的语音直接流式传输到您的扬声器
import asyncio

from openai import AsyncOpenAI
from openai.helpers import LocalAudioPlayer

openai = AsyncOpenAI()


async def main() -> None:
    async with openai.audio.speech.with_streaming_response.create(
        model="gpt-4o-mini-tts",
        voice="coral",
        input="Today is a wonderful day to build something people love!",
        instructions="Speak in a cheerful and positive tone.",
        response_format="pcm",
    ) as response:
        await LocalAudioPlayer().play(response)


if __name__ == "__main__":
    asyncio.run(main())

为获得最快的响应速度,我们建议使用 wavpcm 作为响应格式。

支持的输出格式

默认响应格式为 mp3,也可以使用 opuswav 等其他格式。

  • MP3:默认响应格式,适用于一般使用场景。
  • Opus:适用于互联网流式传输和通信,延迟低。
  • AAC:用于数字音频压缩,是 YouTube、Android 和 iOS 的首选格式。
  • FLAC:用于无损音频压缩,深受音频爱好者青睐,常用于归档。
  • WAV:未压缩的 WAV 音频,适合低延迟应用,可避免解码开销。
  • PCM:类似于 WAV,但不含文件头,仅包含 24kHz 的原始采样数据(16 位有符号,小端字节序)。

支持的语言

TTS 模型在语言支持方面与 Whisper 模型基本一致。Whisper 支持以下语言,且表现良好,尽管语音针对英语进行了优化:

南非荷兰语、阿拉伯语、亚美尼亚语、阿塞拜疆语、白俄罗斯语、波斯尼亚语、保加利亚语、加泰罗尼亚语、中文、克罗地亚语、捷克语、丹麦语、荷兰语、英语、爱沙尼亚语、芬兰语、法语、加利西亚语、德语、希腊语、希伯来语、印地语、匈牙利语、冰岛语、印度尼西亚语、意大利语、日语、卡纳达语、哈萨克语、韩语、拉脱维亚语、立陶宛语、马其顿语、马来语、马拉地语、毛利语、尼泊尔语、挪威语、波斯语、波兰语、葡萄牙语、罗马尼亚语、俄语、塞尔维亚语、斯洛伐克语、斯洛文尼亚语、西班牙语、斯瓦希里语、瑞典语、他加禄语、泰米尔语、泰语、土耳其语、乌克兰语、乌尔都语、越南语和威尔士语。

您可以提供上述任一种语言的输入文本,生成相应语言的语音。

自定义语音

根据说话者的同意录音及匹配的 音频样本,创建经批准的自定义音色。请参阅自定义音色,了解使用资格、 录音要求、同意声明和 API 请求。

创建语音

请按照创建自定义音色中的步骤操作。

在语音生成中使用音色

生成语音时,请传入已创建的音色 ID。请参阅 语音生成示例

实时交互与音频概览

为语音智能体、翻译、转录和语音生成选择合适的实现方式。

音频与语音概念

了解音频模态、语音任务、流式传输和基于请求的 API。