Salut je suis en train de développer un programme qui est censé reconnaître ma voix, puis écrire ce qu'il entend, mais quand je lance le code et je clique sur le buttun pour démarrer le recEngine, il dit que "Une exception non gérée de type 'System.NullReferenceException' s'est produite dans System.Speech.dll", et dans les astuces, il est possible que la variable était null avant. Mais j'ai réglé la variable avant ou je fais quelque chose de mal.NullReferenceException lors du démarrage de Recognizer avec RecognizeAsync
Voici le code
using System;
using System.Windows.Forms;
using System.Speech.Recognition;
namespace Voice_Recognition
{
public partial class Form1 : Form
{
SpeechRecognitionEngine recEngine = new SpeechRecognitionEngine();
public Form1()
{
InitializeComponent();
}
private void BtnEnable_Click(object sender, EventArgs e)
{
Ceci est la ligne où l'erreur shos vers le haut.
recEngine.RecognizeAsync(RecognizeMode.Multiple);
// BtnEnable.Enabled = false;
BtnDisable.Enabled = true;
}
private void Form1_Load(object sender, EventArgs e)
{
Choices commands = new Choices();
commands.Add(new string[] { "say hello", "print my name" });
GrammarBuilder Gbuilder = new GrammarBuilder();
Gbuilder.Append(commands);
Grammar grammar = new Grammar(Gbuilder);
recEngine.LoadGrammarAsync(grammar);
recEngine.SetInputToDefaultAudioDevice();
recEngine.SpeechRecognized += recEngine_SpeechRecognized;
}
private void recEngine_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
switch (e.Result.Text)
{
case "say hello":
Log.Text += "\nHello";
break;
case "print my name":
Log.Text += "\nMyname";
break;
}
}
private void BtnDisable_Click(object sender, EventArgs e)
{
BtnEnable.Enabled = true;
BtnDisable.Enabled = false;
recEngine.RecognizeAsyncStop();
}
}
}
Dans le menu des conseils, il dit:
-Check pour déterminer si l'objet était nul avant d'appeler la méthode
-Utiliser le mot clé « nouveau » pour créer une instance d'objet
Merci à l'avance