justmakeits 发表于 2012-8-15 10:30:24

怎么将一个WAV 音乐文件数字化?

现在想将WAV 音乐文件变成数字,然后做一个波形表来读取!卡住了!

wy2000 发表于 2012-8-15 10:52:45

wav文件本来就是数字的。可以网上搜一下wav文件的格式

justmakeits 发表于 2012-8-15 11:09:30

wy2000 发表于 2012-8-15 10:52 static/image/common/back.gif
wav文件本来就是数字的。可以网上搜一下wav文件的格式

怎么将它提取出来?

wy2000 发表于 2012-8-15 11:25:04

看看文档吧

dudududu 发表于 2012-8-15 11:46:42

楼上,谢过先{:handshake:}

gnep 发表于 2012-8-16 17:56:23

wav是pcm的,完全没有压缩的数据吧,本来就是数字的,按照四楼给的对照读取就可以了!~

xiaabc 发表于 2012-8-19 21:53:32

如果是想将声音信号录制到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中放,
中间需要考虑到采样时间间隔,用到定时器,可以放出歌曲或者录音。

kebaojun305 发表于 2012-8-20 11:13:04

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]
查看完整版本: 怎么将一个WAV 音乐文件数字化?