怎么将一个WAV 音乐文件数字化?
现在想将WAV 音乐文件变成数字,然后做一个波形表来读取!卡住了! wav文件本来就是数字的。可以网上搜一下wav文件的格式 wy2000 发表于 2012-8-15 10:52 static/image/common/back.gifwav文件本来就是数字的。可以网上搜一下wav文件的格式
怎么将它提取出来? 看看文档吧 楼上,谢过先{:handshake:} wav是pcm的,完全没有压缩的数据吧,本来就是数字的,按照四楼给的对照读取就可以了!~ 如果是想将声音信号录制到matlab里面,则可以使用以下的函数。
R = audiorecorder( 44100, 16 ,2 ) ;
%创建一个保存音频信息的对象,它包含采样率,时间和录制的音频信息等等。44100表示采样为44100Hz(可改为8000, 11025, 22050等,此数值越大,录入的声音质量越好,相应需要的存储空间越大),16为用16bits存储,2为两通道即立体声(也可以改为1即单声道)。
record(R);
%开始录制,此时对着麦克风说话即可。
pause(R);
%暂停录制。
play(R)
%播放录制的声音。
resume(R);
%继续录制.
stop(R);
%停止录制
myspeech = getaudiodata(R);
%得到以n*2列数字矩阵存储的刚录制的音频信号。
%对这个矩阵你就可以用各种滤波器进行处理,或者把它和别的音频混音等等。你也可以画出它的波形(如果时间较长画波形可能会花点时间)。
plot(myspeech)
%画出波形
%如果你想保存可以使用
wavwrite(myspeech,44100,16,'myspeech');
%myspeech表示要存入的波形矩阵,44100表采样率,16 为以16bits存储,'myspeech'为存储的文件名。
%matlab有极其丰富的音频处理滤波功,此处介绍最基本的录入、播放和保存操作,希望能对你有所帮助
MATLAB可以,上次操作过,类似上面的介绍,很方便的。
上次是将录音的文件或者歌曲,用matlab读取WAV数据,然后保存到固定常量中,然后放到FLASH,通过ARM LPC17XX读取,放到DAC中放,
中间需要考虑到采样时间间隔,用到定时器,可以放出歌曲或者录音。 Python的脚本俺自己用的 写的不好。Python2.7版的。# -*- coding: GBK -*-
"""
Created on Wed Jul 25 16:33:08 2012
提取8位数据宽度wav文件的音频流数据
@author: Administrator
"""
import wave #python内置
import os
def walkdir(dirname):
try:
ls=os.listdir(dirname)
except:
print 'access deny'
else:
pic_file=open('c:/pic_file.bin','w')
for l in ls:
temp=os.path.join(dirname,l)
w=l[:-3]+'bin'
newfilename=os.path.join(dirname,w)
fi=wave.open(temp,'rb')
new_data=fi.readframes(fi.getnframes())
fo=open(newfilename,'wb')
fo.write(new_data)
fo.close
fi.close
if(os.path.isdir(temp)):
walkdir(temp)
else:
print temp
pic_file.close()
if __name__=="__main__":
#b=raw_input("请输出输出文件的目录和文件名:")
#r=raw_input("请输出要合并的目录:")
walkdir('e:/PROJECT/screw_oil_expeller/普通话8位') #扫描的目录
页:
[1]