首页 > 解决方案 > flutter:: 我可以在没有发音校正的情况下使用语音转文本 api 吗?

问题描述

我正在制作一个使用谷歌云语音到带有颤动的文本 api 的应用程序。由于使用了google speech to text api,感觉这个api并没有把准确的发音转成文本,而是把发音改正后转成文本。

例如,如果我发音为“opple”,文本会自动转换为“apple”。我希望文本为'opple'。

有没有办法在没有纠正发音功能的情况下使用语音转文本 api?

标签: fluttergoogle-cloud-platformspeech-to-text

解决方案


没有发音校正就无法使用 Speech-to-Text API。Speech-to-Text API 在将音频转录为文本时会尝试识别已知单词。使用不存在的词,例如 [Opple, Epple, Ipple, Upple] 将导致类似于 Apple 的词。除非您使用存在任何这些单词的其他语言,否则 API 将自动更正发音。

作为一种解决方法,您可以使用语音适应功能来帮助 Speech-to-Text 比其他可能建议的选项更频繁地识别特定单词或短语。例如,假设您的音频数据通常包含“天气”一词。当 Speech-to-Text 遇到“天气”这个词时,您希望它更频繁地将这个词转录为“天气”而不是“是否”。在这种情况下,您可以使用语音适应来使 Speech-to-Text 偏向于识别“天气”。要增加 Speech-to-Text 在转录音频数据时识别“天气”一词的可能性,请在SpeechContext对象的短语字段中传递“天气”。您对 Speech-to-Text API 的请求中的对象。以下代码段显示了发送到 Speech-to-Text API 的 JSON 有效负载的一部分。JSON 片段为语音适应提供了“天气”一词。请参阅此文档以获取更多信息。

"config": {
    "encoding":"LINEAR16",
    "sampleRateHertz": 8000,
    "languageCode":"en-US",
    "speechContexts": [{
      "phrases": ["weather"]
    }]
}

默认情况下,语音适应提供的效果相对较小,尤其是对于单词短语。语音适应增强功能允许您通过为某些短语分配比其他短语更多的权重来增加识别模型偏差,以增强语音适应对转录结果的影响(即)更高的增强值赋予指定短语更多的重要性。以下代码段显示了 JSON 有效负载的示例。JSON 片段包括一个 RecognitionConfig 对象,该对象使用提升值来对“票价”和“公平”这两个词进行不同的加权。另请注意,“语音适应增强”是一项Beta 功能。有关详细信息,请参阅此文档

"config": {
    "encoding":"LINEAR16",
    "sampleRateHertz": 8000,
    "languageCode":"en-US",
    "speechContexts": [{
      "phrases": ["fare"],
      "boost": 18
     }, {
      "phrases": ["fair"],
      "boost": 2
     }]
  }

推荐阅读