Comment faire de la reconnaissance vocale. Le meilleur programme de reconnaissance vocale russe

Le service SendPulse est un outil marketing permettant de créer une base d'abonnements et de convertir des visiteurs aléatoires sur votre site en visiteurs réguliers. SendPulse combine les fonctionnalités les plus importantes pour attirer et fidéliser les clients sur une seule plateforme :
● newsletters par e-mail,
● push Web,
● Envois SMS,
● SMTP,
● envois dans Viber,
● envoyer des messages à Facebook Messenger.

Newsletters par e-mail

Vous pouvez utiliser différents tarifs pour l'envoi de newsletters par e-mail, y compris des newsletters gratuites. Le plan gratuit a des limites : la base d'abonnement n'est pas supérieure à 2500.
La première chose à faire lorsque vous travaillez avec un service de messagerie électronique est de créer votre propre carnet d'adresses. Définissez un titre et téléchargez une liste d'adresses e-mail.


SendPulse facilite la création formulaires d'abonnement sous la forme d'une fenêtre pop-up, des formulaires intégrés, flottants et fixes dans une certaine partie de l'écran. A l'aide de formulaires d'abonnement, vous constituerez une base d'abonnés à partir de zéro ou compléterez votre base avec de nouvelles adresses.
Dans le générateur de formulaires, vous pouvez créer exactement le formulaire d'abonnement qui correspond le mieux à vos besoins, et les conseils de service vous aideront à faire face à cette tâche. Il est également possible d'utiliser l'un des formulaires prêts à l'emploi disponibles.


Lors de la création de formulaires d'abonnement, il est obligatoire d'utiliser un e-mail avec un domaine d'entreprise. Lisez comment.
Modèles de messages aidera à concevoir magnifiquement vos lettres aux abonnés. Vous pouvez créer votre propre modèle de lettre dans un constructeur spécial.


Envois automatiques. Les gestionnaires de contenu utilisent activement la distribution automatique. Il aide à automatiser le processus de travail avec les clients. Il existe plusieurs façons de créer un expéditeur automatique :
Série séquentielle de lettres. C'est l'option la plus simple, lorsque, quelles que soient les conditions, plusieurs lettres sont écrites qui seront envoyées aux destinataires dans un certain ordre. Il peut y avoir des options ici - série de messages(chaîne de messages simple), date spéciale(les lettres sont chronométrées à certaines dates), lettre de déclenchement- la lettre est envoyée en fonction des actions de l'abonné (ouverture du message, etc.).
Automatisation360– mailing avec certains filtres et conditions, ainsi que la prise en compte des conversions.
Chaînes finies par modèle. Vous pouvez créer une série de lettres basées sur un modèle donné, ou modifier le modèle et le personnaliser en fonction de vos besoins.
Test A/B vous aidera à expérimenter différentes options pour envoyer une série d'e-mails et à déterminer la meilleure option pour les ouvertures ou les transitions.

Envoi de notifications push

Les push-mailings sont un abonnement dans une fenêtre de navigateur, c'est une sorte de remplacement pour les abonnements rss. Les technologies Web-push sont rapidement entrées dans nos vies, et il est déjà difficile de trouver un site qui n'utilise pas les mailings push pour attirer et fidéliser les clients. Demander un script pour , vous pouvez envoyer des e-mails manuellement et créer des diffusions automatiques en créant une série d'e-mails ou en collectant des données à partir de RSS. La deuxième option implique qu'après l'apparition d'un nouvel article sur votre site, une notification à ce sujet sera automatiquement envoyée à vos abonnés avec une brève annonce.


Nouveau depuis Envoyerimpulsion– vous pouvez maintenant monétiser votre site avec des notifications push en y incorporant des publicités. Lorsque vous atteignez 10 $, tous les lundis, les paiements sont effectués sur l'un des systèmes de paiement - Visa / mastercard, PayPal ou Webmoney.
Les messages push sur le service sont absolument gratuits. Le paiement n'est prélevé que pour les envois en marque blanche - sans mentionner le service SendPulse, mais si le logo du service ne vous dérange pas, vous pouvez utiliser les notifications push gratuitement et sans restrictions.

SMTP

La fonction SMTP protège votre liste de diffusion contre la liste noire en utilisant des adresses IP blanches. Les technologies de signature cryptographique DKIM et SPF utilisées dans les envois SendPulse augmentent la crédibilité des e-mails que vous envoyez, ce qui rend vos e-mails moins susceptibles de se retrouver dans les spams ou sur la liste noire.

Robots de messagerie Facebook

Le chatbot Facebook est en test bêta. Vous pouvez le connecter à votre page et envoyer des messages aux abonnés.

Envoi de SMS

Grâce au service SendPulse, il est facile d'envoyer des mailings à une base de données de numéros de téléphone. Vous devez d'abord créer un carnet d'adresses avec une liste de numéros de téléphone. Pour ce faire, sélectionnez la section "Carnet d'adresses", créez un nouveau carnet d'adresses, téléchargez des numéros de téléphone. Vous pouvez maintenant créer une liste de diffusion SMS pour cette base de données. Le prix de l'envoi de SMS varie en fonction des opérateurs télécoms des destinataires et se situe en moyenne entre 1,26 roubles et 2,55 roubles pour 1 SMS envoyé.

Programme d'affiliation

SendPulse met en œuvre un programme d'affiliation dans lequel un utilisateur enregistré utilisant votre lien qui a payé le tarif vous rapportera 4 000 roubles. L'utilisateur invité reçoit une remise de 4000 roubles pour les 5 premiers mois d'utilisation du service.

Sous-titreur téléphonique pour sourds et malentendants

Transformez votre écran en un en-tête de téléphone génial. C'est entièrement automatique, sans qu'aucun humain ne dactylographe ne tape vos conversations. Trouvez des grands-parents difficiles à entendre, famille et amis au téléphone ? Activez Speechlogger pour eux et arrêtez de crier au téléphone. Connectez simplement la sortie audio de votre téléphone à l'entrée audio de votre ordinateur et exécutez Speechlogger. Il est également utile dans les interactions en face à face.

Transcription automatique

Avez-vous enregistré l'entretien ? Gagnez du temps en le réécrivant, du discours automatique de Google au texte apporté à votre navigateur par Speechlogger. Jouez l'interview enregistrée dans le microphone (ou la ligne) de votre ordinateur et laissez l'enregistreur de parole faire la transcription. Speechlogger enregistre la transcription du texte avec la date, l'heure et vos commentaires. Il vous permet également d'éditer du texte. Les conversations téléphoniques peuvent être transcrites selon la même méthode. Vous pouvez également enregistrer des fichiers audio directement depuis votre ordinateur, comme décrit ci-dessous.

Interprète et traducteur automatique

Rencontrer des invités étrangers ? Apportez un ordinateur portable (ou deux) avec un enregistreur de parole et un microphone. Chaque partie verra les paroles prononcées par l'autre traduites dans sa propre langue en temps réel. Il est également utile de passer un appel téléphonique dans une langue étrangère pour vous assurer que vous comprenez parfaitement l'autre partie. Connectez la sortie audio de votre téléphone à l'entrée ligne de votre ordinateur et démarrez Speechlogger.

Apprenez des langues étrangères et améliorez vos compétences de prononciation

Speechlogger est un excellent outil d'apprentissage des langues et peut être utilisé de plusieurs façons. Vous pouvez l'utiliser pour apprendre du vocabulaire en parlant votre langue maternelle et en laissant le logiciel le traduire. Vous pouvez apprendre et pratiquer la prononciation correcte en parlant une langue étrangère et en voyant si Speechlogger comprend ou non. Si le texte est transcrit en police noire cela signifie que vous l'avez bien prononcé.

Génération de sous-titres de films

Speechlogger peut enregistrer automatiquement des films ou d'autres fichiers audio. Ensuite, prenez le fichier et traduisez-le automatiquement dans n'importe quelle langue pour produire des sous-titres internationaux.

Dicter au lieu de taper

Écrit une lettre? Les documents? Listes? Sommaire? Tout ce que vous devez taper, essayez plutôt de le dicter à Speechlogger. Speechlogger l'enregistrera automatiquement pour vous et vous permettra de l'exporter vers un document.

Jeu amusant :)

Pouvez-vous imiter le locuteur chinois ? Français? Et le russe ? Essayez d'imiter une langue étrangère et voyez ce que vous venez de dire avec Speechlogger. Utilisez la traduction simultanée de Speechlogger pour comprendre ce que vous venez de dire. Obtenez des résultats incroyables - c'est très amusant !

Sur Facebook, on nous a demandé :
« Pour travailler avec le texte, j'ai besoin de transcrire 3 heures d'enregistrement vocal. J'ai essayé de télécharger un fichier audio avec une image sur YouTube et d'utiliser leur transcripteur de texte, mais cela s'est avéré une sorte d'abracadabra. Pouvez-vous s'il vous plaît me dire comment résoudre ce problème techniquement? Merci!
Alexandre Konovalov»

Alexander, il existe une solution technique simple - mais le résultat dépendra uniquement de la qualité de votre enregistrement. Laissez-moi vous expliquer de quelle qualité je parle.

Ces dernières années, les technologies russes de reconnaissance vocale ont beaucoup progressé. Le pourcentage d'erreurs de reconnaissance a diminué à un tel niveau qu'il est devenu plus facile de «dire» un autre texte dans une application mobile ou un service Internet spécial, en corrigeant manuellement les «erreurs» individuelles - que de taper le texte entier sur le clavier.

Mais pour que l'intelligence artificielle du système de reconnaissance puisse faire son travail, l'utilisateur doit faire le sien. A savoir : parlez dans le micro de manière claire et mesurée, évitez les bruits de fond forts, utilisez si possible un casque stéréo ou un micro externe fixé à la boutonnière (pour une qualité de reconnaissance, il est important que le micro soit toujours à la même distance des lèvres , et vous-même parlez au même volume ). Naturellement, plus la classe de l'appareil audio est élevée, mieux c'est.

Il est facile de respecter ces conditions si, au lieu d'accéder directement au service Internet de reconnaissance vocale, vous utilisez un enregistreur vocal comme appareil intermédiaire intermédiaire. Soit dit en passant, une telle "secrétaire personnelle" est particulièrement indispensable lorsque vous n'avez pas accès à Internet. Naturellement, il est préférable d'utiliser au moins un enregistreur vocal professionnel peu coûteux qu'un appareil d'enregistrement intégré à un lecteur mp3 ou à un smartphone bon marché. Cela donnera une bien meilleure chance de « transmettre » les enregistrements reçus au service de reconnaissance vocale.

C'est difficile, mais il est possible de persuader l'interlocuteur que vous interrogez de suivre ces règles (un conseil de plus : si vous n'avez pas de micro externe sur une pince à linge dans le kit, gardez au moins l'enregistreur à côté de l'interlocuteur , et non avec vous).

Mais "esquisser" une conférence ou un séminaire au niveau requis en mode automatique est, à mon avis, pratiquement irréaliste (après tout, vous ne pourrez pas contrôler le discours des intervenants et la réaction du public). Bien qu'il s'agisse d'une option assez intéressante: transformer des conférences audio et des livres audio enregistrés par des professionnels en texte (si la musique de fond et les bruits ne s'y superposent pas).

Espérons que la qualité de l'enregistrement de votre dictaphone soit suffisamment élevée pour pouvoir le déchiffrer en mode automatique.

Sinon, avec presque n'importe quelle qualité d'enregistrement, vous pouvez décrypter en mode semi-automatique.

De plus, dans un certain nombre de situations, les plus grandes économies de temps et d'efforts vous amèneront, paradoxalement, à décoder en mode manuel. Plus précisément, la version que j'utilise moi-même depuis une douzaine d'années. 🙂

Donc, dans l'ordre.

1. Reconnaissance vocale automatique

Beaucoup conseillent de transcrire les enregistrements vocaux sur YouTube. Mais cette méthode oblige l'utilisateur à passer du temps à télécharger le fichier audio et l'image d'arrière-plan, puis à nettoyer le texte résultant des horodatages. En attendant, ce temps est facile à économiser. 🙂

Vous pouvez reconnaître les enregistrements audio directement depuis votre ordinateur en utilisant les capacités de l'un des services Internet alimentés par le moteur de reconnaissance Google (je recommande Speechpad.ru ou Speechlogger.com). Tout ce que vous avez à faire est de faire une petite astuce : au lieu que votre voix soit diffusée depuis le microphone, redirigez le flux audio joué par votre lecteur d'ordinateur vers le service.

Cette astuce s'appelle un mixeur stéréo logiciel (généralement utilisé pour enregistrer de la musique sur un ordinateur ou la diffuser depuis un ordinateur vers Internet).

Le mélangeur stéréo faisait partie de Windows XP - mais a été supprimé par les développeurs des versions ultérieures de ce système d'exploitation (ils disent, afin de protéger les droits d'auteur : pour que les joueurs ne volent pas la musique des jeux, etc.). Cependant, il n'est pas rare qu'une table de mixage stéréo soit livrée avec des pilotes pour cartes audio (par exemple, des cartes Realtec intégrées à la carte mère). Si vous ne trouvez pas le mélangeur stéréo sur votre PC à l'aide des captures d'écran ci-dessous, essayez de réinstaller les pilotes audio à partir du CD fourni avec votre carte mère ou à partir du site Web du fabricant de la carte mère.

Si cela ne vous aide pas, installez un programme alternatif sur votre ordinateur. Par exemple - périphérique audio virtuel VB-CABLE gratuit : le propriétaire du service Speechpad.ru susmentionné recommande de l'utiliser.

premier pas vous devez désactiver le microphone pour une utilisation en mode enregistrement et activer le mélangeur stéréo (ou VB-CABLE virtuel) à la place.

Pour ce faire, cliquez sur l'icône du haut-parleur dans le coin inférieur droit (près de l'horloge) - ou sélectionnez la section "Son" dans le "Panneau de configuration". Dans l'onglet "Enregistrer" de la fenêtre qui s'ouvre, faites un clic droit et cochez les cases à côté des éléments "Afficher les appareils déconnectés" et "Afficher les appareils déconnectés". Faites un clic droit sur l'icône du microphone et sélectionnez "Muet" (en général, éteignez tous les appareils marqués d'une icône verte).

Faites un clic droit sur l'icône du mélangeur stéréo et sélectionnez "Activer". Une icône verte apparaîtra sur l'icône, indiquant que le mélangeur stéréo est devenu le périphérique par défaut.

Si vous décidez d'utiliser VB-CABLE, activez-le de la même manière dans l'onglet "Enregistrer".

Et aussi - dans l'onglet "Lecture".

Deuxième étape. Activez l'enregistrement audio sur n'importe quel lecteur (si vous avez besoin de décrypter la piste audio de la vidéo, vous pouvez également démarrer le lecteur vidéo). Dans le même temps, chargez le service Speechpad.ru dans le navigateur Chrome et cliquez sur le bouton "Activer l'enregistrement". Si l'enregistrement est d'une qualité suffisamment élevée, vous verrez comment le service transforme la parole en un texte significatif et proche du texte original sous vos yeux. C'est vrai, sans signes de ponctuation, que vous devrez organiser vous-même.

En tant que lecteur audio, je vous conseille d'utiliser AIMP, qui sera abordé plus en détail dans le troisième sous-chapitre. Maintenant, je noterai seulement que ce lecteur vous permet de ralentir l'enregistrement sans distorsion de la parole, ainsi que de corriger d'autres erreurs. Cela peut quelque peu améliorer la reconnaissance des enregistrements de qualité médiocre. (Parfois, il est même conseillé de pré-traiter les mauvais enregistrements dans des programmes de montage sonore professionnels. Cependant, à mon avis, c'est une tâche trop laborieuse pour la plupart des utilisateurs, qui taperont du texte beaucoup plus rapidement à la main. :))

2. Reconnaissance vocale semi-automatique

Tout est simple ici. Si l'enregistrement est de mauvaise qualité et que la reconnaissance "s'étouffe" ou que le service produit trop d'erreurs, aidez vous-même la cause en "embarquant" dans la chaîne : "lecteur audio - annonceur - système de reconnaissance".

Votre tâche consiste à écouter le discours enregistré dans un casque et à le dicter simultanément via le microphone au service de reconnaissance Internet. (Bien sûr, vous n'avez pas besoin de passer du microphone au mélangeur stéréo ou au câble virtuel dans la liste des appareils d'enregistrement, comme dans la section précédente). Et comme alternative aux services Internet mentionnés ci-dessus, vous pouvez utiliser des applications pour smartphone telles que Yandex.Dictation gratuite ou la fonction de dictée sur un iPhone avec iOS 8 et supérieur.

Je note qu'en mode semi-automatique vous avez la possibilité de dicter immédiatement des signes de ponctuation, que les services ne sont pas encore capables de placer en mode automatique.

Si vous parvenez à dicter de manière synchrone avec la lecture de l'enregistrement sur le lecteur, la transcription préliminaire prendra presque autant de temps que l'enregistrement lui-même (sans compter le temps passé ultérieurement à corriger les fautes d'orthographe et de grammaire). Mais même travailler selon le schéma : « écouter une phrase - dicter - écouter une phrase - dicter » peut vous faire gagner un bon temps par rapport à la frappe traditionnelle.

En tant que lecteur audio, je recommande d'utiliser le même AIMP. Tout d'abord, vous pouvez l'utiliser pour ralentir la lecture à une vitesse qui vous convient en dictée synchrone. Deuxièmement, ce lecteur peut restituer l'enregistrement pendant un certain nombre de secondes : c'est parfois nécessaire pour mieux entendre une phrase inintelligible.

3. Transcription manuelle d'un enregistreur vocal

Vous pouvez découvrir en pratique que vous vous lassez trop vite de la dictée semi-automatique. Ou vous faites trop d'erreurs avec le service. Ou, grâce à vos compétences en dactylographie rapide, il est beaucoup plus facile de créer du texte corrigé prêt à l'emploi sur le clavier que d'utiliser la dictée. Ou votre enregistreur vocal, microphone de casque stéréo, carte audio ne fournit pas une qualité sonore acceptable pour le service. Ou peut-être que vous n'avez tout simplement pas la possibilité de dicter à haute voix dans votre travail ou votre bureau à domicile.

Dans tous ces cas, ma méthode propriétaire de décodage manuel vous aidera (écouter l'enregistrement dans AIMP - taper dans Word). Avec lui, vous pouvez transformer une note en texte plus rapidement que de nombreux journalistes professionnels, dont la vitesse de frappe est similaire à la vôtre ! En même temps, vous dépenserez beaucoup moins d'énergie et de nerfs qu'eux. 🙂

Quelle est la principale raison de la perte d'énergie et de temps lors de la transcription d'enregistrements audio de manière traditionnelle ? En raison du fait que l'utilisateur fait beaucoup de mouvements inutiles.

L'utilisateur tend constamment la main vers l'enregistreur vocal, puis vers le clavier de l'ordinateur. J'ai arrêté la lecture - j'ai tapé le passage que j'écoutais dans un éditeur de texte - j'ai relancé la lecture - j'ai rembobiné l'enregistrement illisible - etc., etc.

L'utilisation d'un lecteur logiciel standard sur un ordinateur facilite un peu le processus : l'utilisateur doit constamment réduire/développer Word, arrêter/démarrer le lecteur, et même parcourir d'avant en arrière avec le curseur du lecteur pour trouver un fragment illisible, puis revenir jusqu'au dernier endroit écouté dans l'enregistrement.

Pour réduire ces pertes de temps et d'autres, les sociétés informatiques spécialisées développent des transcripteurs logiciels et matériels. Ce sont des solutions assez coûteuses pour les professionnels - les mêmes journalistes, sténographes judiciaires, enquêteurs, etc. Mais, en fait, pour nos besoins, seules deux fonctions sont requises :

  • la possibilité de ralentir la lecture d'un enregistrement vocal sans le déformer ni baisser le ton (de nombreux lecteurs permettent de ralentir la vitesse de lecture - mais, hélas, en même temps, la voix humaine se transforme en une voix robotique monstrueuse qui est difficile à entendre pendant longtemps);
  • la possibilité d'arrêter l'enregistrement ou de le restaurer pendant un nombre de secondes spécifié et de le revenir sans arrêter de taper et sans réduire la fenêtre de l'éditeur de texte.

J'ai testé des dizaines de programmes audio dans mon temps - et n'ai trouvé que deux applications payantes abordables qui répondent à ces exigences. J'en ai un. J'ai cherché un peu plus pour mes chers lecteurs 🙂 - et j'ai trouvé une merveilleuse solution gratuite - le lecteur AIMP, que j'utilise toujours moi-même.

"Après avoir entré les paramètres AIMP, recherchez la section Global Keys et reconfigurez Stop / Start sur la touche Escape (Esc). Croyez-moi, c'est le plus pratique, car vous n'avez pas à y penser et votre doigt ne tombera pas accidentellement sur d'autres touches. Définissez les éléments "Reculer un peu" et "Avancer un peu" sur les touches Ctrl + retour/avance, respectivement (vous avez quatre touches fléchées sur votre clavier - sélectionnez-en deux). Cette fonction est nécessaire pour réécouter le dernier fragment ou avancer un peu.

Ensuite, en appelant l'égaliseur, vous pouvez diminuer les valeurs de vélocité et de tempo - et augmenter la valeur de hauteur. Dans ce cas, vous remarquerez que la vitesse de lecture ralentira, mais la hauteur de la voix (si vous choisissez bien la valeur "Pitch") ne changera pas. Choisissez ces deux paramètres afin d'avoir le temps de taper presque simultanément, en ne l'arrêtant qu'occasionnellement.

Lorsque tout est mis en place, la saisie vous prendra moins de temps et vos mains se fatigueront moins. Vous pourrez transcrire l'enregistrement audio calmement et confortablement, pratiquement sans lever les doigts pour taper sur le clavier.

Je ne peux qu'ajouter à ce qui a été dit que si l'enregistrement n'est pas de très haute qualité, vous pouvez essayer d'améliorer sa lecture en expérimentant d'autres paramètres dans le gestionnaire d'effets sonores d'AIMP.

Et le nombre de secondes pendant lesquelles il vous sera plus pratique de reculer ou d'avancer dans l'enregistrement à l'aide des touches de raccourci - défini dans la section "Lecteur" de la fenêtre "Paramètres" (qui peut être appelée en appuyant sur les touches de raccourci "Ctrl + P").

Je vous souhaite de gagner plus de temps sur les tâches de routine - et de l'utiliser de manière fructueuse pour l'essentiel ! 🙂 Et n'oubliez pas d'activer le microphone dans la liste des appareils d'enregistrement lorsque vous allez parler sur Skype ! 😉

3 façons de transcrire un enregistrement vocal : reconnaissance vocale, dictée, mode manuel

Mise à jour : lundi 31 juillet 2017

Qu'est-ce que l'idée semi-fantastique de parler à un ordinateur a à voir avec la photographie professionnelle ? Presque aucun, si vous n'êtes pas fan de l'idée du développement sans fin de tout l'environnement technique de l'homme. Imaginez un instant que vous donnez des ordres vocaux à votre appareil photo pour modifier la distance focale et régler la compensation d'exposition d'un demi-pas plus. La télécommande de la caméra a déjà été implémentée, mais là, vous devez appuyer silencieusement sur les boutons, et voici un fotik auditif!

C'est devenu une tradition de citer un film fantastique comme exemple de communication vocale humaine avec un ordinateur, enfin, au moins "Space Odyssey 2001" réalisé par Stanley Kubrick. Là, l'ordinateur de bord mène non seulement un dialogue significatif avec les astronautes, mais peut lire sur les lèvres comme une personne sourde. En d'autres termes, la machine a appris à reconnaître la parole humaine sans erreur. Peut-être que quelqu'un trouvera le contrôle vocal à distance de l'appareil photo superflu, mais beaucoup aimeraient cette phrase "Enlève-nous bébé" et une photo de toute la famille sur fond de palmier est prête.

Bon, ici j'ai rendu hommage à la tradition, un peu fantasmée. Mais, parlant du fond du cœur, cet article était difficile à écrire, et tout a commencé par un cadeau sous la forme d'un smartphone avec Android 4 OS. Ce modèle HUAWEI U8815 dispose d'un petit écran tactile de quatre pouces et d'un clavier à l'écran. Il est quelque peu inhabituel de taper dessus, mais il s'est avéré que ce n'était pas particulièrement nécessaire. (image01)

1. Reconnaissance vocale dans un smartphone sous Android OS

En essayant un nouveau jouet, j'ai remarqué un graphique de microphone dans la barre de recherche. Google et sur le clavier dans Notes. Auparavant, je n'étais pas intéressé par ce que ce symbole représente. j'ai eu des conversations dans Skype et tapé des lettres sur le clavier. C'est ce que font la plupart des internautes. Mais comme ils me l'ont expliqué plus tard, dans un moteur de recherche Google une recherche vocale en russe a été ajoutée et des programmes sont apparus qui vous permettent de dicter des messages courts lors de l'utilisation d'un navigateur Chrome.

J'ai dit une phrase de trois mots, le programme les a identifiés et les a montrés dans une cellule avec un fond bleu. Il y avait de quoi être surpris, car tous les mots étaient correctement orthographiés. Si vous cliquez sur cette cellule, la phrase apparaît dans le champ de texte du bloc-notes Android. Il a donc prononcé quelques phrases et envoyé un message à l'assistant par SMS.


2. Bref historique des programmes de reconnaissance vocale.

Ce n'était pas une découverte pour moi que les réalisations modernes dans le domaine de la commande vocale permettent de donner des commandes à des appareils électroménagers, une voiture, un robot. Le mode de commande a été introduit dans les versions antérieures de Windows, OS/2 et Mac OS. J'ai vu des programmes de locuteurs, mais à quoi servent-ils ? C'est peut-être ma particularité qu'il m'est plus facile de parler que de taper sur le clavier, et sur un téléphone portable, je ne peux rien taper du tout. Vous devez enregistrer les contacts sur un ordinateur portable avec un clavier normal et les transférer via un câble USB. Mais parler simplement dans le microphone et l'ordinateur lui-même a tapé le texte sans erreur - c'était un rêve pour moi. L'atmosphère de désespoir était soutenue par les discussions sur les forums. Partout ils avaient une si triste pensée :

"Cependant, dans la pratique, jusqu'à présent, les programmes de reconnaissance vocale réelle (et même en russe) n'existent pratiquement pas, et ils ne seront évidemment pas créés de sitôt. De plus, même la tâche inverse de la reconnaissance - la synthèse vocale, qui, semble-t-il, est beaucoup plus simple que la reconnaissance, n'a pas été entièrement résolue. (ComputerPress №12, 2004)

"Il n'existe pas à ce jour de programme de reconnaissance vocale normal (pas seulement en russe), car la tâche est assez difficile pour un ordinateur. Et le pire, c'est que le mécanisme de reconnaissance des mots par une personne n'a pas été réalisé, il n'y a donc rien sur quoi s'appuyer lors de la création de programmes de reconnaissance. (Encore une discussion sur le forum).

Dans le même temps, les examens des programmes de saisie de texte en anglais ont indiqué des succès évidents. Par exemple, IBM ViaVoice 98 Executive Edition avaient un dictionnaire de base de 64 000 mots et la possibilité d'ajouter le même nombre de leurs propres mots. Le pourcentage de reconnaissance de mots sans formation du programme était d'environ 80%, et avec un travail ultérieur avec un utilisateur spécifique, il a atteint 95%.

Parmi les programmes de reconnaissance de la langue russe, il convient de noter "Gorynych" - un ajout au Dragon Dictate 2.5 en anglais. À propos de la recherche, puis de la "bataille avec cinq Gorynychs", je parlerai dans la deuxième partie de la revue. J'ai trouvé le "Dragon anglais" en premier.

3. Le programme de reconnaissance de la parole continue "Dragon Naturally Speaking"

La version moderne du programme de l'entreprise Nuancer s'est avéré être avec mon vieil ami de l'Institut des langues étrangères de Minsk. Elle l'a ramenée d'un voyage à l'étranger, et l'a achetée, pensant qu'elle pourrait être "secrétaire informatique". Mais quelque chose n'a pas fonctionné et le programme est resté presque oublié sur l'ordinateur portable. En raison du manque d'expérience intelligible, j'ai dû aller moi-même voir mon ami. Toute cette longue introduction est nécessaire pour bien comprendre les conclusions que j'ai tirées.

Le nom complet de mon premier dragon était : . Le programme est en anglais et tout y est clair même sans manuel. La première étape consiste à créer un profil d'un utilisateur spécifique pour déterminer les caractéristiques du son des mots dans sa performance. Ce que j'ai fait - l'âge du locuteur, le pays, les particularités de la prononciation sont importants. Mon choix est : 22-54 ans, anglais britannique, prononciation standard. Vient ensuite quelques fenêtres où vous configurez votre microphone. (image04)

La prochaine étape des programmes sérieux de reconnaissance vocale est la formation à la prononciation particulière d'une personne en particulier. Vous êtes invité à choisir la nature du texte : mon choix est une brève consigne de dictée, mais vous pouvez aussi « commander » une histoire humoristique.

L'essence de cette étape de travail avec le programme est extrêmement simple - le texte est affiché dans la fenêtre, au-dessus se trouve une flèche jaune. Avec une prononciation correcte, la flèche se déplace à travers les phrases et en bas se trouve une barre de progression de la formation. La conversation en anglais était assez oubliée par moi, alors je me déplaçais avec difficulté. Le temps était également limité - après tout, l'ordinateur n'était pas le mien et j'ai dû interrompre la formation. Mais une amie a dit qu'elle avait passé le test en moins d'une demi-heure. (image05)

Refusant d'adapter le programme à ma prononciation, je suis allé à la fenêtre principale et j'ai lancé l'éditeur de texte intégré. Il a prononcé des mots séparés de certains textes qu'il a trouvés sur l'ordinateur. Ces mots qu'il disait correctement, le programme imprimé, ceux qu'il disait mal, remplacés par quelque chose « d'anglais ». Après avoir clairement prononcé la commande «effacer la ligne» en anglais, le programme l'a remplie. Cela signifie que je lis correctement les commandes et que le programme les reconnaît sans formation préalable.

Mais il était important pour moi de savoir comment ce "dragon" écrit en russe. Comme vous l'avez compris dans la description précédente, lors de la formation du programme, vous ne pouvez sélectionner que du texte anglais, il n'y a tout simplement pas de texte russe. Il est clair que cela ne fonctionnera pas pour former la reconnaissance de la parole russe. Sur la photo suivante, vous pouvez voir quelle phrase le programme a tapé lors de la prononciation du mot russe "Salut". (image06)

Le résultat de la communication avec le premier dragon s'est avéré légèrement comique. Si vous lisez attentivement le texte sur le site officiel, vous pouvez voir la "spécialisation" anglaise de ce produit logiciel. De plus, lors du chargement, nous lisons dans la fenêtre du programme "Anglais". Alors pourquoi tout cela était-il nécessaire ? Il est clair que les forums et les rumeurs sont à blâmer ...

Mais il y a aussi une expérience utile. Mon amie a demandé à voir l'état de son ordinateur portable. D'une manière ou d'une autre lentement, il a commencé à travailler. Ce n'est pas surprenant - la partition système n'avait que 5% d'espace libre. En supprimant des programmes inutiles, j'ai vu que la version officielle occupait plus de 2,3 Go. Nous aurons besoin de ce numéro plus tard. (image.07)



La reconnaissance du discours russe, en fin de compte, n'était pas une tâche anodine. A Minsk, j'ai réussi à trouver "Gorynych" d'un ami. Il a longuement cherché le disque dans ses vieux décombres et, selon lui, il s'agit d'une publication officielle. Le programme s'est installé instantanément et j'ai découvert que son dictionnaire contenait 5 000 mots russes plus 100 commandes et 600 mots anglais plus 31 commandes.

Vous devez d'abord configurer le microphone, ce que j'ai fait. Puis j'ai ouvert le dictionnaire et ajouté le mot "examen" car ce n'était pas dans le dictionnaire du programme. J'ai essayé de parler clairement, d'une voix monocorde. Enfin, j'ai ouvert le programme Gorynych Pro 3.0, activé le mode dictée et obtenu cette liste de "mots dont le son est similaire". (image.09)

Le résultat m'a intrigué, car il différait clairement pour le pire du travail d'un smartphone Android, et j'ai décidé d'essayer d'autres programmes de " Boutique en ligne Google Chrome". Et il a remis à plus tard le traitement des «serpents gorynych». j'ai pensé à ça report action dans l'esprit russe d'origine

5. Les capacités vocales de Google

Pour travailler avec la voix sur un ordinateur ordinaire avec OS Windows, vous devrez installer un navigateur Google Chrome. Si vous y travaillez sur Internet, vous pouvez cliquer en bas à droite sur le lien du magasin de logiciels. Là, gratuitement, j'ai trouvé deux programmes et deux extensions pour la saisie vocale de texte. Les programmes s'appellent "Cahier de Voix" et "Voysnot - voix au texte". Après l'installation, ils peuvent être trouvés sur l'onglet "Applications" ton navigateur "Chrome". (image.10)

Les extensions sont appelées "Mot clé de recherche vocale Google (bêta) 0.1.0.5" et "Texte de saisie vocale - Speechpad.ru 5.4". Après l'installation, ils peuvent être désactivés ou supprimés sur l'onglet "Extensions".(image.11)

Note vocale. Dans l'onglet Application du navigateur Chrome, double-cliquez sur l'icône du programme. Une boîte de dialogue s'ouvrira comme indiqué dans l'image ci-dessous. En cliquant sur l'icône du microphone, vous prononcez de courtes phrases dans le microphone. Le programme envoie vos mots au serveur de reconnaissance vocale et tape le texte dans la fenêtre. Tous les mots et expressions présentés dans l'illustration ont été tapés du premier coup. Évidemment, cette méthode ne fonctionne qu'avec une connexion Internet active. (image.12)

Bloc-notes vocal. Si vous exécutez le programme sur l'onglet des applications, un nouvel onglet de la page Internet s'ouvrira Speechpad.ru. Il y a une instruction détaillée sur la façon d'utiliser ce service et un formulaire compact. Ce dernier est illustré dans l'illustration ci-dessous. (image.13)

Entrée vocale text vous permet de remplir les champs de texte des pages Internet avec votre voix. Par exemple, je suis allé sur ma page Google+. Dans le champ de saisie du nouveau message, cliquez avec le bouton droit de la souris et sélectionnez "SpeechPad". La zone de saisie de couleur rose indique que vous pouvez dicter votre texte. (image.14)

Recherche vocale Google vous permet d'effectuer une recherche vocale. Lorsque vous installez et activez cette extension, un symbole de microphone apparaît dans la barre de recherche. Lorsque vous appuyez dessus, un symbole apparaît dans un grand cercle rouge. Dites simplement la phrase de recherche et elle apparaîtra dans les résultats de la recherche. (image.15)

Remarque importante : pour que le microphone fonctionne avec les extensions Chrome, vous devez autoriser l'accès au microphone dans les paramètres du navigateur. Il est désactivé par défaut pour des raisons de sécurité. Passer Paramètres→Données personnelles→Paramètres de contenu. (Pour accéder à tous les paramètres à la fin de la liste, cliquez sur Afficher les paramètres avancés). Une boîte de dialogue s'ouvrira Paramètres de contenu de la page. Sélectionnez un élément dans la liste Multimédia→microphone.

6. Résultats du travail avec les programmes de reconnaissance vocale russes

Une petite expérience d'utilisation de programmes de saisie de texte par la voix a montré une excellente implémentation de cette fonctionnalité sur les serveurs d'une société Internet Google. Sans aucune formation préalable, les mots sont reconnus correctement. Cela indique que le problème de la reconnaissance vocale russe a été résolu.

Maintenant, nous pouvons dire que le résultat du développement Google sera un nouveau critère d'évaluation des produits d'autres fabricants. J'aimerais que le système de reconnaissance fonctionne hors ligne sans contacter les serveurs de l'entreprise - c'est plus pratique et plus rapide. Mais on ne sait pas quand un programme indépendant pour travailler avec un flux continu de discours russe sera publié. Il convient cependant de supposer qu'avec la possibilité de former cette "création" sera une véritable percée.

Programmes de développeurs russes "Gorynytch", "Dictographe" et "Combat" J'entrerai dans les détails dans la deuxième partie de cette revue. Cet article a été écrit très lentement pour la raison que la recherche de disques originaux est maintenant difficile. Pour le moment, j'ai déjà toutes les versions du logiciel de reconnaissance vocale russe, à l'exception de Combat 2.52. Aucun de mes amis ou collègues n'a ce programme, et je n'ai moi-même que quelques critiques élogieuses sur les forums. Certes, il y avait une option si étrange - télécharger "Combat" par SMS, mais je ne l'aime pas. (image16)


Un court clip vidéo vous montrera comment fonctionne la reconnaissance vocale dans un smartphone avec Android OS. Une caractéristique de la numérotation vocale est la nécessité de se connecter aux serveurs de Google. Ainsi, Internet devrait fonctionner pour vous

) sur un exemple réel Hello World de contrôle d'appareils électroménagers.
Pourquoi l'électroménager ? Oui, car grâce à un tel exemple, on peut apprécier que rapidité et précision, ce qui peut être obtenu en utilisant complètement local reconnaissance vocale sans serveurs de type ASR Google ou Kit de discours Yandex.
Je joins également à l'article tous les codes sources du programme et l'assemblage lui-même pour Android.

Pourquoi tout d'un coup ?

Ayant récemment trébuché dessus, j'ai demandé à l'auteur pourquoi il voulait utiliser la reconnaissance vocale côté serveur pour son programme (à mon avis, c'était redondant et entraînait quelques problèmes). À laquelle j'ai reçu une contre-question pour savoir si je pouvais décrire plus en détail l'utilisation de méthodes alternatives pour des projets où il n'est pas nécessaire de reconnaître quoi que ce soit, et le dictionnaire se compose d'un ensemble fini de mots. De plus, avec un exemple d'application pratique ...

Pourquoi avons-nous besoin d'autre chose que Yandex et Google ?

Comme cette "application très pratique", j'ai choisi le sujet commande vocale intelligente pour la maison.
Pourquoi un tel exemple ? Parce que vous pouvez y voir ces quelques avantages de la reconnaissance vocale entièrement locale par rapport à la reconnaissance à l'aide de solutions cloud. À savoir:
  • La rapidité- nous ne dépendons pas des serveurs et donc ne dépendons pas de leur disponibilité, de leur bande passante, etc. les facteurs
  • Précision- notre moteur fonctionne uniquement avec le dictionnaire qui intéresse notre application, augmentant ainsi la qualité de la reconnaissance
  • Prix- nous n'avons pas à payer pour chaque requête au serveur
  • Activation vocale- en bonus supplémentaire aux premiers points - nous pouvons constamment "écouter l'air" sans gaspiller notre trafic et sans charger le serveur

Noter

Je ferai immédiatement une réserve pour que ces avantages puissent être considérés comme des avantages uniquement pour une certaine catégorie de projets, Où sommes-nous nous savons avec certitude, avec quel dictionnaire et quelle grammaire l'utilisateur travaillera. Autrement dit, lorsque nous n'avons pas besoin de reconnaître un texte arbitraire (par exemple, un message SMS ou une requête de recherche). Sinon, la reconnaissance des nuages ​​est indispensable.

Ainsi, Android peut reconnaître la parole sans Internet !
Oui, oui... Uniquement sur JellyBean. Et seulement à partir d'un demi-mètre, pas plus. Et cette reconnaissance est la même dictée, n'utilisant qu'un modèle beaucoup plus petit. Nous ne pouvons donc pas non plus le gérer et le configurer. Et ce qu'elle nous rendra la prochaine fois est inconnu. Bien que pour SMS-ok juste ce qu'il faut !

Qu'est-ce qu'on fait?

Nous mettrons en place une télécommande vocale pour les appareils électroménagers qui fonctionnera avec précision et rapidité, à partir de quelques mètres et même sur des freins bon marché sur des smartphones, tablettes et montres Android très bon marché.
La logique sera simple, mais très pratique. Nous activons le microphone et prononçons un ou plusieurs noms d'appareils. L'application les reconnaît et les active ou les désactive en fonction de l'état actuel. Soit il reçoit d'eux un état et le prononce d'une voix féminine agréable. Par exemple, la température actuelle dans la pièce.

De nombreuses applications pratiques

Le matin, sans ouvrir les yeux, ils ont claqué l'écran du smartphone sur la table de chevet et ont ordonné "Bonjour!" - le scénario démarre, la cafetière s'allume et bourdonne, une musique agréable se fait entendre, les rideaux s'écartent.
Accrochez un smartphone bon marché (2 000, pas plus) dans chaque pièce au mur. Nous rentrons chez nous après le travail et ordonnons dans le vide "Maison intelligente ! Lumière, télé ! - Que se passe-t-il ensuite, je pense, il n'est pas nécessaire de le dire.

Transcriptions



La grammaire décrit ce que ce que l'utilisateur peut dire. Pour que Pocketsphinx sache comment il le prononcera, il est nécessaire pour chaque mot de la grammaire d'écrire comment il sonne dans le modèle de langage correspondant. C'est-à-dire transcription tous les mots. On l'appelle dictionnaire.

Les transcriptions sont décrites à l'aide d'une syntaxe spéciale. Par exemple:
smart uu m n ay j maison d oo m

En principe, rien de compliqué. La double voyelle dans la transcription indique le stress. Une consonne double est une consonne douce suivie d'une voyelle. Toutes les combinaisons possibles pour tous les sons de la langue russe.

Il est clair que nous ne pouvons pas décrire à l'avance toutes les transcriptions dans notre application, car nous ne connaissons pas à l'avance les noms que l'utilisateur donnera à ses appareils. Par conséquent, nous allons générer de telles transcriptions à la volée selon certaines règles de la phonétique russe. Pour ce faire, vous pouvez implémenter une telle classe PhonMapper qui peut recevoir une chaîne en entrée et générer la transcription correcte pour celle-ci.

Activation vocale

C'est la capacité du moteur de reconnaissance vocale à "écouter l'air" tout le temps afin de répondre à une phrase (ou des phrases) prédéfinie(s). Tous les autres sons et paroles seront ignorés. Ce n'est pas la même chose que de décrire la grammaire et d'allumer simplement le microphone. Je ne donnerai pas ici la théorie de cette tâche et les mécanismes de son fonctionnement. Permettez-moi de dire que récemment, les programmeurs travaillant sur Pocketsphinx ont implémenté une telle fonction, et maintenant elle est disponible prête à l'emploi dans l'API.

Une chose mérite certainement d'être mentionnée. Pour la phrase d'activation, vous devez non seulement spécifier la transcription, mais également choisir la valeur seuil de sensibilité. Une valeur trop petite conduira à beaucoup de faux positifs (c'est lorsque vous n'avez pas prononcé la phrase d'activation, mais que le système la reconnaît). Et trop élevé - à l'immunité. Par conséquent, ce paramètre revêt une importance particulière. Plage de valeurs approximative - de 1e-1 à 1e-40 en fonction de la phrase d'activation.

Activation de proximité

Cette tâche est spécifique à notre projet et n'est pas directement liée à la reconnaissance. Le code peut être vu directement dans l'activité principale.
Elle se rend compte SensorEventListener et au moment de l'approche (la valeur du capteur est inférieure à la valeur maximale), il démarre le temporisateur, vérifiant après un certain délai si le capteur est toujours bloqué. Ceci est fait pour éviter les faux positifs.
Lorsque le capteur n'est plus bloqué, nous arrêtons la reconnaissance, obtenant le résultat (voir description ci-dessous).

Nous commençons la reconnaissance

Pocketsphinx fournit une API pratique pour configurer et exécuter le processus de reconnaissance. Ce sont les cours SpechRecognizer et SpeechRecognizerSetup.
Voici à quoi ressemble la configuration et le lancement de la reconnaissance :

PhonMapper phonMapper = new PhonMapper(getAssets().open("dict/ru/hotwords")); Grammaire grammaire = new Grammaire(noms, phonMapper); grammar.addWords(mot clé); DataFiles dataFiles = new DataFiles(getPackageName(), "ru"); Fichier hmmDir = nouveau Fichier(dataFiles.getHmm()); Fichier dict = nouveau fichier (dataFiles.getDict()); Fichier jsgf = nouveau fichier (dataFiles.getJsgf ()); copyAssets(hmmDir); saveFile(jsgf, grammar.getJsgf()); saveFile(dict, grammar.getDict()); mRecognizer = SpeechRecognizerSetup.defaultSetup() .setAcousticModel(hmmDir) .setDictionary(dict) .setBoolean("-remove_noise", false) .setKeywordThreshold(1e-7f) .getRecognizer(); mRecognizer.addKeyphraseSearch(KWS_SEARCH, mot clé); mRecognizer.addGrammarSearch(COMMAND_SEARCH, jsgf);

Ici, nous copions d'abord tous les fichiers nécessaires sur le disque (Pocketpshinx nécessite un modèle acoustique, une grammaire et un dictionnaire de transcription sur disque). Ensuite, le moteur de reconnaissance lui-même est configuré. Les chemins d'accès aux fichiers modèle et dictionnaire sont spécifiés, ainsi que certains paramètres (seuil de sensibilité pour la phrase d'activation). Ensuite, le chemin vers le fichier de grammaire est configuré, ainsi que la phrase d'activation.

Comme vous pouvez le voir sur ce code, un moteur est configuré pour la reconnaissance de la grammaire et de la phrase d'activation à la fois. Pourquoi est-ce fait? Afin que nous puissions rapidement basculer entre ce que nous devons actuellement reconnaître. Voici à quoi ressemble le lancement du processus de reconnaissance de la phrase d'activation :

MRecognizer.startListening(KWS_SEARCH);
Et comme ça - la reconnaissance vocale selon une grammaire donnée :

MRecognizer.startListening(COMMAND_SEARCH, 3000);
Le deuxième argument (optionnel) est le nombre de millisecondes après lesquelles la reconnaissance se terminera automatiquement si personne ne dit rien.
Comme vous pouvez le voir, vous ne pouvez utiliser qu'un seul moteur pour résoudre les deux problèmes.

Comment obtenir un résultat de reconnaissance

Pour obtenir le résultat de la reconnaissance, vous devez également spécifier un écouteur d'événement qui implémente l'interface ReconnaissanceÉcouteur.
Il a plusieurs méthodes qui sont appelées par pochesphinx lorsque l'un des événements se produit :
  • onBeginningOfSpeech- le moteur a entendu un bruit, c'est peut-être un discours (ou peut-être pas)
  • onEndOfSpeech- son terminé
  • onPartialResult- il existe des résultats de reconnaissance intermédiaires. Pour une phrase d'activation, cela signifie que cela a fonctionné. Dispute Hypothèse
  • surRésultat- résultat final de la reconnaissance. Cette méthode sera appelée après l'appel de la méthode arrêtà Reconnaissance vocale. Dispute Hypothèse contient des données de reconnaissance (chaîne et score)

En implémentant les méthodes onPartialResult et onResult d'une manière ou d'une autre, vous pouvez modifier la logique de reconnaissance et obtenir le résultat final. Voici comment cela se passe pour notre application :

@Override public void onEndOfSpeech() ( Log.d(TAG, "onEndOfSpeech"); if (mRecognizer.getSearchName().equals(COMMAND_SEARCH)) ( mRecognizer.stop(); ) ) @Override public void onPartialResult(hypothèse d'hypothèse) ( if (hypothesis == null) return; String text = hypothèse.getHypstr(); if (KWS_SEARCH.equals(mRecognizer.getSearchName())) ( startRecognition(); ) else ( Log.d(TAG, text); ) ) @Override public void onResult(hypothèse d'hypothèse) ( mMicView.setBackgroundResource(R.drawable.background_big_mic); mHandler.removeCallbacks(mStopRecognitionCallback); String text = hypothèse != null ? hypothèse.getHypstr() : null; Log.d(TAG , "onResult " + text); if (COMMAND_SEARCH.equals(mRecognizer.getSearchName())) ( if (text != null) ( Toast.makeText(this, text, Toast.LENGTH_SHORT).show(); process(text ); ) mRecognizer.startListening(KWS_SEARCH); ) )

Lorsque nous recevons l'événement onEndOfSpeech, et si en même temps nous reconnaissons une commande à exécuter, alors nous devons arrêter la reconnaissance, après quoi onResult sera appelé immédiatement.
Dans onResult, vous devez vérifier ce qui vient d'être reconnu. S'il s'agit d'une commande, vous devez l'exécuter pour l'exécuter et basculer le moteur pour qu'il reconnaisse la phrase d'activation.
Dans onPartialResult, seule la reconnaissance de la phrase d'activation nous intéresse. Si nous le détectons, nous commençons immédiatement le processus de reconnaissance de la commande. Voici à quoi ça ressemble :

Privé synchronisé void startRecognition() ( if (mRecognizer == null || COMMAND_SEARCH.equals(mRecognizer.getSearchName())) return; mRecognizer.cancel(); new ToneGenerator(AudioManager.STREAM_MUSIC, ToneGenerator.MAX_VOLUME).startTone(ToneGenerator. TONE_CDMA_PIP, 200); post(400, new Runnable() ( @Override public void run() ( mMicView.setBackgroundResource(R.drawable.background_big_mic_green); mRecognizer.startListening(COMMAND_SEARCH, 3000); Log.d(TAG, "Écouter commandes"); post(4000, mStopRecognitionCallback); ) )); )
Ici, nous jouons d'abord un petit signal pour faire savoir à l'utilisateur que nous l'avons entendu et que nous sommes prêts pour sa commande. Pendant ce temps, le microphone doit être éteint. On lance donc la reconnaissance après un petit timeout (un peu plus long que la durée du signal, pour ne pas entendre son écho). Il démarre également un fil qui forcera la reconnaissance à s'arrêter si l'utilisateur parle trop longtemps. Dans ce cas, il est de 3 secondes.

Comment transformer une chaîne reconnue en commandes

Eh bien, tout est déjà spécifique à une application particulière. Dans le cas de l'exemple nu, nous extrayons simplement les noms d'appareils de la ligne, recherchons l'appareil souhaité et changeons son état à l'aide d'une requête HTTP au contrôleur de maison intelligente, ou signalons son état actuel (comme dans le cas de un thermostat). Cette logique peut être vue dans la classe Controller.

Comment synthétiser la parole

La synthèse vocale est l'opération inverse de la reconnaissance. Ici, au contraire, vous devez transformer une ligne de texte en discours afin que l'utilisateur puisse l'entendre.
Dans le cas du thermostat, nous devons faire dire à notre appareil Android la température actuelle. Utilisation de l'API Texte pour parler c'est assez simple à faire (merci à Google pour le beau TTS féminin pour la langue russe) :

Voix vide privée (texte de chaîne) (synchronisé (mSpeechQueue) ( ​​​​mRecognizer.stop(); mSpeechQueue.add(text); HashMap params = nouveau HashMap (2); params.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, UUID.randomUUID().toString()); params.put(TextToSpeech.Engine.KEY_PARAM_STREAM, String.valueOf(AudioManager.STREAM_MUSIC)); params.put(TextToSpeech.Engine.KEY_FEATURE_NETWORK_SYNTHESIS, "true"); mTextToSpeech.speak(text, TextToSpeech.QUEUE_ADD, params); ) )

Je dirai probablement que c'est banal, mais avant le processus de synthèse, il est nécessaire de désactiver la reconnaissance. Sur certains appareils (par exemple, tous les Samsung), il est généralement impossible d'écouter un microphone et de synthétiser quelque chose en même temps.
La fin de la synthèse vocale (c'est-à-dire la fin du processus de prononciation du texte par le synthétiseur) peut être suivie chez l'auditeur :

Private final TextToSpeech.OnUtteranceCompletedListener mUtteranceCompletedListener = new TextToSpeech.OnUtteranceCompletedListener() ( @Override public void onUtteranceCompleted(String utteranceId) (synchronisé (mSpeechQueue) ( ​​​​mSpeechQueue.poll(); if (mSpeechQueue.isEmpty()) ( mRecognizer.startListening( KWS_SEARCH) ; ) ) ) );

Dans celui-ci, nous vérifions simplement s'il y a autre chose dans la file d'attente de synthèse et activons la reconnaissance de la phrase d'activation s'il n'y a rien d'autre.

Et c'est tout ?

Oui! Comme vous pouvez le constater, il n'est pas difficile de reconnaître rapidement et avec précision la parole directement sur l'appareil, grâce à la présence de projets aussi merveilleux que Pocketsphinx. Il fournit une API très pratique qui peut être utilisée pour résoudre les problèmes liés à la reconnaissance des commandes vocales.

Dans cet exemple, nous avons vissé la reconnaissance à une tâche tout à fait correcte - commande vocale des appareils domestiques intelligents. Grâce à la reconnaissance locale, nous avons atteint une vitesse très élevée et minimisé les erreurs.
Il est clair que le même code peut être utilisé pour d'autres tâches liées à la voix. Il n'est pas nécessaire que ce soit une maison intelligente. Ajouter des balises