Audio 在哪里可以学习如何使用音频数据格式?

Audio 在哪里可以学习如何使用音频数据格式?,audio,mp3,pcm,Audio,Mp3,Pcm,我正在做一个openGL项目,其中包括一张会说话的卡通脸。我的希望是播放语音(编码为MP3),并使用音频数据制作嘴巴动画。我以前从未真正使用过音频,所以我不知道从哪里开始,但一些谷歌搜索让我相信我的第一步是将mp3转换成pcm 我真的不认为需要任何傅里叶变换,尽管那可能很好。当有声音时,嘴巴真的需要四处移动(我在考虑根据音量) 任何关于实现类似的东西的提示或指向资源的指针都将不胜感激。谢谢 -无论您做什么,都需要先将MP3解码为PCM数据。有许多第三方库可以为您做到这一点。然后,您需要分析PCM

我正在做一个openGL项目,其中包括一张会说话的卡通脸。我的希望是播放语音(编码为MP3),并使用音频数据制作嘴巴动画。我以前从未真正使用过音频,所以我不知道从哪里开始,但一些谷歌搜索让我相信我的第一步是将mp3转换成pcm

我真的不认为需要任何傅里叶变换,尽管那可能很好。当有声音时,嘴巴真的需要四处移动(我在考虑根据音量)

任何关于实现类似的东西的提示或指向资源的指针都将不胜感激。谢谢


-无论您做什么,都需要先将MP3解码为PCM数据。有许多第三方库可以为您做到这一点。然后,您需要分析PCM数据并对其进行一些信号处理

从音频中自动生成真实的lipsync数据是一个非常困难的问题,您最好不要尝试解决它。我喜欢你的想法,简单地以音量为基础。计算当前音量的一种方法是使用一定大小的滚动窗口(例如1/16秒),并计算该窗口上声波的平均功率。也就是说,在第T帧,计算帧[T-N,T]上的平均功率,其中N是窗口中的帧数


由于,我们可以轻松地计算波中的功率,而无需进行傅里叶变换或任何复杂的运算——平均功率只是窗口中PCM值的平方和除以窗口中的帧数。然后,您可以将功率除以一些基本功率(为简单起见,可以是1),取对数,然后乘以10,将功率转换为额定值。

非常感谢Adam,这是一个巨大的帮助