从wav文件c#中的语音到文本
Posted
技术标签:
【中文标题】从wav文件c#中的语音到文本【英文标题】:speech to text from wav file c# 【发布时间】:2014-09-18 16:33:07 【问题描述】:我有一些使用整数的 wav 文件。我需要检测这些单独的整数并转换为字符串。您可以从以下位置下载 mp3 文件: here
使用Microsoft SpeechRecognitionEngine
,我几乎无法从任何 wav 文件中检测到整数。
这是 SRE 设置:
sre.SetInputToWaveFile("D:\\Speeches\\Best3.wav");
sre.BabbleTimeout = new TimeSpan(Int32.MaxValue);
sre.InitialSilenceTimeout = new TimeSpan(Int32.MaxValue);
sre.EndSilenceTimeout = new TimeSpan(100000000);
sre.EndSilenceTimeoutAmbiguous = new TimeSpan(100000000);
【问题讨论】:
【参考方案1】:我认为你的一些超时值是极端的,但我能够得到各种 wav
文件来解析这样的代码:
using System;
using System.Speech.Recognition;
namespace SR
class Program
static void Main(string[] args)
using (var sre = new SpeechRecognitionEngine())
sre.SetInputToWaveFile(@"D:\test.wav");
sre.LoadGrammar(new DictationGrammar());
sre.BabbleTimeout = new TimeSpan(Int32.MaxValue);
sre.InitialSilenceTimeout = new TimeSpan(Int32.MaxValue);
sre.EndSilenceTimeout = new TimeSpan(100000000);
sre.EndSilenceTimeoutAmbiguous = new TimeSpan(100000000);
var result = sre.Recognize();
Console.WriteLine(result.Text);
Console.ReadLine();
您需要致电LoadGrammar()
。可能有比DictationGrammar
更好的选择,但它适用于我的示例。
您还需要在result
中检查null
,因为如果识别失败了。
【讨论】:
您可以加载仅包含整数 0-9 或将包含的任何范围的自定义语法。那么只有那些数字将被识别,而不是任何非整数(如果它们存在)。语法可能非常棘手,但我这样做是为了自定义语法,以根据说出行号打开列表中的项目,因此可以完成 @pinkfloydx33 你能提供你提到的语法吗,只适用于数字?以上是关于从wav文件c#中的语音到文本的主要内容,如果未能解决你的问题,请参考以下文章