Utilización de un modelo de idioma personalizado para el reconocimiento de voz
Una vez que cree y entrene el modelo de idioma personalizado, puede utilizarlo en las solicitudes de reconocimiento de voz utilizando el parámetro de consulta language_customization_id. De forma predeterminada, no se utiliza ningún
modelo de idioma personalizado con una solicitud. Puede crear varios modelos de lenguaje personalizado para los mismos dominios o para dominios diferentes. Pero sólo puede especificar un modelo de idioma personalizado a la vez para una solicitud
de reconocimiento de voz. Debe emitir la solicitud con credenciales para la instancia del servicio que posee el modelo personalizado.
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 Utilización del modelo predeterminado.
Para obtener información sobre cómo indicar al servicio cuánto peso debe dar a las palabras de un modelo personalizado, consulte Utilización del peso de personalización. Para ver ejemplos que utilizan una gramática con un modelo de lenguaje personalizado, consulte Utilización de una gramática para el reconocimiento de voz.
Ejemplos de uso de un modelo de lenguaje personalizado
Los ejemplos siguientes muestran el uso de un modelo de idioma personalizado con cada interfaz de reconocimiento de voz. En este caso, el modelo personalizado que se utiliza se basa en el modelo de próxima generación en-US_Telephony.
-
En el caso de la interfaz WebSocket, utilice el método
/v1/recognize. El modelo personalizado especificado se utiliza para todas las solicitudes que se envían a través de la conexión.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); -
En el caso de la interfaz HTTP síncrona, utilice el método
POST /v1/recognize. El modelo personalizado especificado se utiliza para dicha solicitud.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}" -
En el caso de la interfaz HTTP asíncrona, utilice el método
POST /v1/recognitions. El modelo personalizado especificado se utiliza para dicha solicitud.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}"
Utilización de ponderaciones de personalización
Un modelo de lenguaje personalizado es una combinación del modelo personalizado y del modelo base que personaliza. Puede indicar al servicio la ponderación que debe asignar a las palabras desde el modelo de lenguaje personalizado en comparación con las palabras del modelo base para el reconocimiento de voz. La ponderación que se asigna a un modelo personalizado se denomina ponderación de personalización.
Usted especifica el peso relativo para un modelo de lenguaje personalizado como un doble entre 0.0 y 1.0:
- Para los modelos personalizados que se basan en modelos de voz grandes, el peso de personalización predeterminado es 0.5.
- Para los modelos personalizados que se basan en modelos de generación anterior, el peso de personalización predeterminado es 0.3.
- Para los modelos personalizados que se basan en la mayoría de los modelos de próxima generación, el peso de personalización predeterminado es 0.2.
- Para los modelos personalizados que se basan en modelos de próxima generación mejorados, el peso de personalización predeterminado es 0.1.
Para identificar los modelos que utilizan una personalización mejorada del modelo de lenguaje, busque una fecha (mejorada) en la columna Personalización del modelo de lenguaje de la tabla 2 en Soporte de personalización para modelos de próxima generación. Asegúrese de comprobar una fecha para la versión del servicio que utiliza, IBM Cloud o IBM Cloud Pak for Data.
La ponderación predeterminada genera el mejor rendimiento en el caso general. Permite que se reconozcan tanto las palabras del modelo personalizado como las palabras del vocabulario base.
No obstante, en los casos en los que en el audio que se va a transcribir se utilizan muchas palabras del modelo personalizado, aumentar la ponderación de personalización puede mejorar la precisión de los resultados de la transcripción. Tenga cuidado cuando establezca la ponderación de personalización. Aunque un peso superior puede mejorar la precisión de las frases del dominio del modelo personalizado, también puede afectar negativamente al rendimiento en frases que no son del dominio. (Aunque establezca la ponderación 0,0, existe una pequeña probabilidad de que la transcripción incluya palabras personalizadas debido a la implementación de la personalización del modelo de lenguaje.)
La ponderación de personalización se especifica mediante el parámetro customization_weight. Puede especificar el parámetro al entrenar un modelo de lenguaje personalizado o al utilizarlo con una solicitud de reconocimiento de voz.
-
En el caso de una solicitud de entrenamiento, el ejemplo siguiente especifica una ponderación de personalización de
0.5con el métodoPOST /v1/customizations/{customization_id}/train: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"Si se establece una ponderación de personalización durante el entrenamiento, la ponderación se guarda con el modelo de lenguaje personalizado. No es necesario que pase la ponderación con cada solicitud de reconocimiento que utilice el modelo personalizado.
-
En el caso de una solicitud de reconocimiento, el ejemplo siguiente especifica una ponderación de personalización de
0.7con el métodoPOST /v1/recognize: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"Una ponderación de personalización especificada durante el reconocimiento de voz altera temporalmente una ponderación guardada con el modelo durante el entrenamiento.
Resolución de problemas derivados del uso de modelos de lenguaje personalizado
Si aplica un modelo de lenguaje personalizado al reconocimiento de voz pero parece que el servicio no utiliza las palabras que contiene el modelo, compruebe los siguientes posibles problemas:
- Asegúrese de que está pasando correctamente el ID de personalización a la solicitud de reconocimiento, tal como se muestra en los ejemplos anteriores.
- Asegúrese de que el estado del modelo personalizado sea
available, lo que significa que está completamente entrenado y listo para ser utilizado. Para obtener más información, consulte Listado de modelos de lenguaje personalizado. - Compruebe las pronunciaciones generadas para las palabras nuevas para asegurarse de que sean correctas. Para obtener más información, consulte