音视基础

  • 声波
  • 音频的录制、存储与回放
  • 音频采样
  • Nyquist-Shannon采样定律
  • 声道与立体声道
  • 声音定级—WeberFechner law
  • 音频文件格式

声波

从物理学的角度来讲,声音是机械波的一种。机械波是由机械震荡产生的。声音的传播需要介质。其重要属性如下:

  • 响度
  • 音调
  • 音色

(初中物理都学过的)

音频的录制、存储与回放

多媒体并不是为计算机系统而生的,只不过后者的出现极大的推动了它的发展。那么传统多媒体和计算机多媒体系统之间有什么区别吗?
一个很明显的问题就是:我们如何将媒体源数字化?之所以有这个疑问,是因为早期的音频信息存储在录音带中,并以模拟信号的形式存储。而到了计算机时代,这些数据必须经过一定的手段处理,才能够存储到计算机设备中。
1)录制过程。

  • 首先,音频采集设备捕获声音信号
  • 采集到的声音信号,通过模数转换器,处理成计算机能够接受的二进制数据。
  • 上一步得到的数据按照需求进行必要的渲染处理,如音效调整、过滤等
  • 处理收的数据理应可以存储到计算机设备上(硬盘、usb设备等)。由于这时的音频数据体积过大,不利于保存和传输,通常我们还会对其进行压缩处理。比如常见的(mp3格式)。压缩过程根据采样率、位深等因素不同,最终得到的音频文件有一定的失真。

音频的编解码既可以通过软件实现,也可以通过硬件实现
2)回放过程

  • 从设备中读取音频文件,并根据录制时采用的编码,进行解码操作。
  • 选择播放设备(耳机 喇叭 蓝牙)
  • 解码后的数据经过音频系统设计的路径进行传输
  • 音频信号通过数模转换变为模拟信号
  • 将模拟信号在回放设备上 播放。

音频采样

采样的核心就是把练血的模拟信号转化为离散的数字信号。它涉及到如下几个因素:

  • 样本 即将被采样的原始资料

  • 采样器 采样器是将样本转为终态信号的关键。它可以是一个子系统,也可以指一个操作过程,甚至至少是一个算法,取决于不同的信号处理场景。理想的采样器是要求尽量不产生信号失真

  • 量化 采样后得到的值还需要通过量化,即将连续值近似为某个范围内有限多个离散值的处理过程。原始数据是模拟连续信号,而数字信号的离散的,且数值表达范围是有限的,所以量化是必不可少的步骤

  • 编码 在计算机的世界里,所有数值都是用二进制表示的,因而我们还需要把量化值进行二进制变化。这一步通常与量化是同步进行的。

    原始模拟信号 -> 通过采样器(Sampler)进行 采样(Sampling) -> 量化(Quantitation) -> 编码(Coding)

PCM

PCM (Pulse-code modulation)脉冲编码调制,是将模拟信号数字化的一种经典方式,得到了非常广泛的应用。比如数字音频在计算机、DVD以及数字电话等系统中的标准格式采用的就是PCM。它的基本原理就是上面的几个流程,即对原始模拟信号进行抽样、量化、编码,从而产生PCM流。另外我们可以调整PCM的一下几个属性,从而可以达到不同的采样需求。

  • 采样速率(Sampling Rate)
    在将连续信号转化为离散信号时,就涉及到采样周期的选择。如果采样周期太长,虽然文件大小得到了控制,但是采样后的数据很可能无法准确的表达原始信息。反之,如果采样速率过快,则最长产生的数据量会大幅增加。这两种情况都是我们不愿意看到的,因而在项目中需要根据实际情况来选择合适的采样率。

由于人耳鞥便是的声音范围是20-20KHz,所以人们一般选中44.1KHz,48KHz或者96KHz作为采样速率。

  • 采样深度(Bit Depth)
    位深越大,所能表达的数值范围就越广,而从而使得量化值更接近原始数据

Nyquist-Shannon采样定律

奈奎斯特采样理论:
“当对采样的模拟信号进行还原时,其最高频率只有采样率的一半”
话句话说,如果我们要完美的重构原始模拟信号,则采样率必须是它的二倍以上。比如人耳听到的声音频率范围为20-20KHz,那么采样率必须选择40Kz+。太小则失真明显,太大资源浪费,且不能明显提高人耳的质感。

声道与立体声道

  • 单声道(Monaural)
  • 双声道 (stereophonic)
  • 4.1环绕立体声 四个音源 前左、前右、后左、 后右。1代表一个低音喇叭(subwoofer),专门用于加强低频信号效果。
  • 5.1环绕立体声 相比4.1增加了一个中置音源

声音定级—WeberFechner law

音频文件格式

前面小节的内容分析了音频采样的过程,它将连续的声音波形转为若干范围内的离散数值,从而将音频数据以二进制的形式显示在计算机系统中。不过音频的处理并没结束,我们通常还需要对上述过程中产生的数据进行格式转化,然后存储到设备中。

要特别注意 文件格式和文件编码器的区别。文件编码器负责对原始数据进行一定的前期处理,如采用压缩算法减小体积,然后以特定的文件格式进行存储。编码器和文件格式不是一一对应的。
音频文件格式分类:

  • 不压缩 PCM数据(windows上是wav, mac上是aiff)
  • 无损压缩 如FLAC APE WV m4a
  • 有损压缩 如ACC MP3

安卓音频系统之一音频基础相关推荐

  1. Android音频系统之一音频基础

    对于一部嵌入式设备来说,除了若干基础功能外(比如手机通话.短信),最重要的可能就是多媒体了,那么问题来了,什么是多媒体呢? 多媒体是各种形式的媒体(比如文本.音频.视频.图片.动画等等)的组合.可以说 ...

  2. Android音频系统之四AudioPolicy

    4.1 AudioPolicy的诞生 AudioPolicyService是Android音频系统的两大服务之一,另一个服务是AudioFlinger,这两大服务都在系统启动时有MediaSever加 ...

  3. Android ALSA音频系统架构分析(1)----从Loopback了解Audio

    /*********************************** * Author:刘江明 * Environment:MTK Android 6.0 * Date:2017年05月25日 * ...

  4. 高通与安卓水火不容 Android音频系统缺陷测评

    导读:高通与安卓它们都存在同样的问题.是什么原因导致高通Snapdragon全系列都会存在如此问题?它会带来怎样的影响?与Android搭配的高通产品为什么问题会加重?我们来一一分析. Qualcom ...

  5. android 获取蓝牙设备id_安卓蓝牙系统中如何获取蓝牙音乐的音频跟踪会话ID

    原标题:安卓蓝牙系统中如何获取蓝牙音乐的音频跟踪会话ID 蓝牙音乐AudioTrack Session ID的获取 当今这个音视频无处不在的时代,音频跟踪会话ID(AudioTrack Session ...

  6. poweramp android6,Poweramp支持安卓系统_音频HiFi-中关村在线

    Poweramp是一款非常受欢迎音频播放器应用,但就在google play上使用的用户突破了5000万,付费用户为100万以上,应用除了发布在google play上,官网也支持购买价格在20元人民 ...

  7. 深度剖析 Android音频系统解析与改进

    导读:Android是用了一个Google自己开发的中间层API来让APP和声音驱动(ALSA或者HAL封闭驱动)通信的.在早期,它是个ALSA的插件:现在则命名为AudioFlinger.但是安卓音 ...

  8. 专业音频如何把电平转换成dbu_这是我见过最细致的音频系统增益设置指南,跟着学起来!...

    本文将引导您完成设置音频系统中最常被忽视但也最重要的部分之一--增益设置.为音频系统设置正确的增益结构是提供干净.无失真信号的基础.使用正确的技术来设置增益结构和平衡音频系统,其实这个任务并不那么可怕 ...

  9. android 4.0 电话录音,ANDROID音频系统散记之四:4.0音频系统HAL初探

    昨天(2011-11-15)发布了Android4.0的源码,今天download下来,开始挺进4.0时代.简单看了一下,发现音频系统方面与2.3的有较多地方不同,下面逐一描述. 一.代码模块位置 1 ...

最新文章

  1. 从小到大排列的数组中查找x,若x存在则删除,若不存在则添加,修改后的数组仍然有序
  2. 今天收到了学校给出的退学警告
  3. Learning Perl 8
  4. C++学习之路(六):实现一个String类
  5. mysql run sql files_如何在Eclipse DTP中運行多個.sql文件
  6. java method_JAVA Method的解析
  7. 使用ASP.NET广告控件的XML语言创建广告链接--ASP.NET
  8. h5打开麦克风权限录音_原来电脑上自带录音功能,很多人还不知道,真的太实用了...
  9. Android4.0 添加一个新的Android 键值
  10. 如何用命令行运行python程序_如何使用运行python代码命令行.exe从C应用程序?
  11. 20210116 plecs 版本更新笔记
  12. 调和方程(拉普拉斯方程)基本解和边界元方法的积分计算
  13. 【应用统计学】简单随机抽样的区间估计和样本容量的确定
  14. sql服务器注册表被禁用,彻底删除SQL Server注册表信息
  15. 商务网站建设与维护【16】
  16. nginx 解决504超时问题
  17. 计算机体系结构:不同改进方案的性价比计算(1.4)
  18. pretty-errors:美化python异常输出以使其清晰易读
  19. C#USB连接斑马条码打印机打印二维码、图片、及中文文字_实战项目中摘选
  20. 传奇服务器列表文档,MirServer(传奇服务端)

热门文章

  1. python小程序抢购脚本怎么写_Python茅台抢购脚本的使用说明!!
  2. Mounty for NTFS-让你的Mac OS M1可以正确读写NTFS文件系统
  3. ElasticSearch——路由(_routing)机制
  4. Hive误删除后,如何恢复数据
  5. 【离散数学】数理逻辑 第一章 命题逻辑(5) 对偶式、对偶原理
  6. 安装mysql驱动报错_java.sql.SQLException: org.gjt.mm.mysql.Driver 报错【解决办法】
  7. mysql创建表报错1055的原因_[Err] 1055
  8. csv逗号分割不兼容 解决_excel保存为csv 不兼容的功能
  9. 嵌入式产品软件(固件)开发需要考虑的2个方面
  10. P3373(线段树2)