sta*_*010 31 iphone audio android pcm audio-recording
我开始使用我的Android智能手机进行录音.
我成功将录音保存到PCM文件中.当我解析数据并打印出带符号的16位值时,我可以创建如下图所示的图形.但是,我不了解沿y轴的振幅值.
振幅值的单位究竟是多少?这些值是16位符号,因此它们的范围必须介于-32K到+ 32K之间.但这些价值代表什么呢?分贝?
如果我使用8位值,则值必须在-128到+128之间.如何将其映射到16位值的音量/"响度"?你会使用16比1的量化映射吗?
为什么会出现负值?我认为完全沉默会导致值为0.
如果有人可以将我指向一个网站,其中包含有关录制内容的信息,我将不胜感激.我发现PCM文件格式的网页,但不是数据值.

hot*_*aw2 22
想想麦克风的表面.当它静音时,表面在零位置处不动.当你说话时,会导致嘴巴周围的空气振动.振动类似于弹簧,并且在两个方向上都有运动,如前后,或上下,或进出.空气中的振动也会导致麦克风表面振动,如上下移动.当它向下移动时,可以测量或采样正值.当它向上移动时可能被采样为负值.(或者它可能正好相反.)当你停止说话时,表面会回落到零位置.
从PCM录制数据中获得的数字取决于系统的增益.对于常见的16位采样,范围从-32768到32767,可以记录振动的最大可能偏移,无失真,削波或溢出.通常将增益设置得稍低,以使最大值不在失真边缘.
添加:
8位PCM音频通常是无符号数据类型,范围从0..255,值128表示"静音".因此,您必须加/减这个偏差,并缩放大约256,以便在8位和16位音频PCM波形之间进行转换.
原始数字是用于将模拟音频信号转换为数字信号的量化过程的产物。将音频信号视为 0 附近的振动更有意义,延伸至 +1 和 -1 以实现信号的最大偏移。除此之外,你会得到削波,这会扭曲谐波并且听起来很糟糕。
但是,计算机在分数方面的工作并不是那么好,因此使用从 0 到 65536 的离散整数来映射该范围。在大多数此类应用中,+32767 被认为是麦克风或扬声器振膜的最大正偏移。有没有相关性的样品点和声压级之间,除非你在记录(或再现)电路的特性开始理。
(顺便说一句,16 位音频是非常标准和广泛使用的。它是信噪比和动态范围的良好平衡。除非您进行一些时髦的非标准缩放,否则 8 位是嘈杂的。)