模拟语音 ======== 概述 ---- 模块提供了两路模拟音频输入通道和三路模拟输出通道,支持通话、录音和播放等功能。 =================== ====== ====== ================================= 接口 接口名 接口号 作用 =================== ====== ====== ================================= **麦克模拟输入AIN** MIC+ 27 音频输入通道1,已内置麦克偏置电路 **麦克模拟输入AIN** MIC- 26 音频输入通道1,已内置麦克偏置电路 **喇叭输出AOUT** SPK+ 25 喇叭输出正端 **喇叭输出AOUT** SPK- 24 喇叭输出负端 =================== ====== ====== ================================= AIN可以用作麦克风输入或模拟音频信号输入。麦克风通常选用驻极体麦克风。AIN是差分输入。 AOUT通道可以直接驱动8欧姆的喇叭。AOUT通道为差分输出。 麦克风接口参考电路 ------------------ AIN通道内置驻极体麦克风偏置电压。麦克风通道参考电路下图所示: |image1| 音频输出接口参考电路 -------------------- SPK音频输出接口可以直接与驱动8欧姆喇叭。参考电路如下: |image2| AT版本相关控制指令 ------------------ ##设置 TTS 播放参数: AT+CTTSPARAM **语法规则** ======== =================== =================== 命令类型 语法 返回 ======== =================== =================== 设置命令 AT+CTTSPARAM=,,,[,] 查询指令 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 ==== ======== ===== ======================================= 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 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: 播放失败 -------------- .. |image1| image:: http://openluat-luatcommunity.oss-cn-hangzhou.aliyuncs.com/images/20200824144845033_112.png .. |image2| image:: http://openluat-luatcommunity.oss-cn-hangzhou.aliyuncs.com/images/20200824151251422_222.png