学习怎样将文本转化为生动的语音
1 介绍
Audio API提供一个基于TTS(text-to-speech)模型的语音端点。拥有6个内置的语音可供使用:
- 叙述一篇博客文章
- 使用多种语言生成对话音频
- 使用流式将语音实时输出
2 快速开始
语音端点采取3个关键输入:模型,要转化为音频的文本,用来生成音频的声音类型。一个简单的请求案例:
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格式的对话音频,也可以进行配置生成我们支持的音频格式。
3 音频质量
对于实时的语音应用场景,标准的tts-1模型延时最低,但质量不如tts-1-hd模型。由于音频生成的方式,Tts-1可能比Tts-1 -hd生成更多静态内容。在某些情况下,生成的音频依赖于你的听力设备和个人情况,可能没有明显的不同。
4 音频选择
尝试不同的声音(合金声、回声声、回声声、缟玛瑙声、新星声和微光声),找到一个与你想要的音调和听众相匹配的声音。当前的声音是针对英语优化的。
5 支持的输入格式
默认的输出格式是MP3,但其它的格式像:opus acc flac pcm也可以用:
- OPUS:用于互联网流媒体和通信,低延迟。
- AAC:用于数字音频压缩,YouTube, Android, iOS首选。
- FLAC:用于无损音频压缩,受到音频爱好者的青睐,用于存档。
- WAV:未压缩的WAV音频,适用于低延迟应用程序,以避免解码开销。
- PCM:类似于WAV,但包含24kHz(16位带符号,低端)的原始样本,没有报头。
6 支持的语言
TTS模型通常遵循Whisper模型对语言的支持。Whisper不仅当前的语音英文进行了优化,还支持下列的语言,并且表现也良好:
阿非利卡语,阿拉伯语,亚美尼亚语,阿塞拜疆语,白俄罗斯语,波斯尼亚语,保加利亚语,加泰罗尼亚语,中文,克罗地亚语,捷克语,丹麦语,荷兰语,英语,爱沙尼亚语,芬兰语,法语,加利西亚语,德语,希腊语,希伯来语,印地语,匈牙利语,冰岛语,印度尼西亚语,意大利语,日语,卡纳达语,哈萨克语,韩语,拉脱维亚语,立陶宛语,马其顿语,马来语,马拉地语,毛利语,尼泊尔语,挪威语,波斯语,波兰语,葡萄牙语,罗马尼亚语,俄语,塞尔维亚语,斯洛伐克语,斯洛文尼亚语,西班牙语,斯瓦希里语,瑞典语,他加洛语,泰米尔语,泰语,土耳其语,乌克兰语,乌尔都语,越南语和威尔士语。
你可能用你选择的语言文本生成一个对话音频
7 流式实时音频
Speech 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")