6

我需要能够以不同的速度播放 MP3 文件而不影响音高(或在加速后改变音高,无论如何),此外,这种过渡需要尽可能无缝。

显然有应用程序可以做到这一点,但MediaPlayer API似乎不可能,而且SoundPool API 只能改变音高和速率(除非我遗漏了什么)。

关于如何实现这一目标的任何想法?任何可以提供帮助的 API / 3rd 方库?

谢谢。

4

1 回答 1

1

有一种称为时间尺度修改的通用技术可以做到这一点。这是一个我没有评估过的可用工具:http: //sourceforge.net/projects/mffmtimescale/

如果你放大音频的时间线,它看起来很像一个旧的心跳监视器——波峰和波谷的摆动模式。对于元音,该模式是准静止的,这大致意味着它是重复的,就像健康的心跳一样。在正常语音中,单个 ahhhh 元音可能会重复其模式 3-7 次。TSM 算法会删除其中一些重复,并且需要使用过滤器通过剪切/连接不完美的重复来引入伪影。空格也可以减少,但需要注意不要删除所有空格——在英语中,“football”这个词实际上在“foot”和“ball”之间有一个间隙(慢慢地大声说出来)。TSM 也可以反其道而行之,在正确的位置插入空白空间或在元音中添加音高周期重复。

于 2014-08-14T16:01:23.883 回答