如何提高wav文件的采样率,保持语音正常?

时间:2014-12-26 19:46:25

标签: ruby wav

我想使用ruby wavefile gem增加wav文件的采样率,但保持wav文件中的声音听起来正常。基本上这个例子,但修改后的声音听起来很正常。 https://github.com/jstrait/wavefile/wiki/WaveFile-Tutorial#copying-a-wave-file-to-different-format

require 'wavefile'
include WaveFile

SAMPLES_PER_BUFFER = 4096

Writer.new("copy.wav", Format.new(:stereo, :pcm_16, 44100) do |writer|
  Reader.new("original.wav").each_buffer(SAMPLES_PER_BUFFER) do |buffer|
    writer.write(buffer)
  end
end

1 个答案:

答案 0 :(得分:0)

您可以将wav文件视为以给定速率(采样率)采样的数据点集合。如果您有一个已知采样率的给定集合,并且您希望每单位时间增加样本的分辨率,那么您将需要采用新样本(即以所需速率制作新的原始记录)或推断/近似新数据点上的必要样本将出现在您已经拥有的样本之间。

例如,如果你有一个22khz的录音,并且想要将它增加到44khz,那么一个选项是简单地取每个数据点并重复一次,这样就可以得到如下内容:

```

随时间推移的原始波形样本:

1.2.3.4.5.6

如果您只更改采样率: 123456(同一声音在一半的时间内)

随着时间推移的新波形样本:

112233445566

```