自定义调整

自定义调整有助于 libgspeech 更频繁地识别特定字词或短语,而不是其他建议的选项。本文档将引导您完成提高 libgspeech 在转录您的音频数据时识别您需要的单词和/或短语的可能性的过程。

如需使识别模型偏向于特定的字词或短语,请在 SpeechAdaptation 对象的 phrase_sets 字段中将它们作为 phrases 传递。将 SpeechAdaptation 对象分配给请求中 RecognitionConfig 对象的 adaptation 字段:

adaptation: {
  phrase_sets {
    phrases: "weather is hot"
    phrases: "weather is cold"
}

使用类调整模型

代表自然语言中的常见概念,例如数值和日历日期。类让您可以提高大量字词组的转录准确率,这些字词组映射到常见概念,但不总是包含相同字词或词组。

例如,假设您的音频数据包含讲话人说出其街道地址的录音。您的某个录音可能是讲话人说“My house is 123 Main Street, the fourth house on the left”。在这种情况下,您希望 Speech-to-Text 将第一个数字序列(“123”)识别为地址而不是序号(“一百二十三”)。不过,并非所有人都住在“123 Main Street”。用短语列出每个可能的街道地址是不切实际的。相反,您可以使用类来指示应该识别门牌号,无论这串数字实际是什么。

如需使用类令牌,请将其添加到您的语音自适应短语中。您可以将短语用作短语数组中的独立项,也可以将其嵌入较长的多字词短语中。例如,如需改善源音频中地址门牌号的转录结果,请使用 $ADDRESSNUM 类。您可以在较长的短语中以字符串的形式添加类令牌(“my address is $ADDRESSNUM”),以指明地址门牌号。但是,如果音频中包含类似但不相同的短语,例如“I am at 123 Main Street”,则此短语无效。为帮助识别相似的短语,您可以额外添加同一个类令牌:

adaptation: {
  phrase_sets {
    phrases: "my address is $ADDRESSNUM"
    phrases: "$ADDRESSNUM"
  }
}

使用自定义类调整模型

自定义类是相关项或值的自定义列表。

使用预定义的自定义类

Google 提供了几个预定义的自定义类(例如 contactsnavigation),我们建议将这些类用于设备端 Speech-to-Text。这些自定义类很可能表示您的应用可能具有的短语,并且可产生比您自己的自定义类更高的识别准确率。

预定义的自定义类分为两类,在请求中需要以不同方式引用:

  • 您需要为其提供 phrasesitems 的自定义类,例如 contacts

  • 仅由 custom_class_id 引用的自定义类,例如 navigation

要使用需要 phrasesitems 的自定义类,请创建一个包含 items 中的每个值的 CustomClass 对象,并通过 phrases 中的 custom_class_id 引用此类,例如:

adaptation: {
  custom_classes {
    custom_class_id: "contacts"
    items: "Asia"
    items: "Alex"
    items: "Nuno Pereira"
  }
  phrase_sets {
    phrases: "call ${contacts}"
  }
}

您无需为 navigation 命令提供 phrasesitems。在这种情况下,phrases 列表是 Google 提供的列表,其中包含用户在该情境中可能使用的最常见短语(例如,“take highway”)。

adaptation: {
  custom_classes {
    custom_class_id: "navigation"
  }
}

使用您自己的自定义类

如果您有预定义的自定义类无法满足的特定业务需求,则可以创建自定义类。例如,您要转换的音频数据可能包含数百个区域性餐厅中的任何一个的名称。餐馆名称在普通语音中相对不常见,因此被识别模型选为“正确”答案的可能性较小,除非您在自定义类中指定这些名称。例如:

adaptation: {
  custom_classes {
    custom_class_id: "restaurants"
    items: "sushido"
    items: "taneda sushi"
    items: "altura"
  }
  phrase_sets {
    phrases: "visit restaurants like ${restaurants}"
  }
}