Une question similaire a été posée il y a quelque temps sur Joel on Software. Vous pouvez utiliser l'outil Reconnaissance vocale pour le faire... avec quelques limitations. Ajoutez System.Speech (qui devrait se trouver dans le GAC) à votre projet. Voici un exemple de code pour une application WinForms :
public partial class Form1 : Form
{
SpeechRecognizer rec = new SpeechRecognizer();
public Form1()
{
InitializeComponent();
rec.SpeechRecognized += rec_SpeechRecognized;
}
void rec_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
lblLetter.Text = e.Result.Text;
}
void Form1_Load(object sender, EventArgs e)
{
var c = new Choices();
for (var i = 0; i <= 100; i++)
c.Add(i.ToString());
var gb = new GrammarBuilder(c);
var g = new Grammar(gb);
rec.LoadGrammar(g);
rec.Enabled = true;
}
Il reconnaît les nombres de 1 à 100 et affiche le nombre obtenu sur le formulaire. Vous aurez besoin d'un formulaire avec une étiquette appelée lblLetter.
System.Speech ne fonctionne qu'avec une liste prédéfinie de mots ou de phrases ; ce n'est pas exactement NaturallySpeaking, que ce soit en termes de polyvalence ou de qualité de reconnaissance. Mais vous n'avez pas besoin de l'entraîner à la voix de l'utilisateur, et si vous n'avez que quelques mots différents que l'utilisateur peut dire, il fonctionne raisonnablement bien. Et c'est gratuit ! (si vous avez Visual Studio)
Il ne fonctionnera pas bien si vous utilisez des phrases très courtes ; j'ai créé un programme pour que mon enfant dise les lettres de l'alphabet et les voie à l'écran, mais il ne fonctionne pas très bien car de nombreuses lettres se ressemblent (surtout dans la bouche d'un enfant de quatre ans).
Pour ce qui est des options plus souples, il y a NaturallySpeaking, déjà mentionné, qui dispose d'un kit de développement logiciel (SDK). Mais il faut contacter le service commercial pour y avoir accès, et aucun prix n'est indiqué, ce qui donne l'impression d'un "Combien ça coûte ? Et bien, combien avez-vous ?". Il ne semble pas y avoir d'option "télécharger et jouer avec" :(
Quant à la synthèse vocale, System.Speech.Synthesis fait ceci. C'est même plus facile que la reconnaissance vocale. J'ai écrit un petit programme qui me permet de taper, d'appuyer sur Entrée et de lire le texte à haute voix. Mon fils de quatre ans est fasciné par ce programme :) ("Papa, je veux parler à da wobot.")
0 votes
Veuillez préciser... Que voulez-vous dire par là ? Un moteur de reconnaissance ? Une structure pour l'application ? Si vous devez même essayer de le faire ?
2 votes
Je cherche surtout un moteur à utiliser. Je dois pouvoir dire à mes responsables si l'idée est réalisable ou non. J'ai déjà une idée approximative de la façon de structurer l'application autour du moteur, tout ce dont j'ai besoin c'est de brancher le moteur.