https://source.android.com/devices/audio/terminology.html
Audio相关的术语包含广泛运用的通用术语和Android专属的术语。
1.通用术语
Audio通用术语具有传统和符合人们通用习惯的含义。
1.1 数字音频(Digital Audio)
数字音频相关的术语涉及处理那些使用数字形式编码的音频信号。更多详细的信息,可以参考维基百科
https://en.wikipedia.org/wiki/Digital_audio
acoustics
声音机械特性的研究学,比如一个设备的传感器(transducers),比如扬声器、麦克风的位置如何影响人们对音频质量的感知。
attenuation
乘法系数小于或者等于1,适用于音频信号递减信号电平的情况。相比较于gain
audiophile
俗称发烧友,追求超级音乐体验的一类人,尤其是为了声音的质量愿意付出(金钱,器件的尺寸,房屋的设计等)的人。
bits per sample or bit depth
每一个sample的信息比特的数目
channel
俗称声道,音频信息的单个流(stream),通常对应于录音或者播放的一个位置(location)
downmixing
减少channel的数量,比如从立体声到单声道或者从5.1到立体声。donwmixing是通过丢弃channel,混合channel或者其他高级的信号处理技术完成的。没有attenuation或者limiting的简单混合技术有overflow和clipping的风险。
DSD
Direct Stream Digital.直接比特流数字,所有的音频编码基于脉冲密度调制(PDM). 脉冲编码调制(PCM)是把一个波形编码成多位的独立音频samples的序列,然后DSD是采用一个非常高的采样率把一个波形编码成二进制序列(没有samples的概念)。PCM和DSD都通过独立的序列来表征多声道。DSD比起内部表征的处理更适用于content distribution,因为传统的DSP算法比较难适用于DSD.DSD运用在SACD(Super Audio CD)和USB当中的DoP(DSD over PCM).更多详细的内容,参考:https://en.wikipedia.org/wiki/Direct_Stream_Digital
duck
当其他stream激活的时候临时降低当前stream的音量。比如,当播放音乐的时候来了一个通知(notification), 通知播放并且音乐的音量会暂时降低。相比较于mute.
FIFO
先进,先出。实现先进先出数据排列的硬件模块或者软件数据结构。在音频领域,存储在队列中的数据是典型的音频帧(audio frames).FIFO可以通过环形缓冲(circular buffer)实现。环形缓冲详见:https://en.wikipedia.org/wiki/Circular_buffer
frame
某个时间点,一个声道的samples的集合。
frames per buffer
某个时间,从一个模块到下一个模块,被处理的frame的数量。音频硬件抽象层会使用frames per buffer的概念。
gain
乘法系数大于或者等于1.0,适用于音频信号增加信号电平的情况,相比较于attenuation.
HD audio
High-Definition audio.高清晰音频,是High-resolution audio的同义词.(但不同于Intel High Definition Audio)
Hz
赫兹,采样率或者帧率的单位。
high-resolution audio
相比CDs(stereo 16-bit PCM at 44.1kHz)有更大的位深和更高的采样率,没有失真的数据压缩。和HD audio是相同的,详细的可以参考:
https://en.wikipedia.org/wiki/High-resolution_audio
latency
一个信号通过一个系统的时间
lossless
无损的,无损数据压缩算法在编码和解码的过程中保持着位的精度。解码后的数据和解码前的原始数据是相同的。无损的音频格式包括CDs, WAV中的PCM(PCM within WAV), FLAC.在Audio matering的制作过程中可能会减少位深和采样率,Audio mastering可以参考:https://en.wikipedia.org/wiki/Audio_mastering 。保存masters的高清晰度和位精度的容器格式是High-resolution audio的子集。
lossy
有损的,有损数据压缩算法在编码和解码的过程中尝试保存媒体最重要的功能,解码后和解码前的数据从感知的角度来说类似,但实际上并不一样。有损的音频格式包括MP3和AAC. 由于模拟信号是连续值而数字信号是离散值,ADC和DAC都是关于振幅的有损转换。也可以参见transparency.
mono
单声道
multichannel
多声道,见surround sound.严格来说,stereo不止一个声道,可以被认为是多声道。然后,这样的用法容易造成困扰,因此需要避免使用。
mute
临时把音量变成0,这和通常的音量控制是独立的。
overrun
在充足的时间里无法接收提供的数据。详细的可参见:
http://en.wikipedia.org/wiki/Buffer_underrun ,相比较于underrun.
panning
把信号直接打到带有立体声或者多声道属性的指定位置。
PCM
脉冲编码调制,通用的低级别的数字音频编码.音频信号被采样,然后根据位深在合适的范围内被量化成离散值。比如,对于16位的PCM, 采样值是介于-32768到+32767之间。
ramp
逐步的减少或者增加某个特殊音频参数的的等级,比如某个音效的音量或者强度。音量的ramp通常适用于暂停和恢复音乐,以避免急速的声音变化。
sample
某个时间单声道的音频值
sample rate or frame rate
每秒的帧数,frame rate更准确,采样率照惯例用来表示帧率
sonification
触摸的声音,按键音等
stereo
两个声道
stereo widening
用在立体声信号的音效,可以制造另一个立体声信号来使声音更饱满。也可以用在单声道上面,这是一种upmixing
surround sound
提高听者判断声音位置的能力的技术,不局限于左声道还是右声道
transparency
有损数据压缩的理想结果,当人类感知不到和原始数据的差别的时候,有损数据转换就是透明的。详见:
https://en.wikipedia.org/wiki/Transparency_%28data_compression%29
underrun
在充足的时间内不能提供足够的数据
upmixing
提高声道的数量,比如从单声道到立体声或者从立体声到surround sound.upmixing可以通过复制,panning或者更多先进的信号处理技术来完成。相比较于downmixing
virtualizer
尝试让音频通道空间化的音效,比如尝试模拟多个speaker
volume
响度,音频信号的主观强度。
1.2 跨设备互连
跨设备互连技术连接不通设备之间的音频和视频,HAL实现者和终端用户应该注意这些术语。
1.3 设备内部连接
设备内部连接技术连接指定设备内的音频组件,如果不拆卸设备,它们是不可见的。HAL实现者需要注意这些术语,终端用户不需要。
GPIO
I²C
I²S
McASP
SLIMbus
SPI
AC’97
Intel HDA
SoundWire
在ALSA上,这些被统一称作DAI(Digital Audio Interfaces)
1.4 音频信号路径
音频信号路径相关的术语涉及到从应用到传感器的音频数据流或者从传感器到应用的音频数据流。
ADC
模数转化器,ADC前面通常要摆放一个低通滤波器来过滤掉高频部分,这些部分不能作为采样率的代表
AP
Application processor.手机设备上主要的”计算机”
Codec
编解码,把音频信号从一种形式编码(解码)成另一种形式的模块(典型的是模拟信号到PCM或者PCM到模拟信号)。严格意义上讲,codec是需要同时编码和解码,但也可以只是其中的某一种
DAC
数模转换器,DAC前面通常要放一个低通过滤器来过滤掉高频部分。
DSP
是一个可选组件,位于AP的后面(output)或者AP的前面(input).主要的目的是offload AP,提供数字信号处理的功能,以达到省电的目的。
PDM
脉冲密度调制,是一种用数字信号表示模拟信号的调制形式。主要用于数字信号到模拟信号的转换
PWM
脉冲宽度调制,是一种用数字信号表示模拟信号的调制形式。主要用于模拟信号到数字信号的转换。
transducer
转化器,把现实世界的声音转化成电信号。Audio中,转换器是loudspeaker和microphone.
1.5 采样率转换
downsample
重采样,sink sample rate < source sample rate.
Nyquist frequency
奈奎斯特抽样定律
resample
重采样,采样率转换器的同义词
resampling
转换采样率的过程
sample rate converter
重采样的器件
sink
重采样(resampler)的输出
source
重采样的输入
upsample
重采样, sink sample rate > source sample rate.
2. Android特有的术语
包含只在Android audio中使用的术语和在Android中有特殊含义的通用术语。
ALSA
在Android中,ALSA涉及到audio 的kernel和driver部分,不涉及用户空间。参考 tinyalsa.
audio device
基于HAL实现的audio 输入输出流的终点
AudioEffect
android.media.audiofx.AudioEffect
AudioFlinger
audio sound服务的实现,它运行在mediaserver进程中
audio focus
管理多个独立应用之间audio相互作用的一系列API。可以参考开发者网站
https://developer.android.com/training/managing-audio/audio-focus.html 的内容和AudioManager.java中的相关内容。
AudioMixer
AudioFinger的模块,用于组合多个track和降低音量,音效。
audio policy
所有audio策略的执行者,比如打开一个新的I/O, 重新路由和音量管理。
AudioRecord
从输入设备比如麦克风接收数据的API,数据通常是PCM形式,参考
AudioRecord.java
AudioResampler
AudioFlinger中的模块,用于重采样。
audio source
代表抓取音频输入的一系列常量的集合,比如MIC,VOICE_CALL. API level 21及以后,更偏向于使用audio attributes.
AudioTrack
发送数据到输出设备比如speaker的API,数据通常是PCM形式,参考
AudioTrack.java
audio_utils
音频工具库的功能,如PCM格式转换,WAV文件I / O和非阻塞FIFO,
这些在很大程度上是独立于Android平台。
client
通常指应用,然而,一个audioflinger client可以使跑在mediaserver进程中的线程。
HAL
硬件抽象层
FastCapture
AudioFlinger中的线程,发送音频数据到低延迟的fast tracks。
FastMixer
和FastCapture相反
fast track
在某些设备和路由上面具有更少特征的带有低延迟特性的AudioTrack或者AudioRecord client
MediaPlayer
比AudioRecord更高lever的API.
media.log
AudioFlinger的debug功能
mediaserver
Android系统进程,包含媒体相关的服务,比如AudioFlinger.
NBAIO
Non-blocking audio input/output. AudioFlinger端口的抽象。
normal mixer
AudioFlinger的一个进程,服务于大部分的全功能AudioTrack客户端。
OpenSL ES
silent mode
用于可以设置的功能,用来使来电铃声和通知静音,不影响播放音乐,视频和游戏。
SoundPool
android.media.SoundPool
Stagefright
见https://source.android.com/devices/media/index.html
StateQueue
AudioFlinger的一个模块,用于同步不同线程的状态。NBAIO用来传输数据,StateQueue用来传输控制信息。
Strategy
音频策略,由AudioPolicyService控制
stream type
流类型,见AudioManager.java
tee sink
详见https://source.android.com/devices/audio/debugging.html#teeSink
tinyalsa
ALSA的精简版
ToneGenerator
播放DTMF信号,见android.media.ToneGenerator
track
Audio stream,由AudioTrack或者AudioRecord API控制
volume attenuation curve
音量衰减曲线
volume index
用来表示流的相对音量的无符号整数。
注: 只是粗略的介绍各个术语,详细的解释可以在需要的时候细查。