【问题标题】:How to change the pitch of a .wav file in Android?如何在 Android 中更改 .wav 文件的音高?
【发布时间】:2011-01-02 19:28:33
【问题描述】:

谁能告诉我如何在 Android 中更改波形文件的音高?

【问题讨论】:

  • Sound Pool 允许您更改播放速率,但不幸的是,媒体播放器似乎无法做到这一点。如果您确实需要关于 Java 中的音频处理的建议,您可能需要在您的问题中添加 java、DSP、音频标签。
  • 声音池仅允许在播放音频时更改播放速率...对于录制的文件没有帮助。
  • 改变播放速率会改变音高,但也会影响播放速度。所以你应该考虑使用@Phonon 提出的一种算法,它允许在不改变速度的情况下改变音高。

标签: android wav audio-processing pitch


【解决方案1】:

Android 并没有内置这样的功能,而且这个过程一点也不琐碎。如果您想尝试自己编写代码,我建议您查看 PSOLA、WSOLA 和 Phase Vocoder 等算法来更改音高。 Udo Zölzer 的书 DAFX 非常详细地讨论了其中的许多内容,其中大部分内容相当简单。我相信相位声码器的工作速度最快,但也需要更多的 DSP 和数学知识才能理解。 PSOLA 可能是数学上最不复杂的。我个人更喜欢 WSOLA 和增强型 WSOLA (EWSOLA),但它们需要相当多的处理能力。

对于相关技术(如果您使用 WSOLA),我建议在频域(基于 Google FFT 的相关)中进行。它要快得多。

如果其中大部分内容刚刚超出您的想象,您可能想重新考虑完全这样做,但我绝不会试图阻止您。 = )

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-31
    • 2017-10-13
    • 1970-01-01
    • 1970-01-01
    • 2010-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多