我已经从 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())
}
我在音频开始前只有几毫秒。
recoginzed 事件中的 AudioPosition 为我提供了 wav 文件的完整时间。
我在想什么 如果没有其他方法可以通过文字识别事件来获取时间,或者第二个选项是玩wav 文件,如 2 秒,识别一个或一半的单词,然后完成。这一切都是为了获得某种时机。
也许所有这些都是复杂的想法,因为我不懂 C#。
最佳答案
如果您不想自己编写所有代码,这家公司提供的产品可以满足您的描述:
如果您确实想制定自己的解决方案,那么一种想法可能是查看不同点的音频音量。音量下降可能表示单词之间有中断。
关于来自wav文件的C#语音识别,我需要获取每个单词的时间 - lipsync,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13340430/