7 votes

Reconnaissance vocale en C#

Je suis en train de réaliser un système de contrôle de maison intelligente, et j'ai un petit problème. J'avais l'intention d'utiliser Cosmos comme système de base, et d'y ajouter les bibliothèques d'espace de noms nécessaires, mais comme l'espace de noms habituel System.Speech.Recognition dépend trop de l'API Windows Speech, je dois oublier de l'utiliser.

Ma question est donc la suivante : existe-t-il une bibliothèque (gratuite si possible) de reconnaissance vocale et/ou de synthèse vocale pour C#, qui présente les caractéristiques suivantes :

  • prise en charge de l'expression orale en plusieurs langues
  • extraction du contenu textuel d'un échantillon de parole
  • synthèse de la parole avec un modèle de parole (voix) sélectionnable (ou écrit par l'utilisateur)

Une bibliothèque d'usage général, non dépendante de Windows, serait la meilleure, et bien sûr, si elle était gratuite aussi.

2voto

icemanind Points 13724

Regardez ce projet : http://cmusphinx.sourceforge.net/

C'est un projet de reconnaissance vocale open source. Il peut être entraîné avec n'importe quelle langue et, comme il s'agit d'un logiciel libre, vous pouvez le modifier pour l'adapter à vos besoins ou l'étendre.

2voto

Ian Mercer Points 19271

Voxeo propose des comptes de développeurs que vous pourriez utiliser pour développer un système domotique alimenté par la parole. Je l'ai interfacé avec mon propre système de domotique pour un petit sous-ensemble de commandes que ma maison comprend et ça marche très bien. Vous devrez apprendre un peu de VoiceXML pour l'utiliser.

SAPI fonctionne bien pour la synthèse vocale ; j'utilise SAPI dans mon système pour les messages vocaux dans la maison, comme les prévisions météorologiques qui sont diffusées par les haut-parleurs le matin lorsque vous entrez dans la salle de bains. Si Cosmos ne vous permet pas d'inclure toutes les DLL dont vous avez besoin, peut-être pourriez-vous créer un service séparé utilisant SAPI, puis utiliser WCF (ou autre) pour communiquer entre eux ?

Pour le problème connexe de la compréhension du langage naturel sous une forme typée, j'ai développé une Moteur NLP en C# que j'espère pouvoir mettre à disposition de manière non commerciale à un moment donné dans le futur.

L'extraction de texte à partir de la parole sans spécifier de grammaire au préalable est un problème très difficile et sera source d'erreurs. Même si vous pouviez résoudre ce problème, vous auriez toujours le problème d'essayer de comprendre ce qu'ils ont dit en utilisant la PNL. La construction d'une grammaire qui guide la machine de reconnaissance vers les types de phrases que vous voulez reconnaître (comme VoiceXML le fait) est susceptible d'atteindre une précision beaucoup plus élevée.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X