2012-08-12 67 views
0

我的工作/研究用于教育目的的一个项目的想法,并希望做有关语音识别的,没有什么太大的项目只是一个介绍,让我开始在外地。基本上,项目和算法会接受(.wav)文件的输入,然后确定说话的人是说“是”还是说“不”。我正在寻找使用线性预测编码。语音识别 - 线性预测编码

基本上,在我的脑海,我想下面的算法:

  1. 阅读在.WAV(原始数据)为载体
  2. 斯普利特矢量分成大小相同的块
  3. 处理特定特性
  4. 每块查找其模型是最有可能匹配到其生产的手机的串词。

然后我想使用相似性度量,例如相关来找到正确的手机。

所以,基本上,数据文件被读入后,并分割成块。应该/将包含类似:

rawdata = 

[0] => 'Y', 
[1] => 'E', 
[2] => 'S' 

或将要包含然后可以进行比较的频率结果与电话。

我的问题是,这是否看起来像一个好的算法来工作过解决问题..

我的下一个问题:

当我尝试在一个.wav文件读入内存中,我得到(类)下面的结果..

20 30 10 30 40 50 .. 20 20 .. 10 20 .. 60 40 
10 20 30 40 50 60 ... .. . . . . 

他们都是整数值,所以,一旦我已经采取了所有的报头信息。该数据的其余部分是什么,我需要转换成正确的媒体然后这是数据..?我有点困惑。

希望有人能帮助我,而且,我已经正确写入问题出来了。谢谢。

+0

为什么我得到负面反馈?!?那怎么不清楚?上帝 – Phorce 2012-08-12 22:26:11

+0

因为你的问题过于宽泛。 – orlp 2012-08-12 22:28:46

+0

ok ....我放弃 – Phorce 2012-08-12 22:39:32

回答

0

如果你wan't我看来,不,这不是一个好的算法。

所有的人先用不同的速度的话,就发音不同速度的字符了。你不能随意切分你的输入数据。

其次,要得到一些不错的成绩,你需要减少输入的噪音大幅下降。你需要专注于人类语音使用的频率。然后,你需要首先识别元音,然后尝试猜测这个词,然后你需要一些真实的数据。你可能不会得到任何可用的。

回答你关于waw文件的问题,那是头文件+数据,我不知道头文件,但是因为waw是一个古老的格式,所以它不会很难得到一些文档。

数据部分是整数值的阵列,在一个给定时刻的声音的强度。对于44 kHz waw文件,每秒测量44 000次,并存储。它只是原始数据,根本没有压缩(曾经有人怀疑为什么waw文件非常庞大?)除了头部,它告诉你采样率和整数类型(通常是16位)等等。

您可以分析这些庞大的数据以获取有关使用频率的一些信息,但在开始之前,您应该真正研究声音和一切的数学。哎呀,即使我不确定我能写些什么,大约一半的时间能够成功识别3个字母的单词。

+0

嘿,谢谢你的回复。我发现将样本分成了相同的部分:http://www.cs.dartmouth。 edu /〜dwagn/aiproj/speech.html他的算法/实现似乎工作..我只是想要做不同的事情,并使用线性预测编码over zerocrossing .. – Phorce 2012-08-12 23:00:46