西西河

主题:哪位搞音频或者语音的,请教一个基本概念 -- 黑猫夜行

共:💬46 🌺36
全看分页树展 · 主题 跟帖
家园 俺没搞过音频,搞过类似的波形处理。

  上过大学物理应该做过示波器实验,音频就相当于示波器屏幕上显示的波形。

  这个波形X轴是时间,Y轴是电压。

  采样频率的高低决定了时间采样的精细度,频率越高能还原出的音频频率就越高;

  每个采样点的数值代表了这个时间点的电压值(相对值),位数越多还原出的电压值就越准确。

  数字音频就等于用直方图来代替曲线图,很明显,直方图每一个长方条越细,高度的分辨率越高,长方条的顶点连成的曲线与原曲线就越接近。

  16bit就是每个采样点量化(用A/D转换器)后的数值是个16位二进制数,分辨率为65536。楼下说的1024是10位二进制数。

  音频电压是交流的,正负电压都有,所以这个16位数要能表示出正负来。为了处理方便,一般使使数值向上平移。

  为表示方便以下以10位为例:

  音频瞬间电压的绝对值并不重要,重要的是相对值,所以以下的具体电压变一下可无妨,只要所有点按同样比例变就行。

  10位二进制数分辨率为1024,如果表示一个0-10V的电压,数值0=0V,512=5V,1024=10V,其他按比例算。

  如果表示一个-5-+5V的电压,可以把512定为0V,1024就是+5V,0就是-5V。其他同样按比例算。

  因为是交流信号,我们要还原的是各点数值在X、Y值上连成的相对曲线,所以这个曲线只要不变形,向上、下平移一段距离对还原没有影响,就象示波器看波形上下移动扫描基线一样。你把某一个wav的data chunk里所有采样点都减少或者增加一个常量后生成新的wav,实际上就是把音频曲线向下(减少)或向上(增加)平移一点。而实际把音频电压量化成数字信号时为了保证不失真都不会用满,所以少量平移不会影响原来的音质。但移的多了造成超出范围(就象示波器把波形一部分移出屏幕外),所有超出范围的点都变成最低电压或最高电压(这有个术语叫削顶,在示波器上看就是最高的部分或最低的部份变成平直线),这就造成失真,如果移的太多就会变成最高电压或最低电压的一条直线,还原出就是直流电压,这就没了声音。

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河