Grammatik bei der Spracherkennung verwenden

Nachdem Sie ein angepasstes Sprachmodell mit Ihrer Grammatik erstellt und trainiert haben, können Sie die Grammatik in Spracherkennungsanforderungen verwenden:

  • Im Abfrageparameter language_customization_id können Sie die Anpassungs-ID (GUID) des angepassten Sprachmodells angeben, für das die Grammatik definiert wurde. 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 "Verwendung des Standardmodells ". Sie müssen die Anforderung mit Berechtigungsnachweisen für die Instanz des Service ausgeben, die Eigner des Modells ist.
  • Geben Sie mit dem Parameter grammar_name den Namen der Grammatik an. Bei einer Anforderung können Sie nur eine einzige Grammatik angeben.

Wenn Sie eine Grammatik für die Spracherkennung verwenden, erkennt der Service ausschließlich Wörter aus der angegebenen Grammatik. Angepasste Wörter, die aus Korpora hinzugefügt wurden, die separat hinzugefügt oder geändert wurden oder die durch andere Grammatiken erkannt werden, werden durch den Service nicht verwendet.

Weitere Informationen zu den Sprachen und Modellen, die Grammatiken unterstützen, und zu ihrer Unterstützungsstufe (allgemein verfügbar oder Betaversion) finden Sie unter Sprachunterstützung für die Anpassung.

Beispiele zur Verwendung einer Grammatik mit einem angepassten Sprachmodell

Die folgenden Beispiele veranschaulichen die Verwendung einer Grammatik mit einem angepassten Sprachmodell für die einzelnen Spracherkennungsschnittstellen:

  • Bei Verwendung der WebSocket-Schnittstelle geben Sie zuerst die Anpassungs-ID mit dem Parameter language_customization_id der Methode /v1/recognize an. Mithilfe dieser Methode stellen Sie eine WebSocket-Verbindung zum Service her.

    var access_token = {access_token};
    var wsURI = '{ws_url}/v1/recognize'
      + '?access_token=' + access_token
      + '&language_customization_id={customization_id}';
    var websocket = new WebSocket(wsURI);
    

    Anschließend geben Sie den Namen der Grammatik mit dem Parameter grammar_name in der JSON-Nachricht start für die aktive Verbindung an. Die Übergabe dieses Wertes mit der Nachricht start versetzt Sie in die Lage, die Grammatik für jede Anforderung, die Sie über die Verbindung senden, dynamisch zu ändern.

    function onOpen(evt) {
      var message = {
        action: 'start',
        content-type: 'audio/l16;rate=22050',
        grammar_name: '{grammar_name}'
      };
      websocket.send(JSON.stringify(message));
      websocket.send(blob);
    }
    
  • Bei der synchronen HTTP-Schnittstelle übergeben Sie beide Parameter mit der Methode POST /v1/recognize.

    IBM Cloud

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

    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?language_customization_id={customization_id}&grammar_name={grammar_name}"
    
  • Bei der asynchronen HTTP-Schnittstelle übergeben Sie beide Parameter mit der Methode POST /v1/recognitions.

    IBM Cloud

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

    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?language_customization_id={customization_id}&grammar_name={grammar_name}"