模拟语音 ======== 作者:许文婷 概述 ---- Air724UG 内置3种音频输出模式,分别为扬声器(SPK)输出,耳机(HP)输出和听筒(RECEIVER)输出,详细模拟音频管脚定义如下: 管脚定义 -------- +-------------+--------+-----+-------------+----------+------+ | 管脚名 | 管脚号 | I/O | 管脚描述 | 电气特性 | 备注 | +=============+========+=====+=============+==========+======+ | SPK- | 18 | O | Speaker差 | | | | | | | 分信号输出 | | | | | | | ,可以直接 | | | | | | | 驱动8欧姆Sp | | | | | | | eaker,最大 | | | | | | | 输出功率1W | | | +-------------+--------+-----+-------------+----------+------+ | SPK+ | 19 | O | | | | +-------------+--------+-----+-------------+----------+------+ | EAR_P | 101 | O | 听筒输出 | | | +-------------+--------+-----+-------------+----------+------+ | EAR_N | 102 | O | | | | +-------------+--------+-----+-------------+----------+------+ | HP_R | 103 | O | 耳机输出 | | | +-------------+--------+-----+-------------+----------+------+ | HP_L | 112 | O | | | | +-------------+--------+-----+-------------+----------+------+ | MIC- | 21 | I | 麦克 | | | | | | | 输入,已内 | | | | | | | 置偏置电路 | | | +-------------+--------+-----+-------------+----------+------+ | MIC+ | 22 | I | | | | +-------------+--------+-----+-------------+----------+------+ | HEADMIC_N | 104 | I | 麦克输入 | | | | | | | ,需要加外 | | | | | | | 部偏置电路 | | | +-------------+--------+-----+-------------+----------+------+ | HEADMIC_P | 113 | I | | | | +-------------+--------+-----+-------------+----------+------+ | H | 114 | O | 给HEADMIC | | | | EADMIC_BIAS | | | 提 | | | | | | | 供偏置电压 | | | +-------------+--------+-----+-------------+----------+------+ | HEA | 105 | I | 耳 | | | | DMIC_IN_DET | | | 机按键检测 | | | +-------------+--------+-----+-------------+----------+------+ | HP_DET | 106 | I | 耳 | | | | | | | 机插入检测 | | | +-------------+--------+-----+-------------+----------+------+ 参考设计 -------- 耳机参考电路 ------------ **耳机参考电路一:** |undefined| 上图是目前Air724UG 的开发板上采用的耳机接口电路: ``HEADMIC_BIAS 给耳机麦克提供偏置电压;`` ``HEADMIC_IN_DET 用来检测耳机按键,HEADMIC_IN_DET 内部是一个ADC,故 HEADMIC_IN_DET 还可以支持多功能按键;`` ``HP_DET 用来检测耳机插入,当耳机插入时为低,当耳机拔出时为高;`` 这个耳机电路存在一个弊端,由于耳机拔出后需要给22uF电容充电后HP_DET 才能为高,导致耳机拔出检测会延迟6-10秒左右的时间,故推荐将耳机电路修改成下面的参考电路二 **耳机参考电路二:** |image1| 更换了耳机插座的型号,换成检测管脚是常开类型的耳机插座; ``未插入耳机时,耳机插座的 Pin3 和 Pin4 之间处于断开状态,HP_DET 由内部拉高,为高电平;`` ``插入耳机后,耳机插座的 Pin3 和 Pin4 之间导通,并连接到左声道的耳机喇叭,左声道的耳机喇叭等效于32欧姆的接地电阻,故 HP_DET 被拉低变成低电平;`` ``拔出耳机后,耳机插座的 Pin3 和 Pin4 之间断开,因为不需要给22uF 的电容充电,HP_DET 马上变成了高电平,不会出现耳机拔出检测过慢的问题。`` 耳机种类 -------- 耳机根据第3段和第4段的接线定义不同可以分为 国标OMTP 和 美标CTIA 两种,在设计耳机插座的电路后需要选择相应的耳机。 Air724UG 的开发板是按照国标OMTP设计的,故只能使用 OMTP标准的耳机。 |image2| 耳机接口类型推荐 ---------------- |image3| 注意: ``1.NO: Normally-open type(常开型)`` ``2.Headmic_in用于检测耳机类型,也可在耳机插入时使用。`` HP_DET level logic: ======= ======== ======= Headset Plug out Plug in ======= ======== ======= HP_DET 1 0 ======= ======== ======= SPK 参考电路 ------------ .. image:: http://openluat-luatcommunity.oss-cn-hangzhou.aliyuncs.com/images/20200811114900920_spk1.png 注意: ``1. 磁珠和电容必须同时使用,如果没有EMI问题可以删除`` ``2. 47pf可以换成TVS/MLV,用于解决ESD问题。`` ``3. SPK通路默认是classD的输出,如果外接音频功会有噪音。`` Receiver参考电路 ---------------- |image4| 注意: ``1.R3111和R3112可以换成磁珠用于抑制RF干扰`` ``2. C3126是用于射频噪声滤波和差模噪声抑制`` ``3. C3127、C3128用于抑制射频干扰。需要通过一个单独的过孔直接连接到主GND。`` 外接PA参考设计 -------------- Air724UG内置3种音频输出模式可通过AT指令进行切换。扬声器(SPK)输出,耳机(HP)输出和听筒(RECEIVER)输出,都可以作为外部PA的功放输入端,用户可以根据使用的外接PA的规格进行设计。\ **建议外接差分输入功放优先使用(RECEIVER)通道,如果是单端方式建议使用耳机右声道(HP_R)** 以艾为的AW8733A为例,参考设计如下: |image5| 该芯片中INN,INP分别为功放的负输入端和功放的正输入端。与模块参考连接方式如下: |image6| 推荐使用差分输入方式,使用SPK通道作为驱动时,外部PA的INN连接模块SPK-,INP连接SPK+; 使用听筒(RECEIVER)通道作为驱动时,外部PA的INN连接模块的EAR_N,INP连接EAR_P。\ **建议外接功放优先使用(RECEIVER)通道** 注意: ``1.耳机通道只可作为单端输入使用,推荐使用耳机右声道(HP_R)。`` ``2. 如果用SPK通道外接功放需要切换成classAB的输出方式:audiocore.setpa(audiocore.CLASS_AB)`` AT版本相关控制指令 ------------------ ##TTS(Text To Speech)功能:AT+CTTS **语法规则** ======== =========================================== ====== 命令类型 语法 返回 ======== =========================================== ====== 设置命令 AT+CTTS=[,] OK 查询指令 AT+CTTS? +CTTS: \ OK 测试命令 AT+CTTSPARAM=? OK URC 当 TTS 播放完毕,会有以下 URC 上报:+CTTS:0 ======== =========================================== ====== **参数定义** ==== =========== ==== =============================================== 参数 定义 取值 对取值的说明 ==== =========== ==== =============================================== \ TTS工作模式 0 停止播放TTS \ 1 播放TTS,使用UCS2编码 \ 2 播放TTS,使用GBK编码(中文)和ASCII编码(数字) \ TTS文本 中文和数字 \ TTS工作状态 0 TTS非播放状态 \ 1 TTS播放状态 ==== =========== ==== =============================================== **举例** +-----------------------+-----------------------+-----------------------+ | 命令(→)/返回(←) | 实例 | 解释和说明 | +=======================+=======================+=======================+ | → | AT+CTTS= | 播放数字和中文。注: | | | 2,“123,欢迎你的到来” | 1.目前暂时无法播放英 | | | | 文,中的英文发音不是 | | | | 单词,而是一个一个分 | | | | 离的字母。2.AT版本124 | | | | 9之后支持通话中向对端 | | | | 播放TTS,只需要在通话 | | | | 过程中调用AT+CTTS即可 | +-----------------------+-----------------------+-----------------------+ | ← | OK | | +-----------------------+-----------------------+-----------------------+ | ←(URC) | +CTTS:0 | 播放 | | | | 完毕,会有这个URC上报 | +-----------------------+-----------------------+-----------------------+ | → | AT+CTTS=0 | 也可以在播放过程 | | | | 中用这个命令终止播放 | +-----------------------+-----------------------+-----------------------+ | ← | OK | | +-----------------------+-----------------------+-----------------------+ ##设置 TTS 播放参数: AT+CTTSPARAM **语法规则** ======== =================== =================== 命令类型 语法 返回 ======== =================== =================== 设置命令 AT+CTTSPARAM=,,,[,] OK 查询指令 AT+CTTSPARAM? +CTTSPARAM:,,, , OK 测试命令 AT+CTTSPARAM=? OK ======== =================== =================== **参数定义** +-----------------+-----------------+-----------------+-----------------+ | 参数 | 定义 | 取值 | 对取值的说明 | +=================+=================+=================+=================+ | | TTS播放音量 | 0-100 | 缺省值为50 | +-----------------+-----------------+-----------------+-----------------+ | | TTS播 | 0 | auto read | | | 放模式,range: | | digit, and read | | | 0-3 | | digit based on | | | | | number rule | | | | | first | +-----------------+-----------------+-----------------+-----------------+ | | | 1 | auto read | | | | | digit, and read | | | | | digit based on | | | | | telegram rule | | | | | first | +-----------------+-----------------+-----------------+-----------------+ | | | 2 | read digit | | | | | based on | | | | | telegram rule | +-----------------+-----------------+-----------------+-----------------+ | | | 3 | read digit | | | | | based on number | | | | | rule | +-----------------+-----------------+-----------------+-----------------+ | | TTS播放音高 | 1-100 | 缺省值为50 | +-----------------+-----------------+-----------------+-----------------+ | | TTS播放速度 | 1-100 | 缺省值为50 | +-----------------+-----------------+-----------------+-----------------+ | | TTS播放通道 | 0 | main channel | +-----------------+-----------------+-----------------+-----------------+ | | | 1 | aux channel | +-----------------+-----------------+-----------------+-----------------+ ##语音文件播放: AT+CAUDPLAY **语法规则:** ======== =============== ========================== 命令类型 语法 返回 ======== =============== ========================== 设置命令 AT+CAUDPLAY=[,] OK 查询命令 AT+CAUDPLAY? +CAUDPLAY: \ OK 测试命令 AT+CAUDPLAY=? +CAUDPLAY: (取值范围列表), \ OK ======== =============== ========================== **参数定义:** ==== ============ ==== ======================== 参数 定义 取值 对取值的说明 ==== ============ ==== ======================== \ 使用模式 1 开始播放(start) \ 2 停止播放(stop) \ 3 暂停播放(pause) \ 4 恢复播放(resume) \ 音频文件名字 PCM,WAV,MP3。 需要加后缀 ==== ============ ==== ======================== \*\* 举例:*\* +----------------------+----------------------+----------------------+ | 命令(→)/ 返回(←) | 实例 | 解释和说明 | +======================+======================+======================+ | → | A | 创建音频文件 | | | T+FSCREATE=“111.mp3” | | +----------------------+----------------------+----------------------+ | ← | OK | | +----------------------+----------------------+----------------------+ | → | AT+FSWRITE | 输入音频文件。 | | | =“111.mp3”,0,6314,20 | 这 | | | | 里长度6314只是举例, | | | | 请以实际为准 | +----------------------+----------------------+----------------------+ | ← | > | 收到该指令后发送数据 | +----------------------+----------------------+----------------------+ | ← | OK | | +----------------------+----------------------+----------------------+ | → | AT+ | 播放音频文件 注: | | | CAUDPLAY=1,“111.mp3” | 音 | | | | 频文件名字需要加后缀 | +----------------------+----------------------+----------------------+ | ← | OK | | +----------------------+----------------------+----------------------+ | → | AT+CAUDPLAY=3 | 暂停播放 | +----------------------+----------------------+----------------------+ | ← | OK | | +----------------------+----------------------+----------------------+ | → | AT+CAUDPLAY=4 | 恢复播放 | +----------------------+----------------------+----------------------+ | ← | OK | | +----------------------+----------------------+----------------------+ | → | AT+CAUDPLAY=2 | 终止播放 | +----------------------+----------------------+----------------------+ | ← | OK | | +----------------------+----------------------+----------------------+ 语音通道切换: AT+AUDCH ----------------------- **语法规则:** ======== ========== ============================= 命令类型 语法 返回 ======== ========== ============================= 设置命令 AT+AUDCH=, OK 查询命令 AT+AUDCH? +AUDCH: , \ OK 测试命令 AT+AUDCH=? +AUDCH: (range of s,list ofs) \ OK ======== ========== ============================= \*\* 参数定义: \*\* ==== ============ ==== ========================== 参数 定义 取值 对取值的说明 ==== ============ ==== ========================== \ 音频输出通道 0 通道 0, 听筒(receiver) \ 1 通道 1, 耳机(headphone) \ 2 通道 2, 喇叭(speaker) \ 音频输入通道 0 main mic \ 1 auxilary mic \ 2 headphone mic left \ 3 headphone mic right ==== ============ ==== ========================== RECEIVER 音量控制: AT+CLVL --------------------------- \*\* 语法规则:*\* ======== ========= ================= 命令类型 语法 返回 ======== ========= ================= 设置命令 AT+CLVL= OK 查询命令 AT+CLVL? +CLVL: \ OK 测试命令 AT+CLVL=? +CLVL: (取值范围) \ OK ======== ========= ================= **参数定义:** ==== ======== ===== ======================================= 参数 定义 取值 对取值的定义 ==== ======== ===== ======================================= \ 音量等级 0~100 0 声音最小, 100 声音最大。 缺省值为 60 ==== ======== ===== ======================================= SPK 音量控制: AT+CRSL ---------------------- \*\* 语法规则:*\* ======== ========= ================= 命令类型 语法 返回 ======== ========= ================= 设置命令 AT+CRSL= OK 查询命令 AT+CRSL? +CRSL: \ OK 测试命令 AT+CRSL=? +CRSL: (取值范围) \ OK ======== ========= ================= **参数定义:** ==== ======== ===== ======================================= 参数 定义 取值 对取值的定义 ==== ======== ===== ======================================= \ 音量等级 0~100 0 声音最小, 100 声音最大。 缺省值为 60 ==== ======== ===== ======================================= SPK 通道输出模式控制:AT+SPKPA= ------------------------------- ``注意:版本号要大于等于 1251,才支持此命令,需要重启生效`` ==== ============ ==== ============ 参数 定义 取值 对取值的说明 ==== ============ ==== ============ \ 音频功放类型 0 CLASSAB \ 1 CLASSD \ 2 CLASSK ==== ============ ==== ============ 举例: ^^^^^^ :: AT+SPKPA=0 ​ OK ​ AT+SPKPA? ​ +SPKSPA: 0 ​ OK LUAT开发相关接口 ---------------- 相关的audio控制接口可以参考LUAT_API AUDIO章节 相关示例,请参考:raw-latex:`\script`\_LuaTask_VX.X.X:raw-latex:`\demo`:raw-latex:`\audio` ###audio.play 播放音频 - 语法 ``audio.play(priority,type,path,vol,cbFnc,dup,dupInterval)`` - 参数 +-----------------------------------+-----------------------------------+ | 参数 | 释义 | +===================================+===================================+ | priority | 音频优先级,数值越大,优先级越高 | +-----------------------------------+-----------------------------------+ | type | 音频类型,目前仅支 | | | 持“FILE”、“TTS”、“TTSCC”,“RECORD” | +-----------------------------------+-----------------------------------+ | path | 音 | | | 频文件路径,跟typ有关,typ为“FIL | | | E”时:表示音频文件路径,typ为“TTS | | | ”时:表示要播放的UTF8编码格式的数 | | | 据,typ为“TTSCC”时:表示要播放给 | | | 通话对端的UTF8编码格式的数据,ty | | | p为“RECORD”时:表示要播放的录音id | +-----------------------------------+-----------------------------------+ | vol | 播放音量,取值范围0到7,0为静音 | +-----------------------------------+-----------------------------------+ | cbFnc | 音频播 | | | 放结束时的回调函数,cbFnc(result) | +-----------------------------------+-----------------------------------+ | dup | 是否循环播 | | | 放,true循环,false或者nil不循环 | +-----------------------------------+-----------------------------------+ | dupInterval | 循环播放间隔(单位 | | | 毫秒),dup为true时,此值才有意义 | +-----------------------------------+-----------------------------------+ - 返回 无 audio.stop ~~~~~~~~~~ 停止音频播放 - 语法 ``audio.stop(cbFnc)`` - 参数 +-------+-------------------------------------------------------------+ | 参数 | 释义 | +=======+=============================================================+ | cbFnc | 停止音频播放的回调函数(停止 | | | 结果通过此函数通知用户),回调函数的调用形式为cbFnc(result) | +-------+-------------------------------------------------------------+ - 返回 无 ###audio.setVolume 设置喇叭音量等级 - 语法 ``audio.setVolume(vol)`` - 参数 ==== ==================== 参数 释义 ==== ==================== vol 音量值为0-7,0为静音 ==== ==================== - 返回 设置成功返回true,失败返回false ###audio.setCallVolume 设置通话音量等级 - 语法 ``audio.setCallVolume(vol)`` - 参数 ==== ==================== 参数 释义 ==== ==================== vol 音量值为0-7,0为静音 ==== ==================== - 返回 设置成功返回true,失败返回false ###audio.setMicVolume 设置麦克音量等级 - 语法 ``audio.setMicVolume(vol)`` - 参数 ==== ===================== 参数 释义 ==== ===================== vol 音量值为0-15,0为静音 ==== ===================== - 返回 设置成功返回true,失败返回false ###audio.getVolume 获取喇叭音量等级 - 语法 ``audio.getVolume()`` - 返回 喇叭音量等级 ###audio.getCallVolume 获取通话音量等级 - 语法 ``audio.getCallVolume()`` - 返回 通话音量等级 audio.getMicVolume ~~~~~~~~~~~~~~~~~~ 获取麦克音量等级 - 语法 ``audio.getMicVolume(vol)`` - 返回 麦克音量等级 ###audio.setStrategy 设置优先级相同时的播放策略 - 语法 ``audio.setStrategy(strategy)`` - 参数 +----------+----------------------------------------------------------+ | 参数 | 释义 | +==========+==========================================================+ | strategy | 优先级相同时的 | | | 播放策略;0:表示继续播放正在播放的音频,忽略请求播放的 | | | 新音频;1:表示停止正在播放的音频,播放请求播放的新音频 | +----------+----------------------------------------------------------+ - 返回 nil ###audio.setTTSSpeed 设置TTS朗读速度 - 语法 ``audio.setTTSSpeed(speed)`` - 参数 ===== ======================= 参数 释义 ===== ======================= speed 速度范围为0-100,默认50 ===== ======================= - 返回 设置成功返回true,失败返回false ###audio.setChannel 设置音频输出通道 - 语法 ``setChannel(channel)`` - 参数 ======= =============================== 参数 释义 ======= =============================== channel 1:headphone耳机 2:speaker喇叭 ======= =============================== - 返回 nil ###audiocore.streamplay 向流播放管道中填充数据,具体用法参考demo_audio中的testAudioStream.lua - 语法 ``audiocore.streamplay(StreamType,data)`` - 参数 ========== ====================================== 参数 释义 ========== ====================================== StreamType audiocore.PCM \ audiocore.PCM \ audiocore.AMR \ audiocore.SPX \ audiocore.MP3 注:0021及之后版本才支持 data 音频数据 ========== ====================================== - 返回 设置成功返回true,失败返回false **注:流播放结束后需要调用audiocore.stop手动停止播放** ###audiocore.streamremain 查看流播放管道内剩余数据大小 - 语法 ``audiocore.streamremain()`` - 参数 无 - 返回 返回管道内剩余数据大小 CSDK开发相关接口 ---------------- 具体接口定义参考CSDK中iot_audio.h ###iot_auido_open_tch 在通话中打开语音 - 语法 ``BOOL iot_auido_open_tch( VOID );`` -参数 无 - 返回 TRUE: 成功, FALSE: 失败 ###iot_audio_close_tch 通话结束时调用,关闭语音 - 语法 ``BOOL iot_audio_close_tch( VOID ) { return IVTBL(close_tch)(); }`` - 参数 无 - 返回 成功返回TRUE,失败返回FALSE ###iot_audio_play_tone 播放TONE音 - 语法 :: BOOL iot_audio_play_tone( E_AMOPENAT_TONE_TYPE toneType, UINT16 duration, E_AMOPENAT_SPEAKER_GAIN volume ); - 参数 ======== ========== 参数 释义 ======== ========== toneType TONE音类型 duration 播放时长 volume 播放音量 ======== ========== - 返回 成功返回TRUE,失败返回FALSE ###iot_audio_stop_tone 停止播放TONE音 - 语法 :: BOOL iot_audio_stop_tone( VOID ); - 参数 无 - 返回 成功返回TRUE,失败返回FALSE ###iot_audio_play_dtmf - 语法 :: BOOL iot_audio_play_dtmf( E_AMOPENAT_DTMF_TYPE dtmfType, UINT16 duration, E_AMOPENAT_SPEAKER_GAIN volume ); - 参数 ======== ======== 参数 释义 ======== ======== dtmfType DTMF类型 duration 播放时长 volume 播放音量 ======== ======== - 返回 成功返回TRUE,失败返回FALSE ###iot_audio_stop_dtmf 停止播放DTMF音 - 语法 :: BOOL iot_audio_stop_dtmf( VOID ); - 参数 无 - 返回 成功返回TRUE,失败返回FALSE ###iot_audio_play_music 播放音频 - 语法 :: BOOL iot_audio_play_music(T_AMOPENAT_PLAY_PARAM* playParam); - 参数 ========= ======== 参数 释义 ========= ======== playParam 播放参数 ========= ======== - 返回 成功返回TRUE,失败返回FALSE ###iot_audio_stop_music 停止音频播放 - 语法 :: BOOL iot_audio_stop_music( VOID ); - 参数 无 - 返回 成功返回TRUE,失败返回FALSE ###iot_audio_pause_music 暂停音频播放 - 语法 :: BOOL iot_audio_pause_music( VOID ); - 参数 无 - 返回 成功返回TRUE,失败返回FALSE ###iot_audio_resume_music 恢复音频播放 - 语法 :: BOOL iot_audio_resume_music( VOID ); - 参数 无 - 返回 成功返回TRUE,失败返回FALSE ###iot_audio_mute_speaker 设置扬声器静音 - 语法 :: BOOL iot_audio_mute_speaker( VOID ); - 参数 无 - 返回 成功返回TRUE,失败返回FALSE ###iot_audio_unmute_speaker 解除扬声器静音 - 语法 :: BOOL iot_audio_unmute_speaker( VOID ); - 参数 无 - 返回 成功返回TRUE,失败返回FALSE ###iot_audio_set_speaker_vol 设置扬声器的音量值 - 语法 :: BOOL iot_audio_set_speaker_vol( UINT32 vol ); - 参数 ==== ================ 参数 释义 ==== ================ vol 设置扬声器音量值 ==== ================ - 返回 成功返回TRUE,失败返回FALSE ###iot_audio_get_speaker_vol 获取扬声器的音量值 - 语法 :: BOOL iot_audio_get_speaker_vol( VOID ); - 参数 无 - 返回 返回扬声器的音量值 ###iot_audio_set_sph_vol 设置通话音量值 - 语法 :: BOOL iot_audio_set_sph_vol( UINT32 vol ); - 参数 ==== ============== 参数 释义 ==== ============== vol 设置通话音量值 ==== ============== - 返回 成功返回TRUE,失败返回FALSE ###iot_audio_get_sph_vol 获取通话的音量值 - 语法 :: BOOL iot_audio_get_sph_vol( VOID ); - 参数 无 - 返回 返回通话的音量值 ###iot_audio_set_channel 设置音频通道 - 语法 :: BOOL iot_audio_set_channel( E_AMOPENAT_AUDIO_CHANNEL channel ); - 参数 ======= ======== 参数 释义 ======= ======== channel 音频通道 ======= ======== - 返回 成功返回TRUE,失败返回FALSE ###iot_audio_get_current_channel 获取当前通道 - 语法 :: E_AMOPENAT_AUDIO_CHANNEL iot_audio_get_current_channel( VOID ); - 参数 无 - 返回 返回当前通道 ###iot_audio_rec_start 开始录音 - 语法 :: BOOL iot_audio_rec_start( E_AMOPENAT_RECORD_PARAM* param, AUD_RECORD_CALLBACK_T cb); - 参数 ===== ================ 参数 释义 ===== ================ param 录音参数 cb 获取录音数据回调 ===== ================ - 返回 成功返回TRUE,失败返回FALSE ###iot_audio_rec_stop 停止录音 - 语法 :: BOOL iot_audio_rec_stop(); - 参数 无 - 返回 成功返回TRUE,失败返回FALSE ###iot_audio_streamplay 流播放 - 语法 :: int iot_audio_streamplay(E_AMOPENAT_AUD_FORMAT playformat,AUD_PLAY_CALLBACK_T cb,char* data,int len); - 参数 ========== ============== 参数 释义 ========== ============== playformat 数据流类型 cb 数据流回调函数 data 数据流 len 数据流长度 ========== ============== - 返回 0: 播放长度 -1: 播放失败 -------------- 相关资料以及购买链接 -------------------- 相关开发板购买链接 `Air724UG开发板 `__ `Air724 开发板使用说明 `__ `相关软件资料下载 `__ 常见问题 -------- https://luatdoc.papapoi.com/638/ \* Q: spk的输出类型是什么? A:spk为差分输出,内部经过一个classD类功放 \* Q: spk通道外接功放有噪音? A:spk通道默认是classD的输出, 如果用SPK通道外接功放需要切换成classAB的输出方式:lua(V22版本以及以以后的版本):audiocore.setpa(audiocore.CLASS_AB) AT: AT+SPKPA=0 需要重启生效 \* Q: spk通道切换成classAB了但是单独方式接功放底噪偏大? A: SPK内部经过一级PA放大,外部再接功放时底噪会偏大。建议采用差分接法,如果只能采用单端接法,建议使用耳机右声道(HP_R) .. |undefined| image:: http://openluat-luatcommunity.oss-cn-hangzhou.aliyuncs.com/images/20210125231126919_Earphone1.png .. |image1| image:: http://openluat-luatcommunity.oss-cn-hangzhou.aliyuncs.com/images/20210125231617210_Earphone2.png .. |image2| image:: http://openluat-luatcommunity.oss-cn-hangzhou.aliyuncs.com/images/20201230180631973_耳机分类.png .. |image3| image:: http://openluat-luatcommunity.oss-cn-hangzhou.aliyuncs.com/images/20200811143201345_8888.png .. |image4| image:: http://openluat-luatcommunity.oss-cn-hangzhou.aliyuncs.com/images/20200811141753769_rr.png .. |image5| image:: http://openluat-luatcommunity.oss-cn-hangzhou.aliyuncs.com/images/20200918155250788_22.png .. |image6| image:: http://openluat-luatcommunity.oss-cn-hangzhou.aliyuncs.com/images/20200918170759215_28.png