IBM Cloud Docs
Text to Speech 入门

Text to Speech 入门

IBM Watson® Text to Speech 服务用于将书面文本转换为自然发音的语音,从而为应用程序提供语音合成功能。 本教程以 curl 为基础,可帮助您快速入门。 以下示例说明了如何调用服务的 POSTGET /v1/synthesize 方法来请求音频流。

本教程使用 curl 命令行实用程序来演示 REST API 调用。 有关 curl 的更多信息,请参阅 将 curl 与 Watson 示例配合使用

IBM Cloud 观看以下视频以获取 Text to Speech 服务入门的可视摘要。

准备工作

IBM Cloud

IBM Cloud

  • 创建服务的实例:

    1. 转至 IBM Cloud 目录中的 Text to Speech 页面。
    2. 注册免费的 IBM Cloud 帐户或登录。
    3. 阅读并同意许可协议的条款。
    4. 单击创建
  • 复制凭证以向服务实例进行认证:

    1. 查看服务实例的 管理 页面:

      • 如果您位于服务实例的“入门”页面上,请单击主题列表中的 管理 条目。
      • 如果您位于“资源列表”页面上,请在 名称 列中展开 AI/ Machine Learning 分组,然后单击服务实例的名称。
    2. 在“管理”页面上,单击 凭证 框中的 显示凭证

    3. 复制服务实例的 API KeyURL 值。

本教程使用 API 密钥进行认证。 在生产中,使用 IAM 令牌。 有关更多信息,请参阅 认证到 IBM Cloud

IBM Cloud Pak for Data

IBM Cloud Pak for Data

在开始本教程之前,必须安装并配置 Text to Speech 服务。 如需了解更多信息,请发送电子邮件 至 Watson,Cloud Pak for Data 提供演讲服务

  1. 使用 Web 客户机,API 或命令行界面创建服务实例。 如需了解有关在 IBM Cloud Pak for Data 上创建服务实例的更多信息,请参阅 为 Watson 语音服务创建服务实例
  2. 遵循 创建 Watson Speech 服务实例 中的指示信息以获取该实例的不记名令牌。 本教程使用不记名令牌向服务进行认证。

合成美国英语文本

以下命令使用 POST /v1/synthesize 方法将美国英语输入合成为音频。 请求使用语音 en-US_MichaelV3Voice。 它以 WAV 格式生成音频。

可以使用浏览器或其他工具来播放本教程中示例所生成的音频文件。 有关更多信息,请参阅 播放音频文件

  1. 发出以下命令以合成字符串 "hello world"。 请求生成名为 hello_world.wav 的 WAV 文件。

    IBM Cloud

    • {apikey}{url} 替换为您的 API 密钥和 URL。
    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 格式显式请求音频。

  1. 发出以下命令以合成字符串 "hello world",但声音不同。 请求生成名为 hello_world.ogg 的 Ogg 文件。

    IBM Cloud

    • {apikey}{url} 替换为您的 API 密钥和 URL。
    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 用于指定西班牙语语音。 由于 accepttext 作为查询参数传递,请求被 URL 编码。

  1. 发出以下命令来合成字符串“hola mundo”,并生成名为 hola_mundo.wav 的 WAV 文件。

    IBM Cloud

    • {apikey}{url} 替换为您的 API 密钥和 URL。
    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参考