IBM Cloud Docs
Utilización de una gramática para el reconocimiento de voz

Utilización de una gramática para el reconocimiento de voz

Una vez que cree y entrene su modelo de idioma personalizado con la gramática, puede utilizar la gramática en las solicitudes de reconocimiento de voz:

  • Utilice el parámetro de consulta language_customization_id para especificar el ID de personalización (GUID) del modelo de idioma personalizado para el que se ha definido la gramática. Un modelo personalizado solo se puede utilizar con el modelo base para el que se ha creado. Si el modelo personalizado se basa en un modelo distinto del predeterminado, también debe especificar ese modelo base con el parámetro de consulta model. Para obtener más información, consulte Uso del modelo predeterminado. Debe enviar la solicitud con las credenciales para la instancia del servicio propietaria del modelo.
  • Utilice el parámetro grammar_name para especificar el nombre de la gramática. Solo puede especificar una gramática con una solicitud.

Cuando se utiliza una gramática, el servicio solo reconoce las palabras de la gramática especificada. El servicio no utiliza palabras personalizadas añadidas desde el corpus, añadidas o modificadas individualmente o reconocidas por otras gramáticas.

Para obtener más información sobre los idiomas y modelos que soportan gramáticas y su nivel de soporte (generalmente disponible o beta), consulte Soporte de idiomas para la personalización.

Ejemplos de utilización de una gramática con un modelo de lenguaje personalizado

Los ejemplos siguientes muestran el uso de una gramática con un modelo de idioma personalizado para cada interfaz de reconocimiento de voz:

  • Para la interfaz WebSocket, especifique primero el ID de personalización con el parámetro language_customization_id del método /v1/recognize. Este método se utiliza para establecer una conexión WebSocket con el servicio.

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

    Luego especifique el nombre de la gramática con el parámetro grammar_name en el mensaje start de JSON correspondiente a la conexión activa. Pasar este valor con el mensaje start le permite cambiar la gramática de forma dinámica para cada solicitud que envíe a través de la conexión.

    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);
    }
    
  • Para la interfaz HTTP síncrona, pase ambos parámetros con el método 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}"
    
  • Para la interfaz HTTP asíncrona, pase ambos parámetros con el método 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}"