Gewichtung

Die Gewichtung hilft libgspeech, bestimmte Wörter oder Wortgruppen häufiger zu erkennen als andere Optionen, die sonst möglicherweise vorgeschlagen werden. In diesem Dokument wird beschrieben, wie Sie die Wahrscheinlichkeit erhöhen, dass libgspeech die Wörter und/oder Wortgruppen erkennt, die beim Transkribieren Ihrer Audiodaten erforderlich sind.

Um das Erkennungsmodell auf bestimmte Wörter oder Wortgruppen auszurichten, übergeben Sie diese im Feld phrase_sets eines SpeechAdaptation-Objekts als phrases. Weisen Sie das SpeechAdaptation-Objekt dem adaptation-Feld des RecognitionConfig-Objekts in Ihrer Anfrage zu:

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

Modelle mithilfe von Klassen gewichten

Klassen stehen für gängige Konzepte, die in natürlicher Sprache vorkommen, z. B. numerische Werte und Kalenderdaten. Mit einer Klasse können Sie die Transkriptionsgenauigkeit für große Wortgruppen, die zu einem gemeinsamen Konzept gehören, aber nicht immer identische Wörter oder Wortgruppen enthalten, verbessern.

Angenommen, Ihre Audiodaten enthalten Aufnahmen von Personen, die ihre Adresse nennen. In einer Audioaufnahme sagt jemand vielleicht: „Mein Haus befindet sich in der Hauptstraße 123. Es ist das vierte Haus auf der linken Seite.“ In diesem Fall soll Speech-to-Text die erste Ziffernfolge („123“) als Adresse und nicht als Ordinalzahl erkennen („einhundertdreiundzwanzigste“). Allerdings wohnen nicht alle Menschen in der „Hauptstraße 123“. Es ist unpraktisch, jede mögliche Adresse in Wortgruppen anzugeben. Stattdessen können Sie mithilfe einer Klasse dafür sorgen, dass eine Hausnummer unabhängig von der tatsächlichen Zahl erkannt wird.

Wenn Sie Klassentokens verwenden möchten, fügen Sie sie in Ihre Wortgruppen für die Sprachanpassung ein. Sie können Klassen entweder als eigenständige Elemente im Wortgruppenarray verwenden oder sie in längere Wortgruppen mit mehreren Wörtern einbetten. Verwenden Sie beispielsweise die Klasse $ADDRESSNUM, um die Transkription von Hausnummern aus der Audioquelle zu verbessern. Zum Angeben einer Hausnummer in einer größeren Wortgruppe können Sie das Klassentoken in einen String einfügen: „Meine Addresse ist $ADDRESSNUM“. Diese Wortgruppe ist jedoch nicht hilfreich, wenn die Audiodaten eine zwar ähnliche, aber nicht identische Wortgruppe enthalten, z. B. „Ich bin in der Hauptstraße 123“. Um die Erkennung ähnlicher Wortgruppen zu verbessern, ist es wichtig, zusätzlich das Klassentoken für sich allein anzugeben:

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

Benutzerdefinierte Klassen verwenden, um das Modell zu gewichten

Eine benutzerdefinierte Klasse ist eine benutzerdefinierte Liste verwandter Elemente oder Werte.

Vordefinierte benutzerdefinierte Klassen verwenden

Google bietet mehrere vordefinierte benutzerdefinierte Klassen wie contacts oder navigation, die für die Verwendung mit Speech-to-Text On-Device empfohlen werden. Diese benutzerdefinierten Klassen stellen wahrscheinlich Wortgruppen dar, die in Ihrer Anwendung möglicherweise vorkommen, und bieten eine bessere Erkennungsgenauigkeit als Ihre benutzerdefinierten Klassen.

Vordefinierte benutzerdefinierte Klassen sind in zwei Kategorien unterteilt, auf die Sie in Ihren Anfragen unterschiedlich verweisen müssen:

  • Benutzerdefinierte Klassen, für die Sie phrases und items angeben müssen, z. B. contacts.

  • Benutzerdefinierte Klassen, auf die nur von custom_class_id verwiesen wird, z. B. navigation.

Wenn Sie eine benutzerdefinierte Klasse verwenden möchten, die phrases und items erfordert, erstellen Sie ein CustomClass-Objekt, das jeden Wert in items enthält und auf diese Klasse durch ihre custom_class_id in Ihrer phrases verweist. Beispiel:

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

Für navigation-Befehle müssen Sie phrases und items nicht angeben. In diesem Fall ist die phrases-Liste eine von Google bereitgestellte Liste der häufigsten Wortgruppen, die Nutzer in diesem Kontext wahrscheinlich verwenden (z. B. „Nehmen Sie Autobahn“).

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

Eigene benutzerdefinierte Klassen verwenden

Es ist möglich, benutzerdefinierte Klassen zu erstellen, wenn Sie einen bestimmten geschäftlichen Bedarf haben, der von den vordefinierten benutzerdefinierten Klassen nicht erfüllt wird. Sie möchten beispielsweise Audiodaten transkribieren, die wahrscheinlich den Namen eines von mehreren hundert regionalen Restaurants enthalten. Restaurantnamen sind in der allgemeinen Sprache relativ selten und werden vom Erkennungsmodell wahrscheinlich nicht als „richtige“ Antwort ausgewählt, es sei denn, Sie geben die Namen in einer benutzerdefinierten Klasse an. Beispiel:

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