在iOS App中分离语音和音乐与音频文件(制作卡拉OK)

时间:2016-01-13 10:19:56

标签: ios objective-c iphone audio core-audio

我正在开发音乐应用,并希望添加一个功能,其中App可以将歌曲转换为卡拉OK。我正在研究CoreAudio框架。有没有办法处理它。 与之相关的任何链接或资源?

1 个答案:

答案 0 :(得分:2)

一般情况下,分离乐器和人声不能通过滤波来完成,因为人声和乐器的音频频谱范围会相当重叠。

对于立体声音乐,其中主要人声是平移死中心,并且乐器音乐平移到一侧或另一侧,可以通过从另一侧减去一个通道来移除混音中的一些人声(比如说从右边开出)。要进行此减法,您​​必须将mp3转换为原始PCM样本的未压缩音频,并使用C数据类型。

关于如何实现这一目标的学术研究的搜索词是"盲源分离"。

没有一个"算法"作为一个"技巧"但它可以在代码中自动化。它主要用于人声居中的立体声音轨。如果人声居中,则它们在两个轨道中均匀显示。如果您反转其中一个轨道然后将它们合并在一起,则中心人声的波形会被取消并被虚拟删除。您可以使用大胆的大多数优秀音频编辑器手动执行此操作。它并没有给你带来完美的效果,其余的音频也受到了一些影响,但却创造了很棒的卡拉OK音乐。