DSP

Android Audio 2: Audio相关术语

2019-07-13 17:05发布

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实现者和终端用户应该注意这些术语。
  • Bluetooth
    短距离无线技术,关于audio相关的蓝牙配置和蓝牙协议,参考与音乐相关的A2DP和通话相关的SCO, 以及AVRCP.详细的信息可参考:
    https://en.wikipedia.org/wiki/List_of_Bluetooth_protocols
  • DisplayPort
    视频电子标准协会定义的数字显示接口
  • dongle
    挂断其他设备的小部件
  • HDMI
    高清晰度多媒体接口。传输音频和视频数据的接口,对于手机设备,需要使用一个迷你HDMI或者MHL连接器
  • Intel HDA
    Intel High Definition Audio(不要和普通的HD audio或者High-resolution audio混淆),参见:https://en.wikipedia.org/wiki/Intel_High_Definition_Audio
  • interface
    接口把信号从一种形式转换为另一种形式,常用的接口包括USB音频接口和MIDI接口
  • line level
    通过音频组件,而不是transducers的模拟信号的强度。
  • MHL
    移动终端高清影音接口,移动终端音频/视频接口,通常建立在微型USB连接器上。
  • phone connector
    迷你或者超迷你的组件,用于连接设备到有些耳机等。
  • SlimPort
    连接迷你USB到HDMI的适配器
  • S/PDIF
    Sony/Philips Digital Interface Format. 互连没有压缩的PCM.参见:
    http://en.wikipedia.org/wiki/S/PDIF,S/PDIF是AES3的一个变种
  • Thunderbolt
    与USB,HDMI同级的多媒体接口,用于连接高端设备。参见:
    http://en.wikipedia.org/wiki/Thunderbolt_%28interface%29
  • TOSLINK
    和S/PDIF一起使用的音频电缆,它是可选的。
  • USB
    Universal Serial Bus.

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
    用来表示流的相对音量的无符号整数。

注: 只是粗略的介绍各个术语,详细的解释可以在需要的时候细查。