文本转语音

学习如何将文本转换为类人的口头音频。

介绍

音频 API 提供了一个基于我们的 TTS(文本转换为语音)模型的 speech 端点。它具有 6 个内置的语音,可用于:

  • 朗读书面的博客文章
  • 生成多种语言的口头音频
  • 使用流式传输实现实时的音频输出

以下是 alloy 语音的示例:

播放

请注意,我们的使用策略要求您向最终用户明确表示,他们听到的 TTS 语音是由人工智能生成的,而不是人类的语音。

快速启动

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

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-1 模型提供了最低的延迟,但比 tts-1-hd 模型的质量较低。由于音频的生成方式,tts-1 在某些情况下可能会生成更多噪音的内容。在某些情况下,音频可能没有明显的差异,这取决于您的听觉设备和个人的听觉能力。

语音选项

尝试不同的语音(alloyechofableonyxnovashimmer),以找到符合您想要的音调和听众的语音。当前的语音已针对英语进行了优化。

合金

播放

回声

播放

寓言

播放

缟玛瑙

播放

新星

播放

闪光

播放

支持的输出格式

默认的响应格式是 "mp3",但也支持其他格式,如 "opus"、"aac"、"flac" 和 "pcm"。

支持的语言

TTS 模型通常遵循 Whisper 模型的语言支持。Whisper 支持以下语言,并且在当前的语音已经针对英语进行了优化之际,也表现得很好:

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

您可以通过在所需语言中提供输入文本来生成口头音频。

流媒体实时音频

语音 API 提供了对实时音频流的支持,使用了分块传输编码。这意味着音频可以在生成并使其可访问之前进行播放。

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")

常见问题解答

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

没有直接的机制来控制生成的音频的情感表达。某些因素(如大写字母或语法)可能会影响音频的输出,但我们的内部测试表明这些因素的效果不一。

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

不,我们不支持这个功能。

我拥有输出的音频文件吗?

是的,就像我们的 API 的所有输出一样,创建它们的人拥有输出。您仍然有责任向最终用户通知,他们听到的是由人工智能生成的音频,而不是人类的语音。

Was this page helpful?