0
点赞
收藏
分享

微信扫一扫

RT-Thread音频调试实战经验分享 - 基础篇


前言

  • 最近一直在折腾音频相关的东西,其实主要分为两大块:播放与录音
  • 由于之前【音频】的基础过于薄弱,走了很多的弯路,尝试了很多方法,当然通过实践,也积累了很多的音频开发的调试经验
  • 基本调通了基于RT-Thread Audio 框架的播放与录音,开始整理思路总结一下

开发环境

  • 硬件 1: ART-Pi 开发板 + 多媒体板
  • 硬件 2:Pandora STM32L475 开发板
  • 开发IDE:Keil MDK 5.30
  • 开发IDE2:RT-Thread Studio
  • 耳机,用于测试音频的播放与录音(MIC)
  • 音箱:选配,用于测试高质量音频的播放

基本的知识

  • 音频格式,平时接触的往往是mp3格式的,要么就是音视频一起的,如mp4,mp3与mp4,都属于压缩编码后的音文件格式,一般的音频原始数据格式为:WAV,这里的wav 可以理解为:​​WAVE sound file​​​ 的英文缩写,或者干脆就称之为:​​WAVE​​ 格式
  • 音频编码:mp3,mp4,m4a,aac,m3u8等,原始的 wav,都属于音频的编码
  • 存储方式:音频流数据一般使用【文件】来保存
  • 网络音频流,一般可以通过网络,把音频流不断的分片拉取到本地,暂时放在内存缓存buffer中,然后像【串口数据】一样,传输到【音频编解码芯片Codec】,Codec负责音频的播放,也负责【音频采样】,也就是【录音】

控制方式

  • 播放音频:开启播放、暂停播放、恢复播放、停止播放等,音频播放的参数,可以通过解析【音频文件】获取
  • 录音:开启录音、暂停录音【可选】、恢复录音【可选】、停止录音等,录音时,需要配置录音的参数到【Codec 编解码】芯片

samplerate 采样率

  • 这个就是音频的采样速率,如常见的44.1KHz

channels 采样通道数

  • 一般是 1 或者2,单个通道采样或者 两个通道采样

samplebits 采样位数

  • 一次采样时,数据占多少位,如8位、16位、24位,或者32位,类似于常见的AD采样的分辨率,MIC 录音,原理上就是不断的把声音(模拟)转换成数字信号的过程,采样位数决定采样的【精度】,位数越高,音质越好,音频数据越大(相同时间)

音频架构

  • MCU,如STM32,一般有 SAI、I2S 接口,对接音频Codec 芯片,音频的Codec芯片,一般使用I2C、SPI等通信, Codec芯片的型号,如:wm8978、WM8988、ES8388等
  • 音频的播放与录音管理,需要一套控制传输组件,如RT-Thread Audio框架
  • 音频需要存储的介质:如SD卡
  • 音频需要应用逻辑:如保存文件、使用网络播放
  • 音频需要【软件编解码】库,提供MP3、aac等压缩音频格式的音频播放

小结

  • 音频的基础知识、编解码知识还是博大精深的,需要不断的总结与积累
  • 想要快速入门音频的嵌入式开发,需要具备基本的概念,这样才能提高开发的效率
  • 需要要测试与调试的【硬件】,快速搭建调试环境,动手才能加深对技术的理解与掌握


举报

相关推荐

0 条评论