使用场景:

        在现实生活中,音频(audio)主要用在两大场景中:语音(voice)和音乐(music)。语音主要用于沟通通信,如打电话,现在由于语音识别的发展,人机语音交互也是语音的一个应用,目前正在风口上,好多大厂都推出了智能音箱。音乐主要用于欣赏,如音乐播放。

        基础知识:

        1、采样和采样率:

  • 现在是数字时代,在音频处理时要先把音频的模拟信号变成数字信号,这叫A/D转换。要把音频的模拟信号变成数字信号,就需要采样。一秒钟内采样的次数称为采样频率。采样频率越高,越接近原始信号,但是也加大了运算处理的复杂度。采样频率可分为8kHZ 、16kHZ、 32kHZ、 44.1kHZ、 48kHZ等。44.1KHZ能支持所有的手机型号,对音频质量要求没那么高的话,可以使用低一点的采样率,比如语音识别一般采用的16KHZ。

        2.、编码制式和采样大小:

  • 采集来的数据当然使用PCM编码(脉冲代码调制编码,即PCM编码。PCM通过抽样、量化、编码三个步骤将连续变化的模拟信号转换为数字编码) 。Android支持的采样大小16bit 或者8bit,表示一个采样用多少bit存放,现在主流的采样大小都是16bit,在低质量的语音传输的时候8bit 足够了。

        3、声道(channel):

  • Android支持双声道立体声和单声道。MONO单声道,STEREO立体声。

        4、编解码 :

  • 通常把音频采样过程也叫做脉冲编码调制编码,即PCM(Pulse Code Modulation)编码,采样值也叫PCM值。 
  • 编码过程:模拟信号->抽样->量化->编码->数字信号

        5、压缩:

  • 如果把采样值直接保存或者发送,会占用很大的存储空间。以16kHz采样率16位采样位数单声道为例,一秒钟就有16/8*16000 = 32000字节。为了节省保存空间或者发送流量,会对PCM值压缩。
    目前主要有三大技术标准组织制定压缩标准:
    ITU:主要制定有线语音的压缩标准(g系列),有g711/g722/g726/g729等。
    3GPP:主要制定无线语音的压缩标准(amr系列等),有amr-nb/amr-wb。后来ITU吸纳了amr-wb,形成了g722.2。
    MPEG:主要制定音乐的压缩标准,有11172-3,13818-3/7,14496-3等。

        6、码率:

  • 码率 = 采样频率 * 采样位数 * 声道个数; 例:采样频率44.1KHz,位数16bit,立体声(双声道),未压缩时的码率 = 44.1KHz * 16bit * 2 =  176.4Kbps,即每秒要录制的资源大小,理论上码率和质量成正比.

      常用音频格式:

  • WAV 格式:音质高 无损格式 体积较大;
  • AAC(Advanced Audio Coding) 格式:相对于 mp3,AAC 格式的音质更佳,文件更小,有损压缩,一般苹果或者Android SDK4.1.2(API 16)及以上版本支持播放,性价比高;
  • AMR 格式:压缩比比较大,但相对其他的压缩格式质量比较差,多用于人声,通话录音;
  • mp3 格式:特点 使用广泛, 有损压缩。
  • Android支持的音频格式:
Format / CodecEncoderDecoderDetailsSupported File Type(s) / Container Formats
AAC LC Support for mono/stereo/5.0/5.1 content with standard sampling rates from 8 to 48 kHz. • 3GPP (.3gp)
• MPEG-4 (.mp4, .m4a)
• ADTS raw AAC (.aac, decode in Android 3.1+, encode in Android 4.0+, ADIF not supported)
• MPEG-TS (.ts, not seekable, Android 3.0+)
HE-AACv1 (AAC+)
(Android 4.1+)
HE-AACv2 (enhanced AAC+)   Support for stereo/5.0/5.1 content with standard sampling rates from 8 to 48 kHz.
AAC ELD (enhanced low delay AAC)
(Android 4.1+)

(Android 4.1+)
Support for mono/stereo content with standard sampling rates from 16 to 48 kHz
AMR-NB 4.75 to 12.2 kbps sampled @ 8kHz 3GPP (.3gp)
AMR-WB 9 rates from 6.60 kbit/s to 23.85 kbit/s sampled @ 16kHz 3GPP (.3gp)
FLAC
(Android 4.1+)

(Android 3.1+)
Mono/Stereo (no multichannel). Sample rates up to 48 kHz (but up to 44.1 kHz is recommended on devices with 44.1 kHz output, as the 48 to 44.1 kHz downsampler does not include a low-pass filter). 16-bit recommended; no dither applied for 24-bit. FLAC (.flac) only
GSM   Android supports GSM decoding on telephony devices GSM(.gsm)
MIDI   MIDI Type 0 and 1. DLS Version 1 and 2. XMF and Mobile XMF. Support for ringtone formats RTTTL/RTX, OTA, and iMelody • Type 0 and 1 (.mid, .xmf, .mxmf)
• RTTTL/RTX (.rtttl, .rtx)
• OTA (.ota)
• iMelody (.imy)
MP3   Mono/Stereo 8-320Kbps constant (CBR) or variable bit-rate (VBR) MP3 (.mp3)
Opus  
(Android 5.0+)
  Matroska (.mkv)
PCM/WAVE
(Android 4.1+)
8- and 16-bit linear PCM (rates up to limit of hardware). Sampling rates for raw PCM recordings at 8000, 16000 and 44100 Hz. WAVE (.wav)
Vorbis     • Ogg (.ogg)
• Matroska (.mkv, Android 4.0+)

 

        音频开发的主要应用:

  • 音频播放器
  • 录音机
  • 语音电话
  • 音视频监控应用
  • 音视频直播应用
  • 音频编辑/处理软件(ktv音效、变声, 铃声转换)
  • 蓝牙耳机/音箱

        音频开发的具体内容:

  • 音频采集/播放;
  • 音频算法处理(去噪、VAD检测、回声消除、音效处理、功放/增强、混音/分离,等等);
  • 音频的编解码和格式转换;
  • 音频传输协议的开发(SIP,A2DP、AVRCP,等等)。