声音无时无刻不充斥在我们的生活中,人类可以通过耳朵听取声音,可以通过嘴巴发出声音,如唱歌和读书。同样的,计算机可以通过麦克风录制声音,可以通过喇叭发出声音,比如音乐播放,或将一段文字通过语音播放出来。
计算机对音频信号的处理便涉及到音频的采样、编码、解码、文本转语音、模拟信号输出等各种音频相关的技术手段,本文将着重对 QuecPython 支持的音频技术进行原理和应用的阐述。
DAC(Digital-Analog-Converter)是数字到模拟转换器的缩写,它的作用是将数字信号转换成模拟信号。 音频DAC是一种将数字音频信号转换为模拟音频信号的电路。它的工作原理一般分为三个步骤,即解码、滤波和放大。
音频DAC的性能指标主要有:
ADC(Analog-Digital-Converter)是模拟到数字转换器的缩写,它的作用是将模拟信号转换成数字信号。 它的工作原理一般分为四个步骤,即采样、保持、量化和编码。
采样:按照一定的频率,对输入的模拟信号进行离散化,得到一系列采样值。
保持:将采样值暂时存储在一个电容上,以便后续的量化和编码。
量化:将采样值按照一定的规则,分成若干个等级,并赋予每个等级一个数值,这个数值就是量化值。
编码:将量化值用二进制数表示,得到数字信号。 音频ADC的性能指标主要有:
位数:表示编码后的数字信号有多少位二进制数,决定了量化的精度和动态范围。
采样率:表示每秒钟采样多少次,决定了信号的频带宽度。
信噪比:表示数字信号中有效信号与噪声的比例,反映了信号的质量。
总谐波失真:表示数字信号中谐波失真与有效信号的比例,反映了信号的线性度。 音频ADC的选型要根据具体的应用场景和需求来确定。一般来说,高端音频设备需要高位数、高采样率、高信噪比和低失真的音频ADC,而低端音频设备则可以使用低位数、低采样率、低信噪比和高失真的音频ADC。
数字音频接口的作用是将数字音频信号在不同的设备之间进行传输,例如DAC、ADC、DSP、音频处理器、音频播放器等。数字音频接口可以提高音频信号的抗干扰能力,减少信号损失和噪声,提高音质和效率。数字音频接口也可以支持多声道和高采样率的音频信号,满足不同的应用需求。常见的数字音频接口有以下几种:
目前支持QuecPython开发方式的模组主要支持PCM接口,可用于外接Codec(音频编解码器芯片)。引脚定义如下,
引脚名 | I/O | 描述 |
---|---|---|
PCM_CLK | DO | PCM 时钟 |
PCM_SYNC | DO | PCM 帧同步 |
PCM_DIN | DI | PCM 数据输入 |
PCM_DOUT | DO | PCM 数据输出 |
不同平台支持PCM通道数如下:
平台 | I2S | PCM |
---|---|---|
EC600M-CN系列 | 0 | 1 |
EC800M-CN系列 | 0 | 1 |
EC600U系列 | 0 | 1 |
EG912U-GL系列 | 0 | 1 |
EG915U系列 | 0 | 1 |
EC200U系列 | 0 | 1 |
EC200A系列 | 0 | 1 |
EC600E-CN系列 | 0 | 1 |
EC800E-CN系列 | 0 | 1 |
BG95系列 | 0 | 1 |
BG600L-M3系列 | 0 | 1 |
EC600G系列 | 0 | 1 |
EC800G-CN系列 | 0 | 1(0或1,可选) |
BC25系列 | 0 | 0 |
BC95系列 | 0 | 0 |
EG912N-EN系列 | 0 | 1 |
EG915N系列 | 0 | 1 |
Codec(音频编解码器芯片)主要用于对音频信号进行数字化和还原。音频编解码器一般由两部分组成:ADC(模拟-数字转换器)和DAC(数字-模拟转换器)。ADC负责将模拟信号(如麦克风、线路输入等)转换为数字信号(如PCM等),DAC负责将数字信号(如I2S、SPDIF等)转换为模拟信号(如耳机、扬声器等)。部分模组内部已经内置了一路Codec,此时模组可以直接输入输出音频模拟信号,如下图:
当模组内部不带内置Codec时,或者需要使用两路Codec时,可以使用PCM或者I2S接口外接Codec。此时外部输入输出模拟信号需要和Codec连接,如下图:
音频DAC是一种音频数模转换器,即一种将数字信号转换为模拟信号的装置,可以将存储在数字媒体中的音频数据,如CD、DVD、MP3等,转换为可以通过扬声器或耳机输出的模拟信号,使人们可以听到声音。模组可以通过PCM或者I2S接口外接DAC,如下图:
PWM音频是一种利用PWM(脉冲宽度调制)信号来播放和处理音频的方法,无需使用外部的音频DAC(数模转换器)芯片,适用于对音质要求不高而对成本敏感的应用。
PWM音频的主要原理如下:
PA(Power Amplifier)音频功率放大器的作用是把来自音源或前级放大器的弱信号放大,推动音箱放声。模组或者Codec输出的音频模拟信号不够强,需要音频功率放大器(PA)的控制和优化,以提高音频输出的质量和效率,保护音频器件不受损坏。当模组对外输出音频,如播放音频文件或者使用TTS时,需要打开PA。当模组在录音状态时则需要关闭PA可以降低功耗,以及避免底噪被PA放大导致杂音。
音频播放是指使用音频编解码器将音频文件或音频流转换为模拟信号,通过输出通道(如听筒、耳机、喇叭等)播放出来的过程。
语音电话是指使用语音编解码器将语音信号转换为数字信号,通过网络传输到对方,再由对方的语音编解码器还原为语音信号的过程。 语音电话的更多接口和详细使用方法见voiceCall - 电话功能。
外部传入的声音通过麦克风的输入设备转化为电信号后,再通过Codec转化为数字信号传递给模组,模组将数字信号转化为不同格式(如AMR、WAV)的音频文件存储到Flash上。 录音的原理是将声音信号转换为电信号或数字信号,然后存储在某种介质上,以便于回放或处理。
TTS是Text To Speech的缩写,即文本转语音,是一种能把文字内容转换为语音输出的技术。当前TTS模块主要包含如下接口:
使用注意事项:
音频校准工具可调整内置 codec 输入增益(包含模拟增益,adc增益),输出增益(包含模拟增益,dac增益,算法增益),侧音增益。生效模式分为实时生效模式,和非实时生效模式,通过 API控制。其中非实时生效模式下,调整的参数将会在下次播放/通话时才能生效。工具可适配整多种应用场景,和多种输入/输出通道。音频工具调整好参数后,可以直接固定到NV文件中,作为默认音频参数。
目前ASR平台可以通过CATStuido软件中的CAT-Audio工具上进行音频参数的校准。主要功能有:
展锐平台使用AudioCalibrator软件去进行音频参数的标定。 Codec参数校主要包含: 内置codec输入增益(atctst_aud_codec_get_ingain): 输入增益即通话模式下的MIC增益,该增益在音乐播放模式下不可调。如下图,可以修改模拟增益和adc增益。不同通道下的模拟增益范围不同,adc增益范围相同。值不可过大,否则会造成输入失真。
内置codec输出增益(atctst_aud_codec_get_outgain): 输出增益在通话模式,或者音乐播放模式下均可调。输出增益与音量等级相关,当前支持0~11级音量,分别对应增益列表中的outGains[0] ~ outGains[11]。用户若要重新调整音量增益,可以调整对应音量等级下的dac,ana与alg增益。Alg调到最小可以实现静音。DAC的值不建议超过63,易造成失真。用户可根据应用场景,设置不同的增益组合。建议可保持ana与alg不变,调整dac增益。
侧音增益(atctst_aud_codec_get_sidetonegain): 侧音增益用于通话场景。侧音默认关闭,客户若需要侧音,可在此调整。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。