模拟语音¶
概述¶
模块提供了两路模拟音频输入通道和三路模拟输出通道,支持通话、录音和播放等功能。
接口 |
接口名 |
接口号 |
作用 |
---|---|---|---|
麦克模拟输入AIN |
MIC+ |
27 |
音频输入通道1,已内置麦克偏置电路 |
麦克模拟输入AIN |
MIC- |
26 |
音频输入通道1,已内置麦克偏置电路 |
喇叭输出AOUT |
SPK+ |
25 |
喇叭输出正端 |
喇叭输出AOUT |
SPK- |
24 |
喇叭输出负端 |
AIN可以用作麦克风输入或模拟音频信号输入。麦克风通常选用驻极体麦克风。AIN是差分输入。 AOUT通道可以直接驱动8欧姆的喇叭。AOUT通道为差分输出。
麦克风接口参考电路¶
AIN通道内置驻极体麦克风偏置电压。麦克风通道参考电路下图所示:
音频输出接口参考电路¶
SPK音频输出接口可以直接与驱动8欧姆喇叭。参考电路如下:
AT版本相关控制指令¶
##设置 TTS 播放参数: AT+CTTSPARAM
语法规则
命令类型 |
语法 |
返回 |
---|---|---|
设置命令 |
AT+CTTSPARAM=,,,[,] |
|
查询指令 |
AT+CTTSPARAM? |
+CTTSPARAM:,,, , OK |
测试命令 |
AT+CTTSPARAM=? |
OK |
参数定义
参数 |
定义 |
取值 |
对取值的说明 |
---|---|---|---|
TTS播放音量 |
0-100 |
缺省值为50 |
|
TTS播 放模式,range: 0-3 |
0 |
auto read digit, and read 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: 播放失败