我正在尝试为 Android 编写一个音乐播放器应用程序,允许用户将主唱从歌曲中移除。
涉及的数学是这样的:
amount_of_removal * ((left * (balance)) - (right * (1 - balance))) + (1 - amount_of_removal)*(left + right)
有没有可能将自定义AudioEffect
应用于音频流的方法?即使我自己打开并解码文件?
我正在尝试为 Android 编写一个音乐播放器应用程序,允许用户将主唱从歌曲中移除。
涉及的数学是这样的:
amount_of_removal * ((left * (balance)) - (right * (1 - balance))) + (1 - amount_of_removal)*(left + right)
有没有可能将自定义AudioEffect
应用于音频流的方法?即使我自己打开并解码文件?
好的,看起来我在发布这个问题时忽略了一些相当重要的信息。
其中最主要的是大多数音乐格式都是所谓的“有损”,因为它们不存储构成音频波形的所有内容。MP3
例如,基本上将波形分解为其分量频率,但只存储最响亮的频率,丢弃更安静的频率。
再加上这样一个事实,对于几种风格的音乐,主唱是其中最响亮的部分(尤其是当他们唱歌时),而且您在音质方面存在一些问题,因为现在需要一些更安静的频率,现在主唱不在那里掩盖它。
这意味着最好的读取格式实际上是无损格式,可能最简单的格式之一就是古老的 WAV 文件。
总的来说,做我想做的事情所需的步骤可能是这样的:
从这里我可以看到的唯一缺点(尚未测试过)可能是性能问题,因为使用直接 Java 可能会有点慢。