2012-06-24 99 views
1

我有一个wav文件拉在MATLAB中,我可以看到它的采样率。我需要做的就是改变这个1号码。文件中的其他内容将保持不变。 (由此产生的声音将以不同的速度播放,但会有相同的采样数据阵列)。我怎样才能进入一个wav文件来改变采样率?

我需要这样做的原因是因为当我告诉MATLAB打开其他东西时采样的东西时,MATLAB似乎吓坏了比8k。我所需要的是编辑文件,所以采样率根本就不重要,因为我完成后我将把它放回到wav文件中。因此,我需要能够改变存储采样率的wav文件中的值,或者让MATLAB将其更喜欢的采样率从8k更改为我的文件记录的采样率。

+0

看到这个(几乎相同)的问题: http://avp.stackexchange.com/questions/4260/changing-a-wavs-file-format – mola

回答

0

还有就是SOX工具,它可以帮助你在这方面,它配备几乎任意平台上 - http://sox.sourceforge.net

还有libsndrate,libsamplerate,libsndfile和其他人,可能有可执行文件了。

3

如果你只是想改变采样频率,这里是代码,但它会扭曲原始的wav文件。如果你降低采样频率,那么节拍和音乐会非常缓慢。

Code: 
    [y, fs, nbits]=wavread('stego_lab'); 
    fs2=11025; 
    wavwrite(y,fs2,nbits,'stego2_lab.wav'); 
    sound(y,fs2,nbits) 

你可以听到它,但样本将保持不变。 希望它有帮助。

-1

尝试这种解决方案

[x,fs] = wavread('infile.wav'); 
<br>[p,q] = rat(16000/fs) % to convert to 16k sample rate</br> 
<br>y = resample(x,p,q); % signal package require 

wavwrite(x,16000,'outfile.wav');