Text to Speech 入门
IBM Watson® Text to Speech 服务用于将书面文本转换为自然发音的语音,从而为应用程序提供语音合成功能。 本教程以 curl
为基础,可帮助您快速入门。 以下示例说明了如何调用服务的 POST
和 GET /v1/synthesize
方法来请求音频流。
本教程使用 curl
命令行实用程序来演示 REST API 调用。 有关 curl
的更多信息,请参阅 将 curl 与 Watson 示例配合使用。
IBM Cloud 观看以下视频以获取 Text to Speech 服务入门的可视摘要。
准备工作
IBM Cloud
IBM Cloud
本教程使用 API 密钥进行认证。 在生产中,使用 IAM 令牌。 有关更多信息,请参阅 认证到 IBM Cloud。
IBM Cloud Pak for Data
IBM Cloud Pak for Data
在开始本教程之前,必须安装并配置 Text to Speech 服务。 如需了解更多信息,请发送电子邮件 至 Watson,Cloud Pak for Data 提供演讲服务。
- 使用 Web 客户机,API 或命令行界面创建服务实例。 如需了解有关在 IBM Cloud Pak for Data 上创建服务实例的更多信息,请参阅 为 Watson 语音服务创建服务实例。
- 遵循 创建 Watson Speech 服务实例 中的指示信息以获取该实例的不记名令牌。 本教程使用不记名令牌向服务进行认证。
合成美国英语文本
以下命令使用 POST /v1/synthesize
方法将美国英语输入合成为音频。 请求使用语音 en-US_MichaelV3Voice
。 它以 WAV 格式生成音频。
可以使用浏览器或其他工具来播放本教程中示例所生成的音频文件。 有关更多信息,请参阅 播放音频文件。
-
发出以下命令以合成字符串 "hello world"。 请求生成名为
hello_world.wav
的 WAV 文件。IBM Cloud
curl -X POST -u "apikey:{apikey}" \ --header "Content-Type: application/json" \ --header "Accept: audio/wav" \ --data "{\"text\":\"hello world\"}" \ --output hello_world.wav \ "{url}/v1/synthesize?voice=en-US_MichaelV3Voice"
IBM Cloud Pak for Data IBM Software Hub
- 将
{token}
和{url}
替换为访问令牌,将 URL 替换为您的服务实例。
curl -X POST \ --header "Authorization: Bearer {token}" \ --header "Content-Type: application/json" \ --header "Accept: audio/wav" \ --data "{\"text\":\"hello world\"}" \ --output hello_world.wav \ "{url}/v1/synthesize?voice=en-US_MichaelV3Voice"
- 将
使用不同的语音和音频格式
以下命令再次使用 POST /v1/synthesize
方法将相同的美国英语输入合成为音频。 但是,此请求使用语音 en-US_AllisonV3Voice
并以缺省 Ogg 格式显式请求音频。
-
发出以下命令以合成字符串 "hello world",但声音不同。 请求生成名为
hello_world.ogg
的 Ogg 文件。IBM Cloud
curl -X POST -u "apikey:{apikey}" \ --header "Content-Type: application/json" \ --data "{\"text\":\"hello world\"}" \ --output hello_world.ogg \ "{url}/v1/synthesize?voice=en-US_AllisonV3Voice"
IBM Cloud Pak for Data IBM Software Hub
- 将
{token}
和{url}
替换为访问令牌,将 URL 替换为您的服务实例。
curl -X POST \ --header "Authorization: Bearer {token}" \ --header "Content-Type: application/json" \ --header "Accept: audio/wav" \ --data "{\"text\":\"hello world\"}" \ --output hello_world.wav \ "{url}/v1/synthesize?voice=en-US_AllisonV3Voice"
- 将
合成西班牙语文本
以下命令使用 GET /v1/synthesize
方法将西班牙语输入合成为音频文件。 GET
方法包含三个查询参数: accept
用于指定音频格式,text
用于指定音频的输入文本,voice
用于指定西班牙语语音。 由于 accept
和 text
作为查询参数传递,请求被 URL 编码。
-
发出以下命令来合成字符串“hola mundo”,并生成名为
hola_mundo.wav
的 WAV 文件。IBM Cloud
curl -X GET -u "apikey:{apikey}" \ --output hola_mundo.wav \ "{url}/v1/synthesize?accept=audio%2Fwav&text=hola%20mundo&voice=es-ES_EnriqueV3Voice"
IBM Cloud Pak for Data IBM Software Hub
- 将
{token}
和{url}
替换为访问令牌,将 URL 替换为您的服务实例。
curl -X POST \ --header "Authorization: Bearer {token}" \ --output hola_mundo.wav \ "{url}/v1/synthesize?accept=audio%2Fwav&text=hola%20mundo&voice=es-ES_EnriqueV3Voice"
- 将
后续步骤
- 要尝试一个接受文本并生成不同声音的语音的示例应用程序,请查看 Text to Speech 演示。
- 有关服务的接口和功能的更多信息,请参阅服务功能。
- 如需了解服务界面的所有方法,请参阅 API和SDK参考。