【问题标题】:How can I get into a wav file to change the sample rate?如何进入 wav 文件以更改采样率?
【发布时间】:2012-06-25 20:36:52
【问题描述】:

我在 MATLAB 中提取了一个 wav 文件,我可以看到它的采样率。我需要做的就是改变这个 1 号。文件中的所有其他内容都将保持不变。 (生成的声音将以不同的速度播放,但具有相同的样本数据数组。)

我需要这样做的原因是,当我告诉 MATLAB 打开除 8k 以外的任何采样的东西时,它似乎吓坏了。我需要 MATLAB 来编辑文件,所以采样率真的无关紧要,因为完成后我会将它放回 wav 文件中。所以我要么需要能够更改存储采样率的 wav 文件中的值,要么让 MATLAB 将它喜欢的采样率从 8k 更改为记录我的文件的采样率。

【问题讨论】:

标签: matlab signal-processing wav audio-processing sample-rate


【解决方案1】:

有一个 SOX 工具,它应该可以在这方面为您提供帮助,它几乎可以在任何平台上使用 - http://sox.sourceforge.net

还有 libsndrate、libsamplerate、libsndfile 等,可能也有可执行文件。

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

      试试这个解决方案

      [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');
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-02-01
        • 2018-08-25
        • 1970-01-01
        • 1970-01-01
        • 2010-12-27
        • 1970-01-01
        • 1970-01-01
        • 2013-10-25
        相关资源
        最近更新 更多