开发人员可以使用 Text-to-Speech 创建可播放音频格式的自然发音的合成人类语音。您可以使用由 Text-to-Speech 创建的音频数据文件来丰富应用功能或者扩大视频或录音等媒体(以确保遵守 Google Cloud Platform 服务条款,包括遵守所有适用法律)。
Text-to-Speech 会将文本或语音合成标记语言 (SSML) 输入转换为音频数据,例如 MP3 或 LINEAR16(WAV 文件中使用的编码)。
本文档介绍使用 Text-to-Speech 的基本概念。建议您先阅读快速入门,然后再深入研究 API 本身。
基本示例
Text-to-Speech 适用于向用户播放人类语音音频的任何应用。您可以使用它将任意字符串、字词和句子转换为表述相同内容的人的语音。
设想您有一个语音辅助应用,可以通过可播放音频文件,向您的用户提供自然语言反馈。您的应用可能会执行某个操作,然后向用户提供人类语音作为反馈。
例如,您的应用可能想要报告它已成功将某项活动添加到用户的日历中。您的应用会构建一个响应字符串向用户报告操作已成功,例如“我已将活动添加到您的日历中”。
使用 Text-to-Speech,您可以将该响应字符串转换为实际的人类语音以播放给用户,类似于下面提供的示例。
示例 1:Text-to-Speech 生成的音频文件
要创建类似于示例 1 的音频文件,请向 Text-to-Speech 发送请求,如以下代码片段所示。
curl -H "Authorization: Bearer "$(gcloud auth print-access-token) -H "x-goog-user-project: <var>PROJECT_ID</var>" -H "Content-Type: application/json; charset=utf-8" --data "{
'input':{
'text':'I\'ve added the event to your calendar.'
},
'voice':{
'languageCode':'en-gb',
'name':'en-GB-Standard-A',
'ssmlGender':'FEMALE'
},
'audioConfig':{
'audioEncoding':'MP3'
}
}" "https://texttospeech.googleapis.com/v1/text:synthesize"
语音合成
将文本输入转换为音频数据的过程称为合成,而输出合成则称为合成语音。
Text-to-Speech 采用两种类型的输入:原始文本或 SSML 格式的数据(下文详解)。要创建新的音频文件,您可以调用 API 的 synthesize
端点。
语音合成过程会生成原始音频数据,格式为 base64 编码字符串。您必须先将 base64 编码字符串解码为音频文件,应用才可以播放相应文件。大多数平台和操作系统都具备将 base64 文本解码为可播放媒体文件的工具。
语音
Text-to-Speech 生成自然人类语音的原始音频数据。也就是说,它生成的音频听上去像人在说话。当您向 Text-to-Speech 发送合成请求时,您必须指定“说出”字词的语音。
Text-to-Speech 有多种自定义语音供您选择。语音因语言、性别和口音(适用于某些语言)而异。例如,你可以创建模仿带有英国口音的女性说英语的声音音频,如以上示例 1您也可以将同一文本转换为不同的语音,比方说有澳大利亚口音的男性说英语的声音。
示例 2:使用 en-AU 讲话人生成的音频文件
要查看可用语音的完整列表,请参阅支持的语音。
WaveNet 语音
Text-to-Speech 还同其他传统合成语音一起,提供优质的 WaveNet 生成语音。用户发现 Wavenet 生成语音比其他合成语音更温暖,更像人声。
WaveNet 语音的主要不同之处在于生成语音所用的 WaveNet 模型。WaveNet 模型一直在使用真人发声的原始音频样本进行训练。因此,这些模型生成的合成语音,其音节、音位和字词的重音与音调更像人类。
比较以下两个合成语音样本。
示例 3:使用标准语音生成的音频文件
示例 4:使用 WaveNet 语音生成的音频文件
如需详细了解 WaveNet 生成语音的优点,请参阅语音类型。
其他音频输出设置
除了语音之外,您还可以配置语音合成创建的音频数据输出的其他方面。Text-to-Speech 支持您配置语速、音高、音量和采样率(单位为赫兹)。
如需了解详情,请参阅 AudioConfig 参考。
语音合成标记语言 (SSML) 支持
您可以通过语音合成标记语言 (SSML) 对文本进行标记来增强 Text-to-Speech 生成的合成语音。SSML 可让您在 Text-to-Speech 生成的音频数据中插入暂停、首字母缩写词发音或其他细节。Text-to-Speech 支持一部分可用的 SSML 元素。
例如,您可以通过提供具有标记序数词的 SSML 输入的 Text-to-Speech 来确保合成语音正确地读出序数词。
示例 5:从纯文本输入生成的音频文件
示例 6:从 SSML 输入生成的音频文件
如需详细了解如何从 SSML 合成语音,请参阅创建语音音频文件。