Comment convertir la parole en texte avec Python [processus étape par étape]

Publié: 2020-08-07

Table des matières

Introduction à la synthèse vocale

Nous vivons à une époque où nos interactions avec les machines sont devenues variées et complexes. Nous sommes passés de gros boutons mécaniques à l'interface à écran tactile. Mais cette évolution ne se limite pas au matériel. Le statu quo pour l'entrée pour les ordinateurs a été le texte depuis la conception. Pourtant, avec les progrès du NLP (Natural Language Processing) et du ML (Machine Learning), Data Science, nous avons les outils pour incorporer la parole comme moyen d'interagir avec nos gadgets.

Ces outils nous entourent déjà et nous servent le plus souvent d'assistants virtuels. Google, Siri, Alexa, etc. sont des réalisations marquantes dans l'ajout d'une autre dimension plus personnelle et pratique de l'interaction avec le monde numérique.

Contrairement à la plupart des innovations technologiques, la technologie de synthèse vocale est accessible à tous, à la fois pour la consommation et pour construire vos projets.

Python est l'un des langages de programmation les plus courants au monde et dispose d'outils pour créer vos applications de synthèse vocale.

Histoire de la parole au texte

Avant d'explorer l'instruction en texte en Python, il est utile d'apprécier les progrès que nous avons réalisés dans ce domaine. Voici la chronologie simplifiée de :

  • Audrey ,1952 : le premier système de reconnaissance vocale développé par les chercheurs de 3 Bells labs. Il ne pouvait reconnaître que les chiffres.
  • IBM Showbox (1962): premier système de reconnaissance vocale d'IBM dont les bobines reconnaissent 16 mots en plus des chiffres. Pourrait résoudre des dictées arithmétiques simples et imprimer le résultat.
  • Defense Advanced Research Projects Agency (DARPA) (1970): La DARPA a financé la recherche sur la compréhension de la parole, qui a conduit au développement de Harpy pour reconnaître 1011 mots.
  • Modèle de Markov caché (HMM), années 1980 : HMM est un modèle statistique qui modélise des problèmes nécessitant des informations séquentielles. Ce modèle a été appliqué à de nouvelles avancées dans la reconnaissance vocale.
  • Recherche vocale par Google , 2001 : Google a introduit la fonctionnalité de recherche vocale qui permettait aux utilisateurs d'effectuer des recherches vocales. Il s'agissait de la première application vocale qui est devenue très populaire.
  • Siri , 2011 : Apple a présenté Siri, capable d'interagir en temps réel et de manière pratique avec ses appareils.
  • Alexa , 2014 et google home , 2016 : les assistants virtuels basés sur la commande vocale sont devenus courants alors que google home et Alexa vendent collectivement plus de 150 millions d'unités.

Lisez aussi: Top 7 des bibliothèques Python NLP

Défis dans un Speech to Text

La synthèse vocale reste un problème complexe qui est loin d'être un produit véritablement fini. Plusieurs difficultés techniques en font au mieux un outil imparfait. Voici les défis courants liés à la technologie de reconnaissance vocale :

1. J'ai une interprétation imprécise

La reconnaissance vocale n'interprète pas toujours correctement les mots prononcés. Les VUI (Voice User Interface) ne sont pas aussi habiles que les humains dans le contexte de compréhension qui modifie la relation entre les mots et les phrases. Les machines peuvent donc avoir du mal à comprendre la sémantique d'une phrase.

2 fois

Parfois, le traitement des systèmes de reconnaissance vocale prend trop de temps. Cela peut être dû à la diversité des modèles de voix que les humains possèdent. Une telle difficulté de reconnaissance vocale peut être évitée en ralentissant la parole ou en étant plus précis dans la prononciation, ce qui nuit à la commodité de l'outil.

3. Accents

Les VUI peuvent avoir du mal à comprendre les dialectes qui diffèrent de la moyenne. Au sein d'une même langue, les locuteurs peuvent avoir des façons très différentes de prononcer les mêmes mots.

4. Bruit de fond et intensité

Dans un monde idéal, cela ne posera pas de problème, mais ce n'est tout simplement pas le cas, et les VUI peuvent donc trouver difficile de travailler dans des environnements bruyants (espaces publics, grands bureaux, etc.).

A lire : Comment créer un chatbot en Python

Discours en texte en Python

Si l'on ne veut pas passer par le processus ardu de création d'une déclaration au texte à partir de zéro, utilisez ce qui suit comme guide. Ce guide est simplement une introduction de base à la création de votre propre application de synthèse vocale. Assurez-vous d'avoir un microphone fonctionnel en plus d'une version relativement récente de Python.

Étape 1 :

Téléchargez les packages Python suivants :

  • speech_recogntion (pip install SpeechRecogntion): Il s'agit du package principal qui exécute l'étape la plus cruciale de la conversion de la parole en texte. D'autres alternatives ont des avantages et des inconvénients, tels que l'appel, l'assemblage, google-cloud-search, pocketphinx, Watson-developer-cloud, wit, etc.
  • Mon audio (pip installer Pyaudio)
  • Portaudio (installation pip de Portaudio)

Étape 2 :

Créez un projet (nommez-le comme vous voulez) et importez le speech_recognition en tant que sr.

Créez autant d'instances de la classe de reconnaissance.

Etape 3 :

Une fois que vous avez créé ces instances, nous devons maintenant définir la source de l'entrée.

Pour l'instant, définissons la source comme le microphone lui-même (vous pouvez utiliser un fichier audio existant)

Etape 4 :

Nous allons maintenant définir une variable pour stocker l'entrée. Nous utilisons la méthode « écouter » pour prendre des informations à la source. Ainsi, dans notre cas, nous utiliserons le microphone comme source que nous avons établie dans la ligne de code précédente.

Etape 5 :

Maintenant que nous avons défini l'entrée (microphone comme source) et l'avons stockée dans une variable ('audio'), nous devons simplement utiliser la méthode de reconnaissance_google pour la convertir en texte. Nous pouvons stocker le résultat dans une variable ou simplement imprimer le résultat. Nous n'avons pas à nous fier uniquement à identifier_google, nous avons d'autres méthodes qui utilisent différentes API qui fonctionnent également. Des exemples de telles méthodes sont :

Reconnaître_bing()

recongize_google_cloud()

recongize_houndify()

recongize_ibm()

recongize_Sphinx() (fonctionne aussi hors ligne)

La méthode suivante utilise des packages existants qui permettent de réduire le développement de votre logiciel de reconnaissance de la parole en texte à partir de zéro. Ces packages ont plus d'outils qui peuvent vous aider à construire vos projets qui résolvent des problèmes plus spécifiques. Un exemple de fonctionnalité utile est que vous pouvez changer la langue par défaut de l'anglais à l'hindi. Cela modifiera les résultats imprimés en hindi (bien que, dans l'état actuel des choses, la synthèse vocale soit la plus développée pour comprendre l'anglais).

Mais, c'est un bon exercice de réflexion des développeurs sérieux pour comprendre comment un tel logiciel fonctionne.

Décomposons-le.

Dans sa forme la plus fondamentale, la parole est simplement une onde sonore. Ces ondes sonores ou signaux audio ont quelques propriétés caractéristiques (qui peuvent sembler familières à la physique de l'acoustique) telles que l'amplitude, la crête et le creux, la longueur d'onde, le cycle et la fréquence.

De tels signaux audio sont continus et ont donc des points de données infinis. Pour convertir un tel signal audio en un signal numérique, tel qu'un ordinateur puisse le traiter, le réseau doit prendre une distribution discrète d'échantillons qui ressemble étroitement à la continuité d'un signal audio.

Une fois que nous avons une fréquence d'échantillonnage appropriée (8000 Hz est une bonne norme car la plupart des fréquences vocales sont dans cette plage), nous pouvons maintenant traiter les signaux audio avec des bibliothèques Python telles que LibROSA et SciPy. Nous pouvons ensuite nous appuyer sur ces entrées en divisant l'ensemble de données en 2, l'entraînement du modèle et l'autre pour valider les résultats du modèle.

À ce stade, on peut utiliser l'architecture modèle de Conv1d, un réseau de neurones convolutifs qui fonctionne selon une seule dimension. Nous pouvons ensuite construire un modèle, définir sa fonction de perte et utiliser des réseaux de neurones pour enregistrer le meilleur modèle de conversion de la parole en texte. En utilisant l'apprentissage en profondeur et le NLP (traitement du langage naturel), nous pouvons affiner la déclaration en texte pour des applications et une adoption plus étendues.

Applications de la reconnaissance vocale

Comme nous l'avons appris, les outils pour exécuter cette innovation technologique sont plus accessibles car il s'agit principalement d'une innovation logicielle, et aucune entreprise ne la possède. Cette accessibilité a ouvert des portes aux développeurs disposant de ressources limitées pour proposer leur application de cette technologie.

Certains des domaines dans lesquels la reconnaissance vocale se développe sont les suivants :

  • Évolution des moteurs de recherche : la reconnaissance vocale contribuera à améliorer la précision de la recherche en comblant l'écart entre la communication verbale et écrite.
  • Impact sur l'industrie de la santé : la reconnaissance vocale devient une caractéristique courante dans le secteur médical en aidant à remplir les rapports médicaux. Au fur et à mesure que les VUI comprennent mieux le jargon médical, l'adoption de cette technologie libérera du temps du travail administratif pour les médecins.
  • Industrie des services : dans les tendances croissantes de l'automatisation, il se peut qu'un client ne puisse pas obtenir qu'un humain réponde à une requête, et ainsi, les systèmes de reconnaissance vocale peuvent combler cette lacune. Nous verrons la croissance rapide de cette fonctionnalité dans les aéroports, les transports en commun, etc.
  • Fournisseurs de services : les fournisseurs de télécommunications peuvent compter encore plus sur les systèmes basés sur la parole et le texte qui peuvent réduire les temps d'attente en aidant à établir les demandes des appelants et en les dirigeant vers l'assistance appropriée.

Lisez aussi: Technologie de recherche vocale - Faits intéressants

Conclusion

La synthèse vocale est une technologie puissante qui sera bientôt omniprésente. Sa convivialité raisonnablement simple en conjonction avec Python (l'un des langages de programmation les plus populaires au monde) facilite la création de ses applications. Alors que nous progressons dans ce domaine, nous ouvrons la voie à un monde où l'accès au monde numérique n'est pas seulement du bout des doigts, mais aussi un mot parlé.

Si vous souhaitez en savoir plus sur le traitement du langage naturel, consultez notre programme Executive PG in Machine Learning and AI qui est conçu pour les professionnels en activité et plus de 450 heures de formation rigoureuse.

Si vous êtes curieux d'en savoir plus sur la science des données, consultez le programme Executive PG en science des données de IIIT-B & upGrad qui est créé pour les professionnels en activité et propose plus de 10 études de cas et projets, des ateliers pratiques, un mentorat avec des experts de l'industrie, 1 -on-1 avec des mentors de l'industrie, plus de 400 heures d'apprentissage et d'aide à l'emploi avec les meilleures entreprises.

Qu'est-ce que la conversion parole-texte ?

Au début de la reconnaissance vocale, un transcripteur était assis avec un casque et enregistrait la parole. Le processus a pris beaucoup de temps et produit des transcriptions de mauvaise qualité. Aujourd'hui, les systèmes de reconnaissance vocale utilisent des ordinateurs pour convertir la parole en texte. C'est ce qu'on appelle la conversion parole-texte. La reconnaissance vocale (également connue sous le nom de conversion parole-texte) est le processus de conversion des mots prononcés en données lisibles par machine. Le but est de permettre aux gens de communiquer vocalement avec les machines et de permettre aux machines de communiquer avec les gens en produisant de la parole. Un logiciel de synthèse vocale est utilisé pour effectuer cette conversion.

Quels sont les défis de la conversion parole-texte ?

Il existe de nombreux défis dans la conversion de la parole en texte. Les principaux défis sont les suivants : La précision, où le système doit interpréter correctement les mots prononcés afin d'extraire l'intention de l'utilisateur. Vitesse, le système doit être capable d'effectuer les opérations ci-dessus suffisamment rapidement pour être acceptable pour l'utilisateur. Naturel, le système doit sonner le plus naturellement possible, afin que l'utilisateur ne se sente pas obligé de parler d'une manière non naturelle. Robustesse, le système doit être capable de gérer une grande quantité de bruit de fond, d'autres paroles et tout autre effet susceptible d'interférer avec le processus de conversion.

Quelles sont les applications du traitement de la parole au texte ?

La raison pour laquelle vous devez convertir la parole en texte est qu'il s'agit d'un moyen de communication très rapide et pratique. Le traitement de la parole en texte peut être utilisé dans de nombreuses applications différentes, par exemple, il peut être utilisé dans un appareil de communication mobile, où l'utilisateur peut utiliser sa parole pour envoyer des messages et passer des appels au lieu de taper sur le clavier. Une autre application du traitement de la parole au texte est le contrôle de la machine. C'est une façon de contrôler un moteur ou une autre machine industrielle en lui parlant.