pcm文件如何与声音能量关联起来

wg198757 2012-11-28 09:30:40
pcm文件是声音脉冲编码后,采样得到的二进制数据流,假如我8k采样率,采样精度为2字节,那这两个字节可否看做是幅值的大小?取出一包pcm后,其能量值如何计算?
...全文
500 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
满衣兄 2013-02-15
  • 打赏
  • 举报
回复
		ushort CalcVolume(sshort* samples, unsigned long sampleCount)
		{
			uint accum = 0;
			for (unsigned long i = 0; i < sampleCount; i++)
			{
				if (samples[i] >= 0)
				{
					accum += samples[i];
				}
				else
				{
					accum += -samples[i];
				}
			}
			float average = accum / (float)sampleCount;
			sint volume = average;

			return (ushort)volume;
		}
gamedragon 2012-11-30
  • 打赏
  • 举报
回复
引用 楼主 wg198757 的回复:
pcm文件是声音脉冲编码后,采样得到的二进制数据流,假如我8k采样率,采样精度为2字节,那这两个字节可否看做是幅值的大小?
对。
引用 楼主 wg198757 的回复:
取出一包pcm后,其能量值如何计算?
SUM((Xi-X‘)^2),X需要归一化(x/32768),X‘是平均值

1,394

社区成员

发帖
与我相关
我的任务
社区描述
VOIP相关技术探讨专区
社区管理员
  • VOIP技术探讨社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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