flutter:: 我可以在没有发音校正的情况下使用语音转文本 api 吗?

Posted

技术标签:

【中文标题】flutter:: 我可以在没有发音校正的情况下使用语音转文本 api 吗?【英文标题】:flutter:: Can I use speech to text api without pronunciation correction? 【发布时间】:2021-09-15 10:12:02 【问题描述】:

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

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

有没有什么方法可以使用语音转文字的api,而没有纠正发音的功能?

【问题讨论】:

【参考方案1】:

没有发音校正的使用 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 的请求中,将 SpeechContext 对象分配给 RecognitionConfig 对象的 SpeechContexts 字段。以下 sn-p 显示了发送到 Speech-to-Text API 的 JSON 有效负载的一部分。 JSON sn-p 为语音适应提供了“天气”一词。请参阅此doc 了解更多信息。

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

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

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

【讨论】:

以上是关于flutter:: 我可以在没有发音校正的情况下使用语音转文本 api 吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有固定高度的情况下使动态div溢出

是否可以在不安装 Excel 的情况下使其自动化?

在没有更多上下文的情况下使表达式类型模棱两可

在没有更多上下文的情况下使表达式类型模棱两可

VueJS - 如何在没有任何硬代码的情况下使组件完全动态化

如何在没有单击事件的情况下使特定的 TabItem 获得对 TabControl 的关注?