• 音频采集原理


    声音是如何被听到的

    原理就是发生震动的物体带动周围空气分子的震动,空气分子在相互作用下带动了鼓膜发送震动,再由三块小骨头将震动幅度放大然后传入耳蜗内部,耳膜将震动转化为生物信号就可以听见声音了。那么以上就可以看出声音的原理其实就是震动,只有震动才会有声音。

    声音的抽象概念

    单一的观察一个独立震动的空气分子,可以发现它随着时间是在有规则的运动。用时间作为横轴,振动的大小作为竖轴,建立直角坐标系。随着时间的运动我们会得到一个很有规律的图,如图所示:
    在这里插入图片描述

    在这个图中有两个很重要的概念一个是周期,及一个分子来回震动所需要的时间。周期的倒数就是频率,也就是1s振动多少次单位是Hz。频率越高声音约尖锐,频率越低声音约低沉。空气分子从原点到最大位移的距离就是振幅振幅越大空气分子振动所包含的能力越多。振幅的大小直接决定了声音的大小,振幅越大声音就越大,反之声音就越小。

    声音的转化

    声音接受

    从上面的介绍我们可以知道,声音的本质是震动,人类的耳蜗可以将这种震动转化为生物信号。那么如何将声音转化为存放在手机或电脑里面的音频文件?这就需要引入一个概念叫磁生电,当导线反复切割磁场时,就会产生电流。麦克风的原理就是膜片的振动,带动线圈切割磁场,线圈内的电子做定向运动产生电流。
    在这里插入图片描述

    此时已经将声音转化为了电信号,但是一般的电子产品其芯片只能识别0或1,那么如何将电信号转化为0或1。这就需要模数转化(ADC),将电压信号进行量化变为数字信号。模数转化芯片,会定时对转化后的音频信号进行采样,将其转化为二进制。一般使用最多的转化方式就是PCM编码,将采样数据变化为二进制
    所采的样本是用二进制来表示的,表示所用二进制的位数就可以决定采样的精度。例如只用一位二进制来表示那么所采的数据只能是0或1,用两位二进制数来表示那么所采的数据就是00、01、10、11,那么也就是说采样的数据所用二进制的位数越多其表示的数据就越精确。
    1s采样多少次就是音频的采样率,人耳能听到的频率是在20Hz-20000Hz之间,根据采样定理只需要用400000Hz的采样频率就可以从采样样本中重建原来的连续信号。采样率越高两次采样之间的间隔就越小,采样的波形就越接近原始波形。
    数据采集已经采集完毕了,那么如何将采集的数据给到CPU。这就需要用到音频传输协议,常用的芯片级音频通信协议就是IIS协议。CPU接收到数据后按照规律将数据排放,这就可以形成电脑或手机里面里面的音频文件。

    声音发送

    现在声音已经变成音频文件了,那么如何将音频文件还原为声音?这就是个逆向过程,首先要将音频文件按存放顺序读出来,然后通过IIS传输到音频芯片,将数据还原到ADC采样的数据。然后音频芯片自带的DAC会将解码后的数字信号又转化为电压信号,电压信号在通过扬声器就还原为声音了。扬声器的原理是电生磁的引用,当电流经过导线的时候其周围会产生磁场。生成的磁场会与周围的磁场生成吸引或排斥,这就会带动振动膜运动从而产生声音。
    在这里插入图片描述

    注:以上只是我收集的资料已经网上所观看的视频总结的资料,如果错误请指正。

    参考资料和视频:

    硬件科普 音响耳机麦克风这些设备是怎么工作的?音频的采样率和采样精度是什么?
    PCM编码

  • 相关阅读:
    ABP处理非结构化数据的方式:分布式文件系统minio
    Vue入门
    R语言进行数据分组聚合统计变换(Aggregating transforms)、计算dataframe数据的分组独特值的个数(distinct)
    【Nginx34】Nginx学习:安全链接、范围分片以及请求分流模块
    软件评测师之CPU的构成
    Vim 编辑器中大写键的命令
    Replicate + ngrok云端大模型API实现教程
    【华秋&Nidec尼得科】滑动开关CL-SB的应用
    PyTorch深度学习实战(16)——面部关键点检测
    Java互联网实时聊天系统(附源码)
  • 原文地址:https://blog.csdn.net/qq_43460106/article/details/127108930