如何通过波形计算音量?

Lucy16 2010-07-16 09:11:45
将媒体中的声音部分可解码为PCM格式,对于一帧音频数据有多个采样点,每个采样点的值不同,如果是16位,可能还有正负区别,请问正负数代表什么?如何获得该帧的平均音量值?
...全文
2677 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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表示无声。
求平均音量就应该计算所有采样点的平均值吧。

2,553

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧