2012-03-04 115 views
0

我想从一个音频文件(可能记录在大胆)提取确切的二进制执行的二进制表示。我希望这能够提取这些表示来识别语音和声音,即基本的语音识别软件。提取音频文件

音频文件也可能是mp3或.wav。请帮忙

EDIT- 我想获取音频的波形不是作为图形,而是作为二进制表示,以便我可以将语音转换为文本。

+1

你所说的“提取音频文件的准确的二进制执行”呢?如果你的意思是文件格式的细节,你可以看看这个WAV文件:https://ccrma.stanford.edu/courses/422/projects/WaveFormat/ – cyco130 2012-03-04 19:48:43

+1

所有文件默认为二进制文件。如果你的意思是将音频波形作为一个数组(浮点数或二进制字)提取并附带必要的元数据来回放,那么你应该编辑你的答案,如采样率。 – ninjagecko 2012-03-04 19:53:19

+1

阅读WAV文件的格式。 MP3文件比较复杂,你可能不想马上与这些人混淆--WAV文件会让你“咬紧牙关”。 – 2012-03-06 02:34:55

回答

1

一个基本的WAV文件由一个头(我想大约60字节长),然后将实际的数据。

的数据由整数集。为每个“样本”生成一组整数,其可以是每秒8000次或每秒44000次或某个其他采样率。

单个整数集(表示单个样品)由一个整数针对每个信道,其可以在理论上是任何数目,但通常是1(单声道)或2(立体声)的。每个单独的整数可以是1个,2个,3个或4个字节长。

各个整数表示该信道的在那个特定时刻的声音电平。如果所表示的声音是正弦波,该整数的值将是V * sin(K * t),其中V是卷,K是一些恒定的,并且是t当前时间。请注意,整数是有符号的,并且“声级”在任何特定时刻都可以是负的或正的(一般情况下一般会在一半时间内为负)。 采样率,通道数量和单个通道值的大小都在头部的字段中编码(以及其他几条信息)。

通常,为了提取信号的频率,您应用Fast Fourier Transform (FFT)将二进制声音数据从“时域”转换为“频域”。这通常会在每秒约5至50次之间完成,具体取决于采样率和其他因素。 (有几种可用的开源FFT库。)但是,语音识别也采用了许多其他算法。

+0

嗨,非常感谢。基本上,我想设计一个基本的语音识别软件。你可以请帮助如何去解决它。即使在你的解释后,我有点迷茫。我想用隐马尔可夫模型来设计软件 – SKC 2012-03-08 13:54:06

+0

@SKC - 如果你想设计语音识别软件,你将不得不做很多研究。我猜测,每周工作10-20个小时的兼职工作需要一年的时间才能完成从零开始的各种工作。 – 2012-03-08 16:16:15

+0

好的。但我正在寻找一些非常基本的东西。也许控制媒体播放器。像玩耍暂停等作为一个小型项目。 – SKC 2012-03-08 19:09:57