Matlab 如何进入wav文件以更改采样率?

Matlab 如何进入wav文件以更改采样率?,matlab,signal-processing,wav,audio-processing,sample-rate,Matlab,Signal Processing,Wav,Audio Processing,Sample Rate,我有一个wav文件拉在MATLAB中,我可以看到它的采样率。我要做的就是换这个1号。文件中的所有其他内容都将保持未归档状态。(产生的声音将以不同的速度播放,但具有相同的采样数据阵列。) 我之所以需要这样做,是因为当我告诉MATLAB打开8k以外的任何采样值时,MATLAB似乎会发疯。我所需要的只是编辑文件,所以采样率真的一点都不重要,因为我完成后会把它放回wav文件中。因此,我需要能够更改存储采样率的wav文件中的值,或者让MATLAB将它喜欢的采样率从8k更改为我的文件记录时的采样率。有SOX

我有一个wav文件拉在MATLAB中,我可以看到它的采样率。我要做的就是换这个1号。文件中的所有其他内容都将保持未归档状态。(产生的声音将以不同的速度播放,但具有相同的采样数据阵列。)


我之所以需要这样做,是因为当我告诉MATLAB打开8k以外的任何采样值时,MATLAB似乎会发疯。我所需要的只是编辑文件,所以采样率真的一点都不重要,因为我完成后会把它放回wav文件中。因此,我需要能够更改存储采样率的wav文件中的值,或者让MATLAB将它喜欢的采样率从8k更改为我的文件记录时的采样率。

有SOX工具,它应该在这方面对您有所帮助,并且几乎可以在任何平台上使用-


还有libsndrate、libsamplerate、libsndfile和其他可能也有可执行文件的文件。

如果您只想更改采样频率,下面是代码,但它会扭曲原始wav文件。如果降低采样频率,则节拍和音乐将非常缓慢

Code:
    [y, fs, nbits]=wavread('stego_lab');
    fs2=11025;
    wavwrite(y,fs2,nbits,'stego2_lab.wav');
    sound(y,fs2,nbits)
你可以听到,但样品将保持不变。 希望有帮助。

试试这个解决方案

[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');
[x,fs]=wavread('infle.wav');

[p,q]=大鼠(16000/fs)%转换为16k采样率

y=重采样(x,p,q);%信号包要求 wavwrite(x,16000,'outfile.wav');
请参见此(几乎相同)问题: