Angepasstes Sprachmodell für die Spracherkennung verwenden

Nachdem Sie ein angepasstes Sprachmodell erstellt und trainiert haben, können Sie es mithilfe des Abfrageparameters language_customization_id in Spracherkennungsanforderungen verwenden. Standardmäßig wird in einer Anforderung kein angepasstes Sprachmodell verwendet. Sie können mehrere angepasste Sprachmodelle für dasselbe Fachgebiet oder für verschiedene Fachgebiete erstellen. Sie können jedoch jeweils nur ein einziges angepasstes Sprachmodell für eine Spracherkennungsanforderung angeben. Beim Absetzen einer Anforderung müssen Sie die Berechtigungsnachweise für die Instanz des Service angeben, die Eigner des angepassten Modells ist.

Ein angepasstes Modell kann nur in Verbindung mit dem Basismodell verwendet werden, für das es erstellt wurde. Wenn Ihr angepasstes Modell nicht auf dem Standardmodell basiert, müssen Sie das betreffende Basismodell ebenfalls mit dem Abfrageparameter model angeben. Weitere Informationen finden Sie unter Standardmodell verwenden.

Informationen dazu, wie dem Service mitgeteilt wird, welche Gewichtung den Wörtern aus einem angepassten Modell zugewiesen werden soll, finden Sie unter Gewichtung für Anpassung verwenden. Beispiele für die Verwendung einer Grammatik mit einem angepassten Sprachmodell finden Sie im Abschnitt Grammatik für Spracherkennung verwenden.

Beispiele zur Verwendung eines angepassten Sprachmodells

Die folgenden Beispiele zeigen die Verwendung eines angepassten Sprachmodells in den einzelnen Schnittstellen für die Spracherkennung. In diesem Fall basiert das verwendete angepasste Modell auf dem Modell der nächsten Generation en-US_Telephony.

  • Verwenden Sie für die WebSocket-Schnittstelle die Methode /v1/recognize. Das angegebene angepasste Modell wird für alle Anforderungen verwendet, die über die Verbindung gesendet werden.

    var access_token = {access_token};
    var wsURI = '{ws_url}/v1/recognize'
      + '?access_token=' + access_token
      + '&model=en-US_Telephony'
      + '&language_customization_id={customization_id}';
    var websocket = new WebSocket(wsURI);
    
  • Verwenden Sie für die synchrone HTTP-Schnittstelle die Methode POST /v1/recognize. Das angegebene angepasste Modell wird für diese Anforderung verwendet.

    IBM Cloud

    curl -X POST -u "apikey:{apikey}" \
    --header "Content-Type: audio/flac" \
    --data-binary @audio-file.flac \
    "{url}/v1/recognize?model=en-US_Telephony&language_customization_id={customization_id}"
    

    IBM Cloud Pak for Data IBM Software Hub

    curl -X POST \
    --header "Authorization: Bearer {token}" \
    --header "Content-Type: audio/flac" \
    --data-binary @audio-file.flac \
    "{url}/v1/recognize?model=en-US_Telephony&language_customization_id={customization_id}"
    
  • Verwenden Sie für die asynchrone HTTP-Schnittstelle die Methode POST /v1/recognitions. Das angegebene angepasste Modell wird für diese Anforderung verwendet.

    IBM Cloud

    curl -X POST -u "apikey:{apikey}" \
    --header "Content-Type: audio/flac" \
    --data-binary @audio-file.flac \
    "{url}/v1/recognitions?model=en-US_Telephony&language_customization_id={customization_id}"
    

    IBM Cloud Pak for Data IBM Software Hub

    curl -X POST \
    --header "Authorization: Bearer {token}" \
    --header "Content-Type: audio/flac" \
    --data-binary @audio-file.flac \
    "{url}/v1/recognitions?model=en-US_Telephony&language_customization_id={customization_id}"
    

Anpassungsgewichtung verwenden

Ein angepasstes Sprachmodell ist eine Kombination aus dem angepassten Modell und dem Basismodell, das von ihm angepasst wird. Sie können angeben, welche Gewichtung der Service den Wörtern aus dem angepassten Sprachmodell bei der Spracherkennung im Vergleich zu Wörtern aus dem Basismodell zuteilen soll. Die einem angepassten Modell zugeordnete Gewichtung wird als Anpassungsgewichtung bezeichnet.

Sie legen das relative Gewicht für ein benutzerdefiniertes Sprachmodell als Double zwischen 0.0 bis 1.0:

  • Für angepasste Modelle, die auf großen Sprachmodellen basieren, ist die Standardanpassungsgewichtung 0.5.
  • Für angepasste Modelle, die auf Modellen der vorherigen Generation basieren, ist die Standardanpassungsgewichtung 0.3.
  • Bei angepassten Modellen, die auf den meisten Modellen der nächsten Generation basieren, ist die Standardanpassungsgewichtung 0.2.
  • Bei angepassten Modellen, die auf verbesserten Modellen der nächsten Generation basieren, ist die Standardanpassungsgewichtung 0.1.

Um Modelle zu ermitteln, die eine verbesserte Sprachmodellanpassung verwenden, suchen Sie nach einem (verbesserten) Datum in der Spalte Sprachmodellanpassung in Tabelle 2 unter Anpassungsunterstützung für Modelle der nächsten Generation. Stellen Sie sicher, dass Sie nach einem Datum für die Version des von Ihnen verwendeten Service suchen, IBM Cloud oder IBM Cloud Pak for Data.

Mit dieser Standardgewichtung werden im Allgemeinen die besten Leistungswerte erzielt. Sowohl Wörter aus dem angepassten Modell als auch Wörter aus dem Basisvokabular können erkannt werden.

Wenn die zu transkribierenden Audiodaten jedoch häufig auf Wörter aus dem angepassten Modell zurückgreifen, kann die Genauigkeit der Transkriptionsergebnisse durch eine höhere Anpassungsgewichtung verbessert werden. Gehen Sie beim Festlegen der Anpassungsgewichtung mit besonderer Sorgfalt vor. Eine höhere Gewichtung kann die Genauigkeit von Ausdrücken aus der Domäne des angepassten Modells verbessern, aber sie kann auch die Leistung bei Ausdrücken beeinträchtigen, die nicht aus der Domäne stammen. (Selbst bei der Gewichtung 0,0 besteht aufgrund der Implementierung der Sprachmodellanpassung eine geringe Wahrscheinlichkeit, dass die Transkription angepasste Wörter enthalten kann.)

Die Anpassungsgewichtung kann mit dem Parameter customization_weight angegeben werden. Dieser Parameter wird beim Trainieren eines angepassten Sprachmodells oder bei dessen Verwendung in einer Spracherkennungsanforderung angegeben.

  • Im folgenden Beispiel wird für eine Trainingsanforderung die Anpassungsgewichtung 0.5 in der Methode POST /v1/customizations/{customization_id}/train angegeben:

    IBM Cloud

    curl -X POST -u "apikey:{apikey}" \
    "{url}/v1/customizations/{customization_id}/train?customization_weight=0.5"
    

    IBM Cloud Pak for Data IBM Software Hub

    curl -X POST \
    --header "Authorization: Bearer {token}" \
    "{url}/v1/customizations/{customization_id}/train?customization_weight=0.5"
    

    Eine in der Trainingsphase angegebene Anpassungsgewichtung wird zusammen mit dem angepassten Sprachmodell gespeichert. Sie müssen die Gewichtung nicht mit jeder Erkennungsanforderung übergeben, die das angepasste Modell verwendet.

  • Im folgenden Beispiel wird für eine Erkennungsanforderung die Anpassungsgewichtung 0.7 in der Methode POST /v1/recognize angegeben:

    IBM Cloud

    curl -X POST -u "apikey:{apikey}" \
    --header "Content-Type: audio/flac" \
    --data-binary @audio-file1.flac \
    "{url}/v1/recognize?language_customization_id={customization_id}&customization_weight=0.7"
    

    IBM Cloud Pak for Data IBM Software Hub

    curl -X POST \
    --header "Authorization: Bearer {token}" \
    --header "Content-Type: audio/flac" \
    --data-binary @audio-file1.flac \
    "{url}/v1/recognize?language_customization_id={customization_id}&customization_weight=0.7"
    

    Durch das Festlegen einer Anpassungsgewichtung während der Spracherkennung wird die beim Trainieren zusammen mit dem Modell gespeicherte Gewichtung überschrieben.

Fehlerbehebung bei der Verwendung angepasster Sprachmodelle

Wenn der Service trotz Anwendung eines angepassten Sprachmodells bei der Spracherkennung scheinbar nicht die Wörter aus dem Modell verwendet, überprüfen Sie, ob die folgenden potenziellen Probleme vorliegen: