您可以使用 Cloud Text-to-Speech 将字词和句子转换为自然人类语音的 base64 编码音频数据。然后,您可以通过对 base64 数据进行解码,将音频数据转换为 MP3 等可播放的音频文件。Cloud Text-to-Speech API 接受的输入数据包括原始文本或语音合成标记语言 (SSML)。
本文档介绍如何使用 Cloud TTS 从文本或 SSML 输入创建音频文件。如果您不熟悉语音合成或 SSML 等概念,建议您阅读文章 Cloud TTS 基础知识。
这些示例要求您已安装并初始化 Google Cloud CLI。如需了解如何设置 gcloud CLI,请参阅向 Cloud TTS 进行身份验证。
将文本转换为合成语音音频
以下代码示例演示如何将字符串转换为音频数据。
您可以通过多种方式配置语音合成的输出,包括选择独特的语音或调制输出的音高、音量、语速和采样率。
协议
如需了解完整的详细信息,请参阅 text:synthesize API 端点。
要从文本合成音频,请向 text:synthesize 端点发出 HTTP POST 请求。在 POST 请求正文的 voice 配置部分指定要合成的语音类型,在 input 部分的 text 字段中指定要合成的文本,并在 audioConfig 部分指定要创建的音频类型。
以下代码段将向 text:synthesize 端点发送合成请求并将结果保存到名为 synthesize-text.txt 的文件中。 将 PROJECT_ID 替换为您的项目 ID。
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':'Android is a mobile operating system developed by Google, based on the Linux kernel and designed primarily for touchscreen mobile devices such as smartphones and tablets.' }, 'voice':{ 'languageCode':'en-gb', 'name':'en-GB-Standard-A', 'ssmlGender':'FEMALE' }, 'audioConfig':{ 'audioEncoding':'MP3' } }" "https://texttospeech.googleapis.com/v1/text:synthesize" > synthesize-text.txt
Cloud Text-to-Speech API 将返回包含在 JSON 输出中的 base64 编码数据格式的合成音频。synthesize-text.txt 文件中的 JSON 输出类似于以下代码片段。
{
"audioContent": "//NExAASCCIIAAhEAGAAEMW4kAYPnwwIKw/BBTpwTvB+IAxIfghUfW.."
}
如需将 Cloud Text-to-Speech API 的合成结果解码为 MP3 音频文件,请从 synthesize-text.txt 文件所在的目录运行以下命令。
cat synthesize-text.txt | grep 'audioContent' | \ sed 's|audioContent| |' | tr -d '\n ":{},' > tmp.txt && \ base64 tmp.txt --decode > synthesize-text-audio.mp3 && \ rm tmp.txt
Go
如需了解如何安装和使用 Cloud TTS 客户端库,请参阅 Cloud TTS 客户端库。 如需了解详情,请参阅 Cloud TTS Go API 参考文档。
如需向 Cloud TTS 进行身份验证,请设置应用默认凭证。 如需了解详情,请参阅为本地开发环境设置身份验证。
Java
如需了解如何安装和使用 Cloud TTS 客户端库,请参阅 Cloud TTS 客户端库。 如需了解详情,请参阅 Cloud TTS Java API 参考文档。
如需向 Cloud TTS 进行身份验证,请设置应用默认凭证。 如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js
如需了解如何安装和使用 Cloud TTS 客户端库,请参阅 Cloud TTS 客户端库。 如需了解详情,请参阅 Cloud TTS Node.js API 参考文档。
如需向 Cloud TTS 进行身份验证,请设置应用默认凭证。 如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需了解如何安装和使用 Cloud TTS 客户端库,请参阅 Cloud TTS 客户端库。 如需了解详情,请参阅 Cloud TTS Python API 参考文档。
如需向 Cloud TTS 进行身份验证,请设置应用默认凭证。 如需了解详情,请参阅为本地开发环境设置身份验证。
其他语言
C#: 请按照客户端库页面上的 C# 设置说明操作,然后访问 .NET 版 Cloud TTS 参考文档。
PHP:请按照客户端库页面上的 PHP 设置说明操作,然后访问 PHP 版 Cloud TTS 参考文档。
Ruby:请按照客户端库页面上的 Ruby 设置说明操作,然后访问 Ruby 版 Cloud TTS 参考文档。
将 SSML 转换为合成语音音频
在您的音频合成请求中使用 SSML 可以生成更像自然人类语音的音频。具体来说,SSML 可以让您更精细地控制音频输出如何表示语音中的暂停或音频中日期、时间、首字母缩写词和缩写词的发音。
如需详细了解 Cloud Text-to-Speech API 支持的 SSML 元素,请参阅 SSML 参考。
协议
如需了解完整的详细信息,请参阅 text:synthesize API 端点。
要从 SSML 合成音频,请向 text:synthesize 端点发出 HTTP POST 请求。在 POST 请求正文的 voice 配置部分指定要合成的语音类型,在 input 部分的 ssml 字段中指定要合成的 SSML,并在 audioConfig 部分指定要创建的音频类型。
以下代码段将向 text:synthesize 端点发送合成请求并将结果保存到名为 synthesize-ssml.txt 的文件中。 将 PROJECT_ID 替换为您的项目 ID。
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':{ 'ssml':'<speak>The <say-as interpret-as=\"characters\">SSML</say-as> standard is defined by the <sub alias=\"World Wide Web Consortium\">W3C</sub>.</speak>' }, 'voice':{ 'languageCode':'en-us', 'name':'en-US-Standard-B', 'ssmlGender':'MALE' }, 'audioConfig':{ 'audioEncoding':'MP3' } }" "https://texttospeech.googleapis.com/v1/text:synthesize" > synthesize-ssml.txt
Text-to-Speech API 将返回包含在 JSON 输出中的 base64 编码数据格式的合成音频。synthesize-ssml.txt 文件中的 JSON 输出类似于以下代码片段。
{
"audioContent": "//NExAASCCIIAAhEAGAAEMW4kAYPnwwIKw/BBTpwTvB+IAxIfghUfW.."
}
要将 Text-to-Speech API 的合成结果解码为 MP3 音频文件,请从 synthesize-ssml.txt 文件所在的目录运行以下命令。
cat synthesize-ssml.txt | grep 'audioContent' | \ sed 's|audioContent| |' | tr -d '\n ":{},' > tmp.txt && \ base64 tmp.txt --decode > synthesize-ssml-audio.mp3 && \ rm tmp.txt
Go
如需了解如何安装和使用 Cloud TTS 客户端库,请参阅 Cloud TTS 客户端库。 如需了解详情,请参阅 Cloud TTS Go API 参考文档。
如需向 Cloud TTS 进行身份验证,请设置应用默认凭证。 如需了解详情,请参阅为本地开发环境设置身份验证。
Java
如需了解如何安装和使用 Cloud TTS 客户端库,请参阅 Cloud TTS 客户端库。 如需了解详情,请参阅 Cloud TTS Java API 参考文档。
如需向 Cloud TTS 进行身份验证,请设置应用默认凭证。 如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js
如需了解如何安装和使用 Cloud TTS 客户端库,请参阅 Cloud TTS 客户端库。 如需了解详情,请参阅 Cloud TTS Node.js API 参考文档。
如需向 Cloud TTS 进行身份验证,请设置应用默认凭证。 如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需了解如何安装和使用 Cloud TTS 客户端库,请参阅 Cloud TTS 客户端库。 如需了解详情,请参阅 Cloud TTS Python API 参考文档。
如需向 Cloud TTS 进行身份验证,请设置应用默认凭证。 如需了解详情,请参阅为本地开发环境设置身份验证。
其他语言
C#: 请按照客户端库页面上的 C# 设置说明操作,然后访问 .NET 版 Cloud TTS 参考文档。
PHP:请按照客户端库页面上的 PHP 设置说明操作,然后访问 PHP 版 Cloud TTS 参考文档。
Ruby:请按照客户端库页面上的 Ruby 设置说明操作,然后访问 Ruby 版 Cloud TTS 参考文档。
亲自尝试
如果您是 Google Cloud 新手,请创建一个账号来评估 Cloud TTS 在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
免费试用 Cloud TTS