Gewichtung

Mithilfe der Verzerrung kann Speech-to-Text On-Device bestimmte Wörter oder Wortgruppen häufiger erkennen als andere Optionen, die sonst möglicherweise vorgeschlagen werden. In diesem Dokument wird beschrieben, wie Sie die Wahrscheinlichkeit erhöhen, dass Cloud Speech-to-Text die Wörter und/oder Wortgruppen erkennt, die Sie beim Transkribieren Ihrer Audiodaten benötigen.

Wenn Sie das Erkennungsmodell auf bestimmte Wörter oder Wortgruppen ausrichten möchten, übergeben Sie sie als phrases im Feld phrase_sets eines SpeechAdaptation-Objekts. Weisen Sie in Ihrer Anfrage das Feld SpeechAdaptation dem Feld adaptation des Objekts RecognitionConfig zu:

config {
    encoding: LINEAR16
    sample_rate_hertz: 16000
    language_code: "en-US"
    adaptation: {
      phrase_sets {
        phrases: "weather is hot"
        phrases: "weather is cold"
    }
}

Klassen zur Verzerrung des Modells verwenden

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 Nummer erkannt wird.

Wenn Sie Klassentokens verwenden möchten, fügen Sie sie in Ihre Sprachanpassungsformulierungen ein. Sie können Klassen entweder als eigenständige Elemente im Wortgruppenarray verwenden oder 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 zum Verzerren des Modells verwenden

Vordefinierte benutzerdefinierte Klassen verwenden

Eine benutzerdefinierte Klasse ist eine benutzerdefinierte Liste verwandter Elemente oder Werte. 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 Ihre Anwendung haben kann, und bieten eine bessere Erkennungsgenauigkeit als Ihre eigenen benutzerdefinierten Klassen.

BEST PRACTICE: Sofern Sie das Modell nicht auf bestimmte Wortgruppen anwenden müssen, die nicht von den vordefinierten Klassen abgedeckt werden, empfehlen wir, die bereitgestellte vordefinierte Klassen, anstatt eigene Klassen zu erstellen.

WICHTIG: Wenn Sie für Ihr Unternehmen eine benutzerdefinierte Klasse erstellen müssen, kontaktieren Sie uns bitte, um eine maßgeschneiderte Lösung zu besprechen.

Vordefinierte benutzerdefinierte Klassen werden in zwei Kategorien gruppiert, auf die Sie in Ihren Anfragen anders 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}"
  }
}

Sie müssen phrases und items für navigation-Befehle 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, eigene benutzerdefinierte Klassen zu erstellen, wenn Ihre speziellen Geschäftsanforderungen von den vordefinierten benutzerdefinierten Klassen nicht erfüllt werden. 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 daher vom Erkennungsmodell wahrscheinlich nicht als „richtige“ Antwort ausgewählt, es sei denn, Sie geben die Namen in einer benutzerdefinierten Klasse an. Beispiele:

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