文字转语音

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

概述

音频 API 提供基于我们的 TTS(文本到语音转换)模型的语音终端节点。它带有 6 个内置语音,可用于:

  • 讲述书面博客文章
  • 生成多种语言的语音音频
  • 使用流提供实时音频输出

下面是语音的一个示例:alloy

请注意,我们的使用政策要求您向最终用户明确披露,他们听到的 TTS 语音是 AI 生成的,而不是人声。

快速入门

终端节点接受三个关键输入:模型、应转换为音频的文本以及用于音频生成的语音。一个简单的请求将如下所示:speech

从输入文本生成语音音频
1
2
3
4
5
6
7
8
9
10
11
12
from pathlib import Path
from openai import OpenAI
client = OpenAI()

speech_file_path = Path(__file__).parent / "speech.mp3"
response = client.audio.speech.create(
  model="tts-1",
  voice="alloy",
  input="Today is a wonderful day to build something people love!"
)

response.stream_to_file(speech_file_path)

默认情况下,终端节点将输出语音音频的 MP3 文件,但也可以配置为输出我们支持的任何格式

音频质量

对于实时应用程序,标准模型提供最低的延迟,但质量低于模型。由于音频的生成方式,在某些情况下可能会生成比 更多的静态内容。在某些情况下,音频可能没有明显的差异,具体取决于您的收听设备和个人。tts-1tts-1-hdtts-1tts-1-hd

语音选项

尝试不同的语音 (、 、 、 、 和 ),以找到与所需的语气和受众相匹配的语音。当前语音已针对英语进行了优化。alloyechofableonyxnovashimmer

合金

回波

寓言

缟玛瑙

新星

微光

流式传输实时音频

语音 API 支持使用块传输编码进行实时音频流式处理。这意味着可以在生成完整文件并使其可访问之前播放音频。

1
2
3
4
5
6
7
8
9
10
11
from openai import OpenAI

client = OpenAI()

response = client.audio.speech.create(
    model="tts-1",
    voice="alloy",
    input="Hello world! This is a streaming test.",
)

response.stream_to_file("output.mp3")

支持的输出格式

默认响应格式为“mp3”,但也可以使用其他格式,如“opus”、“aac”、“flac”和“pcm”。

  • Opus:用于 Internet 流式传输和通信,低延迟。
  • AAC:用于数字音频压缩,YouTube、Android、iOS 首选。
  • FLAC:用于无损音频压缩,深受音频爱好者的青睐,用于存档。
  • WAV:未压缩的 WAV 音频,适用于低延迟应用程序,以避免解码开销。
  • PCM: 与 WAV 类似,但包含 24kHz(16 位带符号,低端)的原始样本,没有标头。

支持的语言

TTS 模型在语言支持方面通常遵循 Whisper 模型。Whisper 支持以下语言,尽管当前的语音已针对英语进行了优化,但性能仍然良好:

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

您可以通过以您选择的语言提供输入文本来生成这些语言的语音音频。

常见问题

如何控制生成的音频的情感范围?

没有直接的机制来控制生成的音频的情感输出。某些因素可能会影响输出音频,例如大小写或语法,但我们对这些因素的内部测试得出的结果喜忧参半。

我可以创建我自己的声音的自定义副本吗?

不,我们不支持。

我是否拥有输出的音频文件?

是的,就像我们 API 的所有输出一样,创建它们的人拥有输出。您仍然需要通知最终用户,他们听到的是 AI 生成的音频,而不是真人与他们交谈。