Question:
Construire la reconnaissance vocale pour une nouvelle langue à partir de zéro
Monolord's Knight
2015-02-12 16:26:28 UTC
view on stackexchange narkive permalink

Je connais C ++ et PHP, je connais la POO et les usages des technologies de base de données. Je dois créer un logiciel de reconnaissance vocale pour ma propre nation, dont les symboles sont uniques mais pris en charge par UTF-8. et jusqu'à présent aucun éditeur de logiciels n'a pris l'initiative de le faire. J'ai besoin de savoir quel langage de programmation sera parfait et quels cours devrais-je suivre pour apprendre le processus. Je n'aime pas traiter la langue via SAPI ou intégrer des technologies de reconnaissance car elles sont basées sur l'anglais (problème ici, la grammaire et la syntaxe sont si différentes - elles sont basées sur l'indo-européen). Et je veux le faire à partir de zéro (niveau machine / traitement de la voix - je veux que le son traité directement soit analysé en mes symboles (pas de transformation en anglais)). J'espère que vous comprendrez parce que j'attends cela avec impatience car c'est l'exigence de ma nation. Il ne s'agit pas de promouvoir un langage de programmation ou un cours. J'ai juste besoin de le savoir maintenant. (si ma question ne rentre pas ici, s'il vous plaît où elle correspond le plus et soyez assez gentil pour passer à ce forum. J'ai eu une expérience amère à ce sujet)

avoir une base de données solide sur la façon de prononcer les mots est nécessaire. C'est ce qu'on appelle le moteur TTS. La dernière entreprise pour laquelle j'ai travaillé, nous utilisons pour créer notre propre TTS car certaines langues / dialectes n'étaient pas disponibles sur le marché. Vous avez besoin de 2 interprètes, masculin et féminin de ton générique et il y a une liste spécifique de mots qu'ils doivent lire et vous les enregistrez. Cela générera la plupart du temps tous les sons possibles dont vous avez besoin. La plupart des langues nécessiteront entre 600 000 et 700 000 mots pour être enregistrés.
Merci @Franck,. Notre communauté est prête à contribuer à ces sons, peu importe le nombre de fois que cela nécessite. Au fait, quelle technologie votre dernière entreprise a-t-elle utilisée pour développer le système?
À ma connaissance, il n'y avait pas de codage impliqué pour la reconnaissance et la création de bases de données. Nous avions une salle d'enregistrement professionnelle où les femmes ont enregistré ces 700 000 mots pendant environ 10 mois à 1 an. Au final, pour faire de la reconnaissance vocale, nous avions un serveur TTS assez cher. Si je me souviens, c'est dans les 6 chiffres et c'est tout un système d'exploitation en soi. Nous l'appelions avec C #, asp classic, asp.net, VXML et un système téléphonique matériel.
merci pour cette info.
Un moteur TTS (Text to speech) est l'inverse de la reconnaissance vocale, n'est-ce pas? TTS permet à l'ordinateur de produire de la parole plutôt que de la comprendre.
Je ne sais pas comment ils se débrouillent pour la reconnaissance vocale, mais Python et Java ont des boîtes à outils NLP. En termes de vitesse, optez pour C ++
Si vous nommez votre langue, il serait plus facile de vous donner des conseils plus ciblés.
Deux réponses:
Nikolay Shmyrev
2015-03-16 04:50:20 UTC
view on stackexchange narkive permalink

L'ajout de la prise en charge d'une nouvelle langue est assez simple, il vous suffit en fait de suivre la documentation et vous pouvez aller droit au but. Vous devez également avoir une connaissance du langage de script qui vous aidera à réduire le travail manuel sur certaines étapes. L'expérience de la ligne de commande Unix est un gros plus, même si vous pouvez également travailler sous Windows.

1) Lisez Introduction pour vous familiariser avec les concepts de la reconnaissance vocale - fonctionnalités, modèles acoustiques, langage modèles, etc.

2) Essayez CMUSphinx avec le modèle anglais américain pour comprendre comment les choses fonctionnent. Essayez de vous entraîner avec un exemple de base de données AN4 en anglais américain en suivant le tutoriel de formation sur les modèles acoustiques.

3) En savoir plus sur votre langue sur Wikipedia.

4) Collectez un ensemble d'enregistrements transcrits pour votre langue - podcasts, émissions de radio, livres audio. Vous pouvez également enregistrer vous-même un montant initial. Il vous faut environ 20 heures de données transcrites pour commencer, 100 heures pour créer un bon modèle.

5) Sur la base des données que vous avez collectées, créez une liste de mots et un dictionnaire phonétique. La plupart des dictionnaires phonétiques peuvent être créés avec des règles simples avec un petit script dans votre langage de script préféré comme Python. Voir Générer un dictionnaire pour plus de détails.

6) Segmentez l'audio en phrases courtes manuellement ou avec l'alignement sphinx4, créez une base de données avec les fichiers requis comme décrit dans le didacticiel de formation.

7) Intégrez un nouveau modèle dans votre application et concevez une collection de données pour améliorer votre modèle.

Si vous avez des questions, n'hésitez pas à les poser sur CMU Sphinx / Forums.

Matthew Lock
2015-02-12 17:19:37 UTC
view on stackexchange narkive permalink

Vérifiez si des systèmes de reconnaissance vocale existants peuvent ajouter une langue personnalisée. Cela vous fera économiser des années d'efforts. Même dans ce cas, la collecte d'une grande base de données des mots et de la grammaire de votre langue sera immense.

Voici quelques pistes pour vous aider à démarrer:

Sinon, vous utiliserez probablement C / C ++ pour traiter l'audio entrant assez rapidement. Vous pouvez en savoir plus sur les principes de la reconnaissance vocale ici: http://en.wikipedia.org/wiki/Speech_recognition

Merci pour l'info. Veuillez me faire part de toute mise à jour que vous recevez. J'essaye ceux-ci.
En fait, une seule personne peut le faire en un mois environ, seule la passion est requise. Ce n'est pas si complexe et C / C ++ n'est pas nécessaire.
@NikolayShmyrev génial!


Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...