Utilisation d'un modèle de langue personnalisé pour la reconnaissance vocale

Après avoir créé et formé votre modèle de langue personnalisé, vous pouvez l'utiliser dans les demandes de reconnaissance vocale à l'aide du paramètre de requête language_customization_id. Par défaut, aucun modèle de langue personnalisé n'est utilisé avec une requête. Vous pouvez créer plusieurs modèles de langue personnalisés pour un même domaine ou pour des domaines différents. Cependant, vous ne pouvez spécifier qu'un seul modèle de langue personnalisé à la fois pour une demande de reconnaissance vocale. Vous devez émettre la demande avec des données d'identification pour l'instance du service propriétaire du modèle personnalisé.

Un modèle personnalisé ne peut être utilisé qu'avec le modèle de base pour lequel il est créé. Si votre modèle personnalisé est basé sur un modèle autre que celui par défaut, vous devez également spécifier le modèle de base avec le paramètre de requête model. Pour plus d'informations, voir Utilisation du modèle par défaut.

Pour plus d'informations sur la pondération à donner aux mots d'un modèle personnalisé, voir Utilisation de la pondération de personnalisation. Pour obtenir des exemples d'utilisation d'une grammaire avec un modèle de langue personnalisé, voir Utilisation d'une grammaire pour la reconnaissance vocale.

Exemples d'utilisation d'un modèle de langue personnalisé

Les exemples suivants illustrent l'utilisation d'un modèle de langue personnalisé avec chaque interface de reconnaissance vocale. Dans ce cas, le modèle personnalisé utilisé est basé sur le modèle de nouvelle génération en-US_Telephony.

  • Pour l'interface WebSocket, utilisez la méthode /v1/recognize. Le modèle personnalisé spécifié est utilisé pour toutes les demandes envoyées via la connexion.

    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);
    
  • Pour l'interface HTTP synchrone, utilisez la méthode POST /v1/recognize. Le modèle personnalisé spécifié est utilisé pour cette demande.

    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}"
    
  • Pour l'interface HTTP asynchrone, utilisez la méthode POST /v1/recognitions. Le modèle personnalisé spécifié est utilisé pour cette demande.

    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}"
    

Utilisation d'un poids de personnalisation

Un modèle de langue personnalisé est une combinaison constituée du modèle personnalisé et du modèle de base qu'il personnalise. Vous pouvez indiquer au service le poids à attribuer aux mots du modèle de langue personnalisé par rapport aux mots du modèle de base pour la reconnaissance vocale. Le poids attribué à un modèle personnalisé est appelé poids de personnalisation.

Vous spécifiez le poids relatif d'un modèle de langage personnalisé sous la forme d'un double entre 0.0 et 1.0:

  • Pour les modèles personnalisés basés sur des modèles vocaux de grande taille, la pondération de personnalisation par défaut est 0.5.
  • Pour les modèles personnalisés basés sur des modèles de génération précédente, la pondération de personnalisation par défaut est 0.3.
  • Pour les modèles personnalisés basés sur la plupart des modèles de nouvelle génération, la pondération de personnalisation par défaut est 0.2.
  • Pour les modèles personnalisés basés sur des modèles de nouvelle génération améliorés, la pondération de personnalisation par défaut est 0.1.

Pour identifier les modèles qui utilisent une personnalisation améliorée du modèle de langue, recherchez une date (améliorée) dans la colonne Personnalisation du modèle de langue du tableau 2 de la rubrique Prise en charge de la personnalisation pour les modèles de nouvelle génération. Veillez à rechercher une date pour la version du service que vous utilisez, IBM Cloud ou IBM Cloud Pak for Data.

En règle générale, le poids par défaut produit les meilleures performances. Il permet de reconnaître les deux mots du modèle personnalisé et les mots du vocabulaire de base.

Cependant, dans les cas de figure où l'audio à transcrire utilise fréquemment des mots du modèle personnalisé, l'augmentation du poids de personnalisation peut améliorer la précision des résultats de la transcription. Soyez prudent lorsque vous définissez le poids de personnalisation. Bien qu'une pondération plus élevée puisse améliorer la précision des expressions du domaine du modèle personnalisé, elle peut également avoir un impact négatif sur les performances avec les expressions ne relevant pas du domaine. (Même si vous définissez le poids avec la valeur 0.0, il y a peu de probabilité que la transcription puisse inclure les mots personnalisés en raison de l'implémentation de la personnalisation du modèle de langue.)

Vous spécifiez un poids de personnalisation en utilisant le paramètre customization_weight. Vous pouvez indiquer ce paramètre lorsque vous entraînez un modèle de langue personnalisé ou lorsque vous l'utilisez avec une demande de reconnaissance vocale.

  • Dans le cadre d'une demande d'entraînement, l'exemple suivant indique un poids de personnalisation égal à 0.5 avec la méthode POST /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"
    

    La définition d'un poids de personnalisation lors de l'entraînement sauvegarde le poids avec le modèle de langue personnalisé. Vous n'avez pas à transmettre le poids avec chaque demande de reconnaissance qui utilise le modèle personnalisé.

  • Dans le cadre d'une demande de reconnaissance, l'exemple suivant indique un poids de personnalisation égal à 0.7 avec la méthode POST /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"
    

    La définition d'un poids de personnalisation lors la reconnaissance vocale remplace un poids qui avait été sauvegardé avec le modèle lors de l'entraînement.

Traitement des incidents liés à l'utilisation des modèles de langue personnalisés

Si vous appliquez un modèle de langue personnalisé à la reconnaissance vocale mais que vous constatez que le service ne semble pas utiliser les mots inclus dans le modèle, recherchez les problèmes éventuels suivants :