专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 多媒体/流媒体开发

怎么通过波形计算音量

发布时间:2011-06-27 19:30:33 文章来源:www.iduyao.cn 采编人员:星星草
如何通过波形计算音量?
将媒体中的声音部分可解码为PCM格式,对于一帧音频数据有多个采样点,每个采样点的值不同,如果是16位,可能还有正负区别,请问正负数代表什么?如何获得该帧的平均音量值?

------解决方案--------------------
音量值计算:db=20*lg(x/2^15),其中x表示样点幅度值,db表示分贝值。
对于16位,波形纵轴表示幅值,正负好像代表电压,表征音量大小。0表示无声。
求平均音量就应该计算所有采样点的平均值吧。
------解决方案--------------------
楼主可以先查一下PCM的采样原理。声音是一种波,PCM数据是波形的描述,音量值表示波的能量,和波的振幅相关,和各点的相对差值有关。16bits的采样值表示范围是-32768~32767。把每个点依次连接起来就是声音的波形了。求音量先将数据转换成-1~1之间(因为位率是是精度表示,要转换成相对最大值的比例),进行傅立叶变换,提高速度使用快速傅立叶变换(FFT),求出当时的频谱图,就是各个频率的音量大小。求平均就是总音量了。
------解决方案--------------------
FFT变换有实部数据和虚部数据,其能量值是(实部*实部+虚部*虚部)的开方,而声音的大小是分贝,20*lg(能量值),所以频谱图各音量是10*lg(实部*实部+虚部*虚部)
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: