录制音频时改变声音/音高

时间:2015-06-02 03:40:27

标签: android audio

我正在使用AudioRecord课程通过麦克风录制用户的语音。无论如何都要在录制过程中更改用户的语音或pitch。如果没有这种方法,我如何调制输出音频文件并更改其pitch并保存文件。在播放音频时我不需要改变音高的解决方案。提前谢谢。

1 个答案:

答案 0 :(得分:0)

如果你不关心保持播放速度,那么最简单的解决方案就是改变播放速度。即您可以以每秒22050个样本的速率录制声音,然后将其放入文件中,就好像它是以44100 sps记录的一样。当播放文件时,它将快2倍,并且音高分别高一个八度。

如果您想保留采样率,或者想要以某种小数比率更改速度,则需要对声音数据应用一些重采样算法。

如果你想在保留播放时间的同时只改变音高,你需要自己实现一些算法 有很多算法可以改变音高。它们的音质各不相同。 根据我的喜好,通过执行基于FFT的时间拉伸算法可以获得更好的质量,这将使您的声音更长或更短,同时保持音高。之后应用具有倒数比例的重采样算法,这将改变音高和速度,并且速度将返回到原始状态,而音高将根据需要改变。

我认为在所有平台上都可以使用“someObject.doEverythingGoodForMe()”解决方案。