最佳做法

本文档包含有关如何向 Media Translation API 提供语音数据的建议。这些指导准则旨在提高操作效率和准确性,同时保证服务的合理响应时间。如果发送到该服务的数据在本文档中所述的参数范围内,则使用 Media Translation API 可以达到最佳效果。

为达到最佳效果… 如果可能,请避免…
以 16000 Hz 或更高的采样率采集音频。否则,请将 sample_rate_hertz 设置为与音频源的原生采样率匹配的值(不要重新采样)。 采样率较低可能会降低识别准确性,这会进而降低翻译的准确性。但是,应避免重新采样。例如,电话中的原生采样率通常为 8000 Hz,这也是应该发送到该服务的采样率。
使用无损编解码器录制和传输音频。建议使用 FLACLINEAR16 在录制或传输过程中使用 mu-law 或其他有损编解码器可能会降低识别准确率。如果您的音频已经采用了不受此 API 支持的编码,请将其转码为无损 FLACLINEAR16。如果您的应用必须使用有损编解码器以节省带宽,我们建议使用 AMR_WBOGG_OPUS 编解码器(排名分先后)。
使用 LINEAR16 编解码器以获得良好的流式传输响应延迟时间。 其他类型的编解码器需要额外的解码步骤,因此可能会增加流式传输响应的延迟时间。对于相同的编解码器,采样率越高,延迟时间可能就越长。
将麦克风放置在尽可能靠近讲话人的位置,尤其是当存在背景噪音时。 识别器服务旨在忽略背景音和噪音而不进行额外的降噪。但是,如果背景噪音和回声过多,就可能会降低准确性,特别是在还使用了有损编解码器的情况下。
使用增强型模型,以便在背景音频杂乱的情况下获得更好的效果。 非增强型模型对于嘈杂/有回声的音频可能效果不佳。
使用语言代码“language-region”指定 source_language_code,使用不带区域的语言代码(zh-CN 和 zh-TW 除外)指定 target_language_code 如果未在 source_language_code 中指定“region”,我们将选择默认区域(可能与实际语音地区不匹配),这会降低准确度。target_language_code 不需要指定地区,因为译文是文本,但 zh-CN 和 zh-TW 的文本有所不同。

单独一条话语

对于简短的查询或命令,请使用 StreamingTranslateSpeechConfig 并将 single_utterance 设置为 true。这可以优化对短话语的识别,同时还可以最大限度地缩短延迟。 此外,在长时间无声或暂停讲话时,服务会自动停止翻译。 使用“单独一条话语”模式时,服务将在响应中返回 END_OF_SINGLE_UTTERANCE 作为 speech_event_type。客户端应在收到 END_OF_SINGLE_UTTERANCE 响应时停止发送请求,并继续接收剩余的响应。

帧大小

流式传输识别可在从麦克风或其他音频源采集音频时实时识别音频。音频流会拆分为帧并以连续的 StreamingTranslateSpeechRequest 消息的形式发送。任何帧大小都可以接受。 较大的帧效率更高,但延迟时间会有所延长。为了在延迟时间和效率之间实现达到平衡,建议您使用 100 毫秒的帧大小。

音频预处理

最好使用品质良好的麦克风并将其放置在适当位置,以便提供尽可能纯净的音频。但是,在将音频发送到服务之前对其应用降噪信号处理通常会降低识别准确性。识别服务旨在处理嘈杂的音频。

为达到最佳效果,请注意以下事项:

  • 将麦克风放置在尽可能靠近讲话人的位置,尤其是当存在背景噪音时。
  • 避免音频剪辑。
  • 不要使用自动增益控制 (AGC)。
  • 应停用所有降噪处理。
  • 听听一些样本音频。该音频应该听起来很清晰,没有失真或意外的噪音。

请求配置

请务必准确地描述随您的请求一起发送到 Media Translation API 的音频数据。确保请求的 TranslateSpeechConfig 描述了正确的 sample_rate_hertzaudio_encoding 以及 source_language_codetarget_language_code,从而保证为您的请求生成最准确的转录和结算。