使用语音自适应功能,借助Google Speech API更好地识别首字母缩写词

问题描述

我正在使用Google Speech Streaming API,希望它能够识别不寻常的缩写。

我曾尝试在语音识别请求中添加首字母缩写“ LHD”,但是当它确实识别出首字母缩写时,它就是LED。到目前为止,它尚未识别出LHD。

有什么方法可以提高识别度或更好地表明这是首字母缩写词?

我的识别请求配置为:

{
    encoding: 'LINEAR16',sampleRateHertz: 16000,languageCode: 'en-US',model: 'video',enableAutomaticpunctuation: true,speechContexts: [ {
        phrases : [
            "LHD"
        ]
    } ]
  },interimResults: true
}

解决方法

您应该添加“增强”。 如 Google Speech To Text docs' Fine-tune transcription results using boost 中所述:

默认情况下,模型自适应提供的效果相对较小,尤其是对于单字短语。模型适应提升功能允许您通过为某些短语分配比其他短语更多的权重来增加识别模型偏差。如果 1) 您已经实施了模型适应,并且 2) 您想进一步调整模型适应对转录结果的影响强度,我们建议您实施 boost。

尝试改变这个:

phrases : [
        "LHD"
    ]

为此:

phrases : [
      {
        "value": "LHD","boost": 10
      }
    ]

最后,你会得到这样的结果:

{
encoding: 'LINEAR16',sampleRateHertz: 16000,languageCode: 'en-US',model: 'video',enableAutomaticPunctuation: true,speechContexts: [ {
    phrases : [
      {
        "value": "LHD","boost": 10
      }
    ]
  } 
],interimResults: true

}

编辑:我认为您必须使用 Google\Cloud\Speech\V1p1beta1,而不是 V1。

编辑2: 也看看使用 CustomClass。在这里你会明白为什么:Cloud Speech to text documentation Supported class tokens。您可以修改诸如“$OOV_CLASS_ALPHA_SEQUENCE”之类的类标记,这表示您需要首字母缩略词。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...