【发布时间】:2012-02-24 22:37:05
【问题描述】:
我在更改 Java 应用程序中的音频速度时遇到问题。我可以使用 Java 的声音 API 和一些插件有效地加载 mp3,但我无法改变速度。我试图改变采样率,但这会影响音高和速度。有谁知道只改变速度的方法?或者有谁知道我怎样才能改变音高?我考虑过改变采样率,然后我可以将音高更改为歌曲的正常音高。
【问题讨论】:
标签: java performance audio playback
我在更改 Java 应用程序中的音频速度时遇到问题。我可以使用 Java 的声音 API 和一些插件有效地加载 mp3,但我无法改变速度。我试图改变采样率,但这会影响音高和速度。有谁知道只改变速度的方法?或者有谁知道我怎样才能改变音高?我考虑过改变采样率,然后我可以将音高更改为歌曲的正常音高。
【问题讨论】:
标签: java performance audio playback
您可以使用声音的频谱表示来实现所有这些。改变采样率确实会影响音高,所以你保持采样率不变。对初始声音信号进行傅里叶变换,然后您可以根据需要在频谱中上下移动频率。完成后,执行傅里叶逆变换以获取“可播放”的音频数据。对于长音频流,将数据拆分成块,并确保应用窗口化并重叠处理过的数据,在其他地方您会听到块边界处的咔嗒声,因为它们在频率处理后不会无缝粘贴。
【讨论】: