如何通过波形计算音量?

Lucy16 2010-07-16 09:11:45
将媒体中的声音部分可解码为PCM格式,对于一帧音频数据有多个采样点,每个采样点的值不同,如果是16位,可能还有正负区别,请问正负数代表什么?如何获得该帧的平均音量值?
...全文
1689 点赞 收藏 9
写回复
9 条回复
miracle 2013年02月01日
楼主通过PCM值获取到了声音的大小么?我现在也在弄这个,没有思路啊
回复 点赞
yyd01245 2013年01月09日
引用 2 楼 tufaqing 的回复:
楼主可以先查一下PCM的采样原理。声音是一种波,PCM数据是波形的描述,音量值表示波的能量,和波的振幅相关,和各点的相对差值有关。16bits的采样值表示范围是-32768~32767。把每个点依次连接起来就是声音的波形了。求音量先将数据转换成-1~1之间(因为位率是是精度表示,要转换成相对最大值的比例),进行傅立叶变换,提高速度使用快速傅立叶变换(FFT),求出当时的频……
顶个!
回复 点赞
魔域守望者 2012年10月22日
谢大神指点~~
回复 点赞
FCARM 2011年12月22日
傅立叶变换,哈哈,这懂这东西在学校里害死了多少人
回复 点赞
CyberLogix 2010年07月23日
[Quote=引用 2 楼 tufaqing 的回复:]
楼主可以先查一下PCM的采样原理。声音是一种波,PCM数据是波形的描述,音量值表示波的能量,和波的振幅相关,和各点的相对差值有关。16bits的采样值表示范围是-32768~32767。把每个点依次连接起来就是声音的波形了。求音量先将数据转换成-1~1之间(因为位率是是精度表示,要转换成相对最大值的比例),进行傅立叶变换,提高速度使用快速傅立叶变换(FFT),求出当时的频谱图,就是各个频率的音量大……
[/Quote]
回单的很正确
回复 点赞
Lucy16 2010年07月23日
[Quote=引用 2 楼 tufaqing 的回复:]

楼主可以先查一下PCM的采样原理。声音是一种波,PCM数据是波形的描述,音量值表示波的能量,和波的振幅相关,和各点的相对差值有关。16bits的采样值表示范围是-32768~32767。把每个点依次连接起来就是声音的波形了。求音量先将数据转换成-1~1之间(因为位率是是精度表示,要转换成相对最大值的比例),进行傅立叶变换,提高速度使用快速傅立叶变换(FFT),求出当时的频谱图,就是各个频率的音量……
[/Quote]
请问傅里叶变换后频谱图上的各点与原始采样点存在一一对应的关系吗?具体是什么关系?我不太明白,请指点一下,还有如何求算平均值?
回复 点赞
tufaqing 2010年07月16日
FFT变换有实部数据和虚部数据,其能量值是(实部*实部+虚部*虚部)的开方,而声音的大小是分贝,20*lg(能量值),所以频谱图各音量是10*lg(实部*实部+虚部*虚部)
回复 点赞
tufaqing 2010年07月16日
楼主可以先查一下PCM的采样原理。声音是一种波,PCM数据是波形的描述,音量值表示波的能量,和波的振幅相关,和各点的相对差值有关。16bits的采样值表示范围是-32768~32767。把每个点依次连接起来就是声音的波形了。求音量先将数据转换成-1~1之间(因为位率是是精度表示,要转换成相对最大值的比例),进行傅立叶变换,提高速度使用快速傅立叶变换(FFT),求出当时的频谱图,就是各个频率的音量大小。求平均就是总音量了。
回复 点赞
chilli211 2010年07月16日
音量值计算:db=20*lg(x/2^15),其中x表示样点幅度值,db表示分贝值。
对于16位,波形纵轴表示幅值,正负好像代表电压,表征音量大小。0表示无声。
求平均音量就应该计算所有采样点的平均值吧。
回复 点赞
发动态
发帖子
多媒体/流媒体开发
创建于2007-08-27

2054

社区成员

2.0w+

社区内容

专题开发/技术/项目 多媒体/流媒体开发
社区公告
暂无公告