IBM Cloud Docs
使用音频格式

使用音频格式

IBM Watson® Text to Speech 服务可以返回多种常用音频格式(或 MIME 类型)的合成音频。 有关所有受支持格式的信息,请参阅支持的音频格式

要充分利用该服务,您需要了解服务返回的音频的采样率,以及如何根据需要指定不同的采样率。 有关更多信息,请参阅采样率。 对于所有格式,服务始终返回单声道音频。

采样率

采样率(或采样频率)是指每秒为音频生成的样本数。 采样率的度量单位为赫兹 (Hz) 或千赫兹 (kHz)。 例如,每秒 16,000 个样本的采样率等于 16,000 赫兹(或 16 千赫兹)。

在内部,服务始终会合成采样率为 22,050 赫兹的音频。 对于许多格式,服务也会返回具有此采样率的音频。 对于其他格式,服务会返回具有其他采样率的音频。

对于大多数格式,可以为音频指定其他采样率。 对于 "audio/alaw、"audio/l16 和 "audio/mulaw 格式,必须指定采样率。 通过在音频格式规范中包含 rate={integer} 参数,可以指定采样率。 有关更多信息,请参阅指定音频格式

在您指定采样率后,服务会从原先的 22,050 赫兹改为使用指定的采样率来对音频重新采样,然后再返回音频。 指定的采样率必须在 8 千赫兹到 192 千赫兹范围内。 某些音频格式将采样率限制为特定值;这些格式的描述中会指明此类限制。

确定采样率

要确定服务返回的任何音频的采样率,最可靠方法是从音频流本身中抽取信息。 要确定采样率,请对一些简单文本(例如,“hello world”)调用 /v1/synthesize 方法,并指定计划使用的格式和编码解码器。 然后,可以通过将音频流保存到文件并在音频播放器(例如,播放音频文件中列出的其中一个工具)中打开来获取采样率。

支持的音频格式

表 1 列出了请求合成音频时可用的音频格式。 默认情况下,该服务以 Opus 编解码器(audio/ogg;codecs=opus)返回 Ogg 格式的音频。

Safari 浏览器不支持 Ogg 音频格式。 如果您在 Safari 浏览器上使用Text to Speech服务,则必须指定不同的格式,以便服务返回音频。 有关更多信息,请参阅指定音频格式

服务为每种格式提供以下信息:

  • 缺省采样率显示所示格式的音频的采样率(如果未指定替代采样率)。
  • 必需参数指示必须为返回的音频指定采样率的格式。
  • 可选参数确定可以选择为返回的音频指定采样率或其他特征的格式。

音频格式列中所示,对于接受 codecs 参数的那些格式,可使用 ;(分号)来分隔格式规范的所有参数。 有关不同格式的更多信息,请参阅该表后面的各部分。

支持的音频格式汇总
音频格式 缺省采样率 必需参数 可选参数
audio/alaw rate={integer}
audio/basic 8000 赫兹
audio/flac 22,050 赫兹 rate={integer}
audio/l16 rate={integer} endianness=big-endian
endianness=little-endian
audio/mp3
音频/mpeg
22,050 赫兹 rate={integer}
audio/mulaw rate={integer}
音频/ogg
audio/ogg;codecs=vorbis
22,050 赫兹 rate={integer}
audio/ogg;codecs=opus 48,000 赫兹 rate={integer}
audio/wav 22,050 赫兹 rate={integer}
音频/网络
audio/webm;codecs=opus
48,000 赫兹
audio/webm;codecs=vorbis 22,050 赫兹 rate={integer}

audio/alaw 格式

法律 (audio/alaw) is a single-channel, lossy audio format that is encoded by using u-law (or mu-law) data that is similar to the audio/basic and audio/mulaw formats, though the A-law algorithm produces different signal characteristics. 必须使用此格式指定采样率。 例如,指定 "audio/alaw;rate=8000 表示采样频率为 8kHz 的音频。

由于返回音频的流媒体性质,生成的 A-law 音频可能无法在所有音频播放器中使用。 具体来说,音频流头中的 numSamples 属性会设置为 0,而不考虑音频的长度。

audio/basic 格式

基本音频是一种单声道有损音频格式,使用 8 位 u-law(或 mu-law)数据进行编码,采样率为 8 千赫兹。 此格式提供了最大众化的媒体类型。 此格式音频的采样率始终为 8 千赫兹。

有关更多信息,请参阅

audio/flac 格式

自由无损音频编码解码器 (FLAC) (.flac) 是一种无损压缩音频编码格式。 您可以选择指定缺省值 22,050 赫兹之外的采样率。

audio/l16 格式

线性 16 位脉冲编码调制 (PCM) 是一种未压缩的音频数据格式(通常为 .raw.pcm)。 对于此音频格式,必须指定采样率。 例如,指定 audio/l16;rate=16000 表示采样率为 16 千赫兹的音频。

您可以选择使用 endianness 参数来指定音频的字节序。 字节序指示底层计算机体系结构如何对数据字节排序:

  • 大尾数法 (endianness=big-endian) 按最高有效位对数据排序。
  • 小尾数法 (endianness=little-endian) 按最低有效位对数据排序。

例如,指定 audio/l16;rate=16000;endianness=big-endian 可获取采样率为 16 千赫兹并以大尾数法顺序返回的音频。 如果省略 endianness,那么缺省值为 little-endian。 (仅对于 audio/l16 格式,指定 endianness 会有问题,因为该格式不包含头。 对于其他格式,指定 endianness 不会有问题。)

有关详细信息,请参阅 IETF Request for Comment(RFC)2586

audio/mp3 和 audio/mpeg 格式

MP3运动图像专家组 (MPEG) 是一种有损数据压缩格式(MP3 和 MPEG 指的是同一格式)。 您可以选择指定缺省值 22,050 赫兹之外的采样率。

audio/mulaw 格式

8 位 mu-law(或 u-law)音频是一种单声道有损音频格式,使用 8 位 mu-law 数据进行编码。 对于此音频格式,必须指定采样率。 例如,指定 audio/mulaw;rate=16000 表示采样率为 16 千赫兹的音频。

audio/ogg 格式

Ogg 格式 (.ogg) 是由 Xiph.org Foundation 维护的免费开放式容器格式。 对于该格式,可以指定 codecs 参数来请求使用下列其中一个编码解码器压缩的音频流:

  • Opus 编码解码器,通过指定 audio/ogg;codecs=opus。 可以选择指定缺省值 48,000 赫兹之外的采样率。 只有以下值是有效的采样率:480002400016000120008000。 如果指定的值不是上述其中一个值,那么服务会返回错误。

    当前限制会导致服务忽略有效的采样率。 服务始终会返回采样率为 48 千赫兹的音频。

  • Vorbis 编码解码器,通过指定 audio/ogg;codecs=vorbis 或简单地指定 audio/ogg。 您可以选择指定缺省值 22,050 赫兹之外的采样率。

这两种编码解码器都是免费开放式有损音频压缩格式。 Opus 是首选编码解码器,但根据 Ogg 规范,如果您省略了编码解码器,服务将返回 Vorbis 格式的音频。 如果完全省略了音频格式,缺省情况下,服务会返回使用 Opus 编码解码器的 Ogg 格式音频。

有关更多信息,请参阅

audio/wav 格式

波形音频文件格式 (WAV) (.wav) 是一种标准容器格式,通常用于未压缩的音频位流,但也可以包含压缩音频。 您可以选择指定缺省值 22,050 赫兹之外的采样率。

由于所返回音频的流式性质,生成的 WAV 音频可能无法在所有音频播放器中正常使用。 具体来说,音频流头中的 numSamples 属性会设置为 0,而不考虑音频的长度。

audio/webm 格式

Web 媒体 (WebM) (.webm) 是一种开放式媒体文件格式。 对于该格式,可以指定 codecs 参数来请求使用下列其中一个编码解码器压缩的音频流:

  • Opus 编码解码器,通过指定 audio/webm;codecs=opus 或简单地指定 audio/webm。 此格式音频的采样率始终为 48 千赫兹。
  • Vorbis 编码解码器,通过指定 audio/webm;codecs=vorbis。 您可以选择指定缺省值 22,050 赫兹之外的采样率。

这两种编码解码器都是免费开放式有损音频压缩格式。 Opus 是首选编码解码器。

有关更多信息,请参阅

指定音频格式

缺省情况下,服务会返回 audio/ogg;codecs=opus 格式的音频。 您可以为 HTTP 或 WebSocket 接口指定不同的音频格式。

  • 采用 HTTP GETPOST /v1/synthesize 方法时,可以使用 Accept 请求头或 accept 查询参数来指定格式。
    • 如果使用 Accept 请求头,请指定格式和任何其他参数,如以下示例中所示。 该示例指定 audio/l16 格式和 16,000 赫兹的采样率。

      audio/l16;rate=16000
      
    • 如果使用 accept 查询参数,那么必须对格式和任何其他参数进行 URL 编码,如以下示例中所示。 该示例指定的格式和采样率与上一个示例相同。

      audio%2Fl16%3Brate%3D16000
      
    要接收缺省格式的音频,请省略该头和查询参数。 有关更多信息,请参阅将文本合成为音频
  • 采用 WebSocket /v1/synthesize 方法时,必须针对为启动合成而传递的文本消息使用必需的 accept 参数来指定格式。 要接收缺省格式的音频,请将该参数的值指定为 */*。 有关更多信息,请参阅发送输入文本

播放音频文件

要播放服务生成的音频文件,请使用下列其中一个工具:

  • 网络浏览器,如Google Chrome™、Firefox® 或Microsoft® Internet Explorer®浏览器
  • 音频播放器,如 Audacity® audacityteam.org) 或 FFmpeg ffmpeg.org)