听起来应该像this .
我试过:
NSURL* url = [[NSBundle mainBundle] URLForResource:@"Justin Bieber - U Smile" withExtension:@"mp3"];
self.player = [[AVAudioPlayer alloc] initWithContentsOfURL:
url error:nil];
self.player.volume = 1.0f;
self.player.enableRate=YES;
[self.player prepareToPlay];
[self.player setNumberOfLoops:0];
self.player.rate=0.16f;
[self.player play];
但这听起来很糟糕。
最佳答案
您要求的不是一项简单的任务,原因是音高与音频播放的速度有着内在的联系。例如,一个 100 赫兹的 10 秒正弦波,当减慢两倍时,将变成一个 20 秒 50 赫兹的波(赫兹与波速和您听到的音高有关)。为了在不影响音调的情况下将这个正弦波减慢两倍,一些算法必须计算出你正在插入的 10 秒音频中缺少什么声音,生成这个音频并将它与那里的内容相匹配。这并不容易,事实上它真的很难。
好的音频编辑程序(例如 Logic Pro)可以使用一些复杂的算法来完成相当不错的工作。然而,任何超过几次的因素都会产生非常可怕的结果,原因是很难生成以前不存在的音频,并使其听起来不错。
不过,我是这样处理的
(以及我认为上面的链接听起来不错):
首先,从非常高质量的音频开始。避开 128 kpbs 的 mp3,他们不会削减它。声音信息越多,算法就越容易创造出听起来不错的东西。
接下来,研究在 600 - 900% 的系数下运行良好的算法。检查一下:http://hypermammut.sourceforge.net/paulstretch/ - 它是开源的,所以你应该可以从中学到很多东西。此外,该算法专为大规模因素而设计。宾果!
我会说某种效果(或一对)已应用于 YouTube 视频的最终结果。我上面链接的网站提到“频谱平滑”已应用于音频。此外,混响之类的东西可能会给结果带来更好或更有趣的质感 - 一些可以玩的东西。
这不是一件小事,尤其是要做好。应该很有趣/有趣 - 祝你好运!
关于ios - 在 iOS 中将音频文件的播放速度降低 600%-900%(不影响音高),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14297576/