我已经从wav文件中构建了一个语音识别解决方案,并且为了唇形同步应用打破了单词,我需要的语音识别系统是单词+它的时间与wav文件。我需要得到每个单词的时间,甚至字符(字母)任何类型的时间都可以工作,它不能在" SpeechRecognizedEventArgs
"事件我试过" SpeechDetected
"它返回检测的开始,可能会起作用。我试过了:
static void recognizer_SpeechDetected(object sender, SpeechDetectedEventArgs e)
{
Console.WriteLine(" Speech detected at AudioPosition = {0}", e.AudioPosition);
// TimeSpan interval = new TimeSpan(0, 0, 01);
// Console.WriteLine(interval.ToString())
}
我在音频开始前只得到一些毫秒。
在识别事件中的AudioPosition为我提供了wav文件的全部时间。
我想到的是我需要类似循环"foreach"
之类的东西才能获得时机,如果没有其他方式来获得带有识别事件的单词,或者第二个选项就是玩wav文件如2秒,识别一个字或一半,然后完成。这完全是为了获得某种时机。
也许所有这些都是复杂的想法,因为我不知道C#。
答案 0 :(得分:-1)
如果您不想自己编写整个代码,该公司会提供符合您所描述的产品:
如果你想制作自己的解决方案,那么一个想法可能就是在不同的点观察音频的音量。音量下降可能表示单词之间存在中断。