Modifier

Implémenter la reconnaissance vocale personnalisée

Azure AI services
Azure AI Speech
Azure Machine Learning

Ce guide en deux parties décrit différentes approches pour implémenter efficacement des applications vocales de haute qualité. Il se concentre sur l’extension et la personnalisation du modèle de référence de la fonctionnalité de reconnaissance vocale fournie par le service AI Speech.

Cet article décrit l’espace de problème et le processus de prise de décisions pour la conception de votre solution. Le deuxième article, Déployer une solution de reconnaissance vocale personnalisée, fournit un cas d’usage pour l’application de ces instructions et pratiques recommandées.

Le spectre d’IA prédéfini et personnalisé

Le spectre d’IA prédéfini et personnalisé représente plusieurs niveaux de personnalisation et d’effort de développement des modèles d’IA, allant des modèles prédéfinis prêts à l’emploi aux solutions d’IA entièrement personnalisées.

Diagramme montrant le spectre des niveaux de personnalisation.

Sur le côté gauche du spectre, Azure AI Services permet une implémentation rapide et à faible friction des fonctionnalités d’IA dans les applications via des modèles pré-entraînés. Microsoft organise des jeux de données étendus pour entraîner et générer ces modèles de référence. Par conséquent, vous pouvez utiliser des modèles de référence sans données d’entraînement supplémentaires. Ils sont consommés via des appels d’API programmatiques à sécurité renforcée.

Azure AI Services inclut :

  • Voix, Reconnaissance vocale, synthèse vocale, traduction vocale et reconnaissance de l’orateur
  • Langue : Reconnaissance de l’entité, analyse des sentiments, réponses aux questions, compréhension du langage courant et traducteur
  • Vision. Vision par ordinateur et API Visage
  • Décision. Détecteur d’anomalies, modérateur de contenus et Personalizer
  • OpenAI Service. Modèles de langage avancés

Lorsque les modèles de référence prédéfinis ne fonctionnent pas assez précisément sur vos données, vous pouvez les personnaliser en ajoutant des données d’entraînement relatives au domaine problématique. Cette personnalisation nécessite un effort supplémentaire de collecte de données adéquates pour entraîner et évaluer un modèle acceptable. Les Azure AI Services personnalisables incluent Custom Vision, Custom Translator, Custom Speech et CLU. L’extension des modèles Azure AI Services prédéfinis est au centre du spectre. Cet article se concentre principalement sur cette zone centrale.

Par ailleurs, lorsque les modèles et les données d’entraînement se concentrent sur un scénario spécifique et nécessitent un jeu de données d’entraînement propriétaire, Azure Machine Learning fournit des conseils sur les ressources de solution personnalisées, les outils, les calculs et les flux de travail pour prendre en charge la création de modèles entièrement personnalisés. Ce scénario s’affiche à droite du spectre. Ces modèles sont créés à partir de zéro. Le développement d’un modèle à l’aide d’Azure Machine Learning va généralement de l’utilisation d’outils visuels comme AutoML au développement programmatique du modèle à l’aide de notebooks.

Service Azure Speech

Le service Azure Speech unifie les fonctionnalités de reconnaissance vocale, de synthèse vocale, de traduction vocale, d’assistant vocal et de reconnaissance de l’orateur en un seul abonnement basé sur Azure AI Services. Vous pouvez activer une application pour la reconnaissance vocale en intégrant au service Speech via des Kits de développement logiciel (SDK) et des API faciles à utiliser.

Le service de reconnaissance vocale Azure analyse l’audio en temps réel ou de manière asynchrone afin de transcrire le texte parlé en texte écrit. L’innovante reconnaissance vocale Azure utilise un modèle de langage universel comme référence qui reflète la langue parlée couramment utilisée. Ce modèle de référence est pré-entraîné avec des dialectes et des phonétiques représentant une variété de domaines communs. Par conséquent, l’utilisation du modèle de référence ne nécessite aucune configuration supplémentaire et fonctionne très bien dans la plupart des scénarios.

Toutefois, notez que le modèle de référence peut s’avérer insuffisant si l’audio contient du bruit de fond ou beaucoup de jargon propre à un secteur d’activité ou à un domaine. Dans ce cas, la création d’un modèle vocal personnalisé est logique. Pour ce faire, vous vous entraînez avec des données supplémentaires associées au domaine spécifique.

Selon la taille du domaine personnalisé, il peut également être judicieux d’entraîner plusieurs modèles et de compartimenter un modèle pour une application individuelle. Par exemple, les commentateurs des Jeux olympiques commentent différents sports, chacun avec son propre jargon. Étant donné que chaque sport a un vocabulaire qui diffère considérablement des autres, la création d’un modèle personnalisé spécifique à un sport augmente la précision en limitant les données d’énoncé par rapport à ce sport particulier. Par conséquent, le modèle peut apprendre à partir d’un jeu de données précis et ciblé.

Il existe donc trois approches pour implémenter la reconnaissance vocale Azure :

  • Le modèle de référence est approprié lorsque l’audio est dépourvu de bruit de fond et que le discours transcrit se compose d’un langage couramment parlé.
  • Un modèle personnalisé augmente le modèle de référence pour inclure le vocabulaire spécifique au domaine partagé dans toutes les spécialités du domaine personnalisé.
  • Il convient d’utiliser plusieurs modèles personnalisés lorsque le domaine personnalisé est constitué de plusieurs spécialités, chacune avec un vocabulaire spécifique.

Diagramme récapitulant les trois approches d’implémentation de la reconnaissance vocale Azure.

Cas d’usage potentiels

Voici quelques scénarios génériques et cas d’usage dans lesquels la reconnaissance vocale personnalisée est utile :

  • Transcription vocale pour un domaine spécifique, comme la transcription médicale ou la transcription pour un centre d’appels
  • Transcription en direct, par exemple, dans une application ou pour fournir des sous-titres lors de la diffusion d’une vidéo en direct

Kits de développement logiciel (SDK) Microsoft et outils open source

Lorsque vous utilisez la reconnaissance vocale, ces ressources peuvent vous être utiles :

Remarques relatives à la conception

Cette section décrit certaines considérations de conception pour la création d’une application vocale.

Modèle de référence et modèle personnalisé

Azure Speech inclut des modèles de référence qui prennent en charge différentes langues. Ces modèles sont pré-entraînés avec une grande quantité de vocabulaire et de domaines. Toutefois, vous pouvez avoir un vocabulaire spécialisé qui doit être reconnu. Dans ces situations, les modèles de référence peuvent être en deçà. Le meilleur moyen pour déterminer si le modèle de base suffit est d’analyser la transcription produite à partir du modèle de référence et de la comparer avec une transcription du même audio générée par l’homme. L’article de déploiement de ce guide décrit l’utilisation de Speech Studio pour comparer les transcriptions et obtenir un score de taux d’erreur de mots. S’il existe plusieurs substitutions de mots incorrectes dans les résultats, nous vous recommandons d’entraîner un modèle personnalisé pour reconnaître ces mots.

Un ou plusieurs modèles personnalisés

Si votre scénario peut tirer parti d’un modèle personnalisé, vous devez alors déterminer le nombre de modèles à générer. Un modèle est généralement suffisant si les énoncés sont étroitement liés à une spécialité ou un domaine. Toutefois, plusieurs modèles sont préférables si le vocabulaire est considérablement différent d’une spécialité du domaine à l’autre. Dans ce scénario, vous avez également besoin d’une variété de données d’entraînement.

Revenons à l’exemple des Jeux olympiques. Supposons que vous devez inclure la transcription de commentaires audio pour plusieurs sports, notamment le hockey sur glace, la luge, le snowboard, le ski alpin, etc. La création d’un modèle vocal personnalisé pour chaque sport améliorera la précision, car chaque sport a une terminologie unique. Toutefois, chaque modèle doit avoir diverses données d’entraînement. Il est trop restrictif et inextensible de créer un modèle sur chaque sport pour chaque commentateur. Une approche plus pratique consiste à créer un modèle unique pour chaque sport, mais à inclure l’audio d’un groupe de commentateurs avec des accents différents, des deux sexes et de différents âges. Toutes les expressions spécifiques au domaine liées au sport, telles qu’elles sont capturées par les différents commentateurs, résident dans le même modèle.

Vous devez également prendre en compte les langues et les paramètres régionaux à prendre en charge. Il peut être judicieux de créer ces modèles par paramètres régionaux.

Adaptation acoustique et linguistique du modèle

Azure Speech fournit trois options pour entraîner un modèle personnalisé :

L’adaptation du modèle de langage est la personnalisation la plus couramment utilisée. Un modèle de langage permet d’entraîner la façon dont certains mots sont utilisés ensemble dans un contexte particulier ou un domaine spécifique. La création d’un modèle de langage est également relativement simple et rapide. Tout d’abord, entraînez le modèle en fournissant une variété d’énoncés et d’expressions pour le domaine particulier. Par exemple, si l’objectif est de générer une transcription pour le ski alpin, collectez les transcriptions générées par l’homme de plusieurs épreuves de ski. Rendez-les propres et combinez-les pour créer un fichier de données d’entraînement contenant environ 50 000 expressions et phrases. Pour plus d’informations sur les exigences en matière de données pour l’entraînement des modèles de langage personnalisés, consultez Jeux de données d’entraînement et de test.

La personnalisation du modèle de prononciation est également l’une des personnalisations les plus couramment utilisées. Un modèle de prononciation aide le modèle personnalisé à reconnaître des mots peu courants qui n’ont pas de prononciation standard. Par exemple, une partie de la terminologie du ski alpin emprunte des mots à d’autres langues, comme les termes schuss et stem. Ces mots sont d’excellents candidats pour l’entraînement avec un jeu de données de prononciation. Pour plus d’informations sur l’amélioration de la reconnaissance à l’aide d’un fichier de prononciation, consultez Données de prononciation pour l’entraînement. Pour plus d’informations sur la création d’un modèle personnalisé à l’aide de Speech Studio, consultez Qu’est-ce que Custom Speech ?.

L’adaptation acoustique du modèle fournit un entraînement phonétique sur la prononciation de certains mots afin qu’Azure Speech puisse les reconnaître correctement. Pour créer un modèle acoustique, vous avez besoin d’échantillons audio et de transcriptions générées par l’homme. Si la langue de reconnaissance correspond à des paramètres régionaux courants, comme l’anglais américain, l’utilisation du modèle de référence actuel doit suffire. Les modèles de référence ont un entraînement diversifié qui utilise les voix des locuteurs anglophones natifs et non natifs pour couvrir une grande quantité de vocabulaire en anglais. Par conséquent, la création d’une adaptation acoustique du modèle sur le modèle de référence anglais américain pourrait ne pas apporter beaucoup d’amélioration. L’entraînement d’un modèle acoustique personnalisé prend également un peu plus de temps. Pour plus d’informations sur les exigences en matière de données pour l’entraînement acoustique personnalisé, consultez Jeux de données d’entraînement et de test.

Le modèle personnalisé final peut inclure des jeux de données qui utilisent une combinaison des trois personnalisations décrites dans cette section.

Entraîner un modèle personnalisé

Il existe deux approches pour entraîner un modèle personnalisé :

  • Entraînez-vous avec de nombreux exemples d’expressions et d’énoncés liés au domaine. Par exemple, incluez des transcriptions d’événements audio de ski alpin propres et normalisées et des transcriptions générées par l’homme des événements précédents. Assurez-vous que les transcriptions incluent les termes utilisés dans le domaine du ski alpin et plusieurs exemples de la façon dont les commentateurs les prononcent. Si vous suivez ce processus, le modèle personnalisé résultant doit être en mesure de reconnaître des mots et des expressions spécifiques au domaine.

  • Entraînez-vous avec des données spécifiques qui se concentrent sur les spécialités problématiques. Cette approche fonctionne bien lorsqu’il n’y a pas beaucoup de données d’entraînement, par exemple, si de nouveaux termes d’argot sont utilisés pendant les épreuves de ski alpin et doivent être inclus dans le modèle. Ce type d’entraînement utilise l’approche suivante :

    • Utilisez Speech Studio pour générer une transcription et la comparer à des transcriptions générées par l’homme.
    • Identifiez les spécialités problématiques à partir de modèles basés sur ce que disent les commentateurs. Identifiez :
      • Les contextes dans lesquels le mot ou l’énoncé problématique est appliqué.
      • Les différentes inflexions et prononciations du mot ou de l’énoncé.
      • Toute application spécifique au commentateur unique du mot ou de l’énoncé.

L’entraînement d’un modèle personnalisé avec des données spécifiques peut prendre du temps. Les étapes incluent l’analyse minutieuse des lacunes de transcription, l’ajout manuel d’expressions d’entraînement et la répétition de ce processus plusieurs fois. Toutefois, en fin de compte, cette approche fournit un entraînement ciblé pour les spécialités problématiques qui ont été transcrites de manière incorrecte auparavant. De plus, il est possible de construire ce modèle de manière itérative en effectuant un entraînement sélectif sur des spécialités critiques, puis en suivant la liste par ordre d’importance. Un autre avantage est que la taille du jeu de données inclura quelques centaines d’énoncés plutôt que quelques milliers, même après de nombreuses itérations de génération des données d’entraînement.

Après avoir créé votre modèle

Après avoir créé votre modèle, gardez à l’esprit les recommandations suivantes :

  • Soyez conscient de la différence entre le texte lexical et le texte d’affichage. Speech Studio produit un taux d’erreur de mots basé sur le texte lexical. Toutefois, ce que l’utilisateur voit est le texte d’affichage avec la ponctuation, l’utilisation de majuscules et les mots numériques représentés sous forme de nombres. Voici un exemple de texte lexical et de texte d’affichage.

    Texte lexical : la vitesse est parfaite et le temps est encore meilleur cinquante sept mille soixante trois secondes pour l’allemand

    Texte d’affichage : La vitesse est parfaite. Et le temps est encore meilleur. 57063 secondes pour l’allemand.

    Ce qui est attendu (implicite) est : La vitesse est parfaite. Et le temps est encore meilleur. 57 063 secondes pour l’allemand

    Le modèle personnalisé a un faible taux d’erreur de mots, mais cela ne signifie pas que le taux d’erreur perçu par l’utilisateur (erreurs dans le texte d’affichage) est faible. Ce problème se produit principalement avec les entrées alphanumériques, car différentes applications peuvent avoir d’autres façons de représenter l’entrée. Vous ne devez pas compter uniquement sur le taux d’erreur de mots. Vous devez également passer en revue le résultat de reconnaissance final.

    Lorsque le texte d’affichage semble incorrect, passez en revue le résultat de reconnaissance détaillé du Kit de développement logiciel (SDK), qui inclut le texte lexical, dans lequel tout est épelé. Si le texte lexical est correct, la reconnaissance est exacte. Vous pouvez ensuite résoudre les inexactitudes dans le texte d’affichage (le résultat de reconnaissance final) en ajoutant des règles de post-traitement.

  • Gérez les jeux de données, les modèles et leurs versions. Dans Speech Studio, lorsque vous créez des projets, des jeux de données et des modèles, il n’y a que deux champs : nom et description. Lorsque vous générez des jeux de données et des modèles de manière itérative, vous devez suivre un bon schéma de désignation et de contrôle de version pour faciliter l’identification du contenu d’un jeu de données et le modèle qui reflète la version du jeu de données. Pour plus d’informations sur cette recommandation, consultez Déployer une solution de reconnaissance vocale personnalisée.

Contributeurs

Cet article est géré par Microsoft. Il a été écrit à l’origine par les contributeurs suivants.

Auteur principal :

Autres contributeurs :

Pour afficher les profils LinkedIn non publics, connectez-vous à LinkedIn.

Étapes suivantes