Utilizzo di una grammatica per il riconoscimento vocale

Una volta creato e addestrato il modello linguistico personalizzato con la grammatica, è possibile utilizzare la grammatica nelle richieste di riconoscimento vocale:

  • Utilizzare il parametro di query language_customization_id per specificare l'ID di personalizzazione (GUID) del modello di lingua personalizzato per il quale è definita la grammatica. Un modello personalizzato può essere utilizzato solo con il modello di base per il quale viene creato. Se il modello personalizzato è basato su un modello diverso da quello predefinito, è necessario specificare anche tale modello di base con il parametro di query model. Per ulteriori informazioni, vedere Utilizzo del modello predefinito. Devi immettere la richiesta con le credenziali per l'istanza del servizio a cui appartiene il modello.
  • Utilizza il parametro grammar_name per specificare il nome della grammatica. Puoi specificare solo una singola grammatica con una richiesta.

Quando utilizzi una grammatica, il servizio riconosce solo le parole dalla grammatica specificata. Il servizio non utilizza le parole personalizzate che sono state aggiunte dai corpora, che sono state aggiunte o modificate singolarmente o che sono riconosciute da altre grammatiche.

Per ulteriori informazioni sulle lingue e i modelli che supportano le grammatiche e il loro livello di supporto (generalmente disponibile o beta), vedere Supporto linguistico per la personalizzazione.

Esempi di utilizzo di una grammatica con un modello di lingua personalizzato

Gli esempi seguenti mostrano l'uso di una grammatica con un modello linguistico personalizzato per ogni interfaccia di riconoscimento vocale:

  • Per l'interfaccia WebSocket, devi prima specificare l'ID di personalizzazione con il parametro language_customization_id del metodo /v1/recognize. Questo metodo ti consente di stabilire una connessione WebSocket con il servizio.

    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);
    

    Quindi, specifica il nome della grammatica con il parametro grammar_name nel messaggio start JSON per la connessione attiva. Il passaggio di questo valore con il messaggio start ti consente di modificare la grammatica in modo dinamico per ogni richiesta che invii tramite la connessione.

    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);
    }
    
  • Per l'interfaccia HTTP sincrona, passa entrambi i parametri con il metodo 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}"
    
  • Per l'interfaccia HTTP asincrona, passa entrambi i parametri con il metodo 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}"