我一直在忙着C# voice to text这很容易。然而,我试图弄清楚如何从我所做的预设命令中找出坦率的句子。
目前,我可以通过收听关键字来做各种事情:
SpeechRecognitionEngine _recognizer = new SpeechRecognitionEngine();
public Form1()
{
_recognizer.SetInputToDefaultAudioDevice();
_recognizer.LoadGrammar(new Grammar(new GrammarBuilder(new Choices(File.ReadAllLines(@"Commands.txt")))));
_recognizer.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(_recognizer_SpeechRecognized);
_recognizer.RecognizeAsync(RecognizeMode.Multiple);
}
void _recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
//magic happens here
}
如前所述,这很有效。我试图使用与语音识别相关的一些其他功能,例如SpeechHypothesized,但它只会根据加载到程序中的语法猜测单词,这些语法是预设命令。这是有道理的。但是,如果我将完整的库加载到语法中,那么我的命令将不那么准确。
我正在尝试设置程序,所以当说出一个关键字(其中一个命令)时,它会试着转录一个实际的句子。
答案 0 :(得分:0)
我一直在寻找“言语听写”。我没有将命令列表加载到语法中,而是使用内置于c#中的DictationGrammar()
来听取完整的句子。
SpeechRecognitionEngine recognitionEngine recognitionEngine = new SpeechRecognitionEngine();
recognitionEngine.SetInputToDefaultAudioDevice();
recognitionEngine.LoadGrammar(new DictationGrammar());
RecognitionResult result = recognitionEngine.Recognize(new TimeSpan(0, 0, 20));
foreach (RecognizedWordUnit word in result.Words)
{
Console.Write(“{0} “, word.Text);
}
虽然即使我使用word.Confidence
这个方法似乎也不准确,但似乎只能猜测正确的单词不到一半的时间。
可能会尝试使用Google Voice API发送flac文件进行后期处理。