删除主唱的影响可能在安卓系统



我正在尝试为Android编写一个音乐播放器应用程序,允许用户从歌曲中提取主唱。

所涉及的数学是这样的:

amount_of_removal * ((left * (balance)) - (right * (1 - balance))) + (1 - amount_of_removal)*(left + right)

是否有任何可能的方法将自定义AudioEffect应用于音频流?即使我自己打开并解码文件?

好吧,当我发布这个问题时,我似乎忽略了一些相当重要的信息。

其中最主要的是,大多数音乐格式都是所谓的"有损",因为它们不会存储构成音频波形的所有内容。例如,MP3基本上将波形分解为其分量频率,但只存储最响亮的频率,而丢弃较安静的频率。

再加上这样一个事实,对于几种风格的音乐,主唱是声音最大的部分(尤其是当他们唱歌的时候),你的音质也有一些问题,因为现在需要一些更安静的频率,因为主唱不在那里掩盖它。

这意味着最好的读取格式实际上是无损的,其中最简单的可能是古老的WAV文件。

总的来说,做我想做的事情所需的步骤可能是这样的:

  1. 加载音频文件(使用WavFile类,如此答案所指定)
  2. 将自定义音频效果应用于一次充满文件的缓冲区
  3. 将充满已处理音频的缓冲区传递到声卡(使用类似于此示例的内容)

我从这里看到的唯一缺点(还没有测试过)可能是性能问题,因为使用纯Java可能有点慢。

相关内容

  • 没有找到相关文章

最新更新