参考:

视音频数据处理入门:PCM音频采样数据处理_audition pcma-CSDN博客

从代码可以看出,PCM16LE双声道数据中左声道和右声道的采样值是间隔存储的。每个采样值占用2Byte空间。

(2)将PCM16LE双声道音频采样数据中左声道的音量降一半

(3)将PCM16LE双声道音频采样数据的声音速度提高一倍

(4)将PCM16LE双声道音频采样数据转换为PCM8音频采样数据

PCM16LE格式的采样数据的取值范围是-32768到32767,而PCM8格式的采样数据的取值范围是0到255。所以PCM16LE转换到PCM8需要经过两个步骤:第一步是将-32768到32767的16bit有符号数值转换为-128到127的8bit有符号数值,第二步是将-128到127的8bit有符号数值转换为0到255的8bit无符号数值。

short转char是怎么转的?即16bit转换为8bit是怎么转的?

图中内存为:sample

(5)将从PCM16LE单声道音频采样数据中截取一部分数据

写文件时采样值数值的计算方法:

上面内存为:&sample为116c,而通过计算后samplenum的十进制为4460,相同。

(6)将PCM16LE双声道音频采样数据转换为WAVE格式音频数据

最后再写入WAVE_HEADER

小插曲:fread fwrite之后文件指针位置 会移动:

https://blog.csdn.net/csdn66_2016/article/details/70902460

程序运行后结果:

小插曲:&0xff的作用

小插曲>>8的作用

负数的 >>

https://blog.csdn.net/yo_bc/article/details/74511066

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐