ios - 在 iOS 中将音频文件的播放速度降低 600%-900%(不影响音高)

标签 ios objective-c audio avaudioplayer playback

听起来应该像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/

相关文章:

ios - 从 XCARCHIVE 导出 OTA 可安装 IPA

ios - 如何在 Moya 中添加参数?

iOS:如何判断按钮是否被拖入指定区域

jquery - jQuery keydown和mouseDown函数?

java - 未找到声音文件,不在目录中?

javascript - 设备锁定时停止播放 HTML5 音频(Android 和 iOS)

ios - 如何解决 Objective C 中有符号与无符号类型不匹配的问题?

ios - 使用不自然的排序顺序重新排列 NSMutableArray

ios - CoreData 谓词 : string property length?

ios - 为IOS中的所有设备创建唯一的UUID?