语音识别所有词典-关闭窗体
本文关键字:窗体 语音识别 | 更新日期: 2023-09-27 18:27:45
我正在尝试制作像JARVIS这样的语音识别程序,但现在已经堆叠起来了。我想设置写入模式。这个模式写所有我说的话。
首先,我认为我可以使用txt文件的所有图书馆。我把我的全txt字典发送到Array,我把String Array定义为语法文件,但我不能把它只用于单词的句子。
而txt发送到字符串数组pc堆栈。我无法解释自己,但我想使用语音到文本库,我想使用所有语法。当我打招呼时,你是如何为我写的,它也可以写。我的代码
这是我的IO。它适用于所有字典中的单词
private ArrayList IoS(int x)
{
ArrayList returner = new ArrayList();
string path = "";
string commandDict = @"../../documents/dictionary_C.txt";
string fullDict = @"../../documents/dictionary_F.txt";
if (x == 0)
path = commandDict;
else
if (x == 1)
path = fullDict;
if (IoChecker(path) == false)
Console.Error.WriteLine("ERROR");
using (StreamReader sr = File.OpenText(path))
{
string checker = "";
while ((checker = sr.ReadLine()) != null)
{
returner.Add(checker);
}
}
return returner;
}
我的语音识别语法代码
private void panel_Load(object sender, EventArgs e)
{
int ListC = 0;
IO io = new IO();
string[] list = new string[io.IoSCaller(ListC).Count];
Choices sList = new Choices();
for (int i = 0; i < io.IoSCaller(ListC).Count; i++)
{
list[i] = (io.IoSCaller(ListC)[i].ToString());
}
sList.Add(list);
Grammar gr = new Grammar(new GrammarBuilder(sList));
try
{
sRecognize.RequestRecognizerUpdate();
sRecognize.LoadGrammar(gr);
sRecognize.SpeechRecognized += sRecognize_SpeechRecognized;
sRecognize.SetInputToDefaultAudioDevice();
sRecognize.RecognizeAsync(RecognizeMode.Multiple);
sRecognize.Recognize();
}
catch
{
return;
}
}
它对单词有效,但对句子无效,我无法保存所有句子。我能做些什么?我想使用所有的字典和串行输入,而不是逐字逐句。
我的第二个问题我想关闭所有程序,但无法关闭我的程序。我正在使用这些代码,但没有一个关闭我的程序。我无法关闭代码中的程序,请帮帮我。
System.Environment.Exit(0);
Environment.Exit(0);
Application.Exit();
System.Diagnostics.Process[] procs = System.Diagnostics.Process.GetProcessesByName("vshost32");
foreach (System.Diagnostics.Process proc in procs)
{
proc.CloseMainWindow();
}
我是C#编码的新手。谢谢你所做的一切。
与其在语法中加载大量字符串以使其识别许多单词,不如使用DictationGrammar
。这是一种能识别你说的每一句话的语法。因此,不要使用大量字符串构建语法,而是使用new DictationGrammar()
作为LoadGrammar
方法的参数。此外,在呼叫RecognizeAsync()
之后,不必再呼叫Recognize()
。
sRecognize.RequestRecognizerUpdate();
sRecognize.LoadGrammar(new DictationGrammar());
sRecognize.SpeechRecognized += sRecognize_SpeechRecognized;
sRecognize.SetInputToDefaultAudioDevice();
sRecognize.RecognizeAsync(RecognizeMode.Multiple);
我的第二个问题我想关闭所有程序,但我无法关闭我的程序。
为此,我需要一些额外的信息。它是控制台应用程序、Windows窗体应用程序还是WPF应用程序?