我需要能够以不同的速度播放MP3文件,而不会影响音高(或者在加速后改变音高,无论如何).此外,这种转换需要尽可能无缝.
显然有些应用程序可以做到这一点,但是它似乎不可能使用MediaPlayer API,并且SoundPool API只能改变音高和速率(除非我遗漏了一些东西).
有关如何实现这一点的任何想法?任何可以提供帮助的API /第三方库?
谢谢.
有一种称为“时间尺度修改”的通用技术可以做到这一点。这是我尚未评估的可用工具: http://sourceforge.net/projects/mffmtimescale/。
如果放大音频时间线,它看起来很像旧的心跳监视器——波峰和波谷的摆动图案。对于元音来说,该模式是准固定的,这大致意味着它是重复的,就像健康的心跳脉冲一样。在正常语音中,单个 ahhhh 元音可能会重复其模式 3-7 次。TSM 算法删除其中一些重复,并且需要使用过滤器通过剪切/连接不完美的重复来引入伪影。空格也可以减少,但需要注意不要删除所有空格——英语中的“football”一词实际上在“foot”和“ball”之间有一个间隙(慢慢地大声说出来)。TSM 也可以做相反的事情,在正确的位置注入空白空间或为元音添加音高周期重复。这一切加起来相当复杂,并且在某种程度上依赖于语言,需要大量调整——这对于大多数应用程序来说意味着您不想开发自己的应用程序。
| 归档时间: |
|
| 查看次数: |
3910 次 |
| 最近记录: |