有两个选项可加快声音文件的播放速度:
在这两种方法中,播放速度的增加都会使声音的音调发生相应的变化。
提高采样率
提高采样率将提高声音的播放速度。例如,从 22 KHz 采样率变为 44 KHz 将使播放声音的速度比原始速度快一倍。在这种方法中,原始采样数据不会改变——只需更改音频播放设置。
减少单位时间的样本数量
在这种方法中,播放采样率保持恒定,但样本数量减少——一些样本被丢弃。
使声音播放速度是原始速度两倍的简单方法是删除所有其他样本,并以原始播放采样率播放。
然而,使用这种方法,一些信息将会丢失,并且我预计音频中会引入一些伪像,因此这不是最理想的方法。
尽管我自己还没有尝试过,但对样本进行平均以创建新样本的想法是一个很好的开始方法。这似乎意味着,不仅可以丢弃音频信息,还可以通过平均过程在一定程度上“保留”音频信息。
作为该过程的粗略想法,这里有一段伪代码,可以使播放速度加倍:
original_samples = [0, 0.1, 0.2, 0.3, 0.4, 0.5]
def faster(samples):
new_samples = []
for i = 0 to samples.length:
if i is even:
new_samples.add(0.5 * (samples[i] + samples[i+1]))
return new_samples
faster_samples = faster(original_samples)
我还发布了对问题的回答“程序化音频入门 https://stackoverflow.com/questions/366187/getting-started-with-programmatic-audio“其中我详细介绍了一些可以执行的基本音频操作,所以也许这也很有趣。