文档地址:https://platform.openai.com/docs/guides/text-to-speech

文字转语音(Text to speech)

介绍

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

  • 叙述一篇书面博客文章
  • 制作多种语言的语音音频
  • 使用流式传输提供实时音频输出

快速开始

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

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)

音频质量

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

语音选项

尝试不同的声音(alloy、echo、fable、onyx、nova和shimmer),找到一种与您所需的语气和听众相匹配的声音。当前的语音针对英语进行了优化。

支持的输出格式

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

  • Opus:用于互联网流媒体和通信,低延迟。
  • AAC:用于数字音频压缩,YouTube、Android、iOS 首选。
  • FLAC:用于无损音频压缩,受到音频爱好者存档的青睐。

支持的语言

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 的所有输出一样,创建它们的人拥有输出。您仍然需要告知最终用户,他们听到的是人工智能生成的音频,而不是真人与他们交谈。

作者:Jeebiz  创建时间:2023-12-17 11:14
最后编辑:Jeebiz  更新时间:2023-12-28 16:43