public class AILocalSignalAndWakeupEngine extends BaseEngine
mBaseProcessor, tagSuffix
Modifier and Type | Method and Description |
---|---|
void |
addOrUpdateWakeupword(java.util.List<WakeupWord> wakeupWords) |
void |
addOrUpdateWakeupword(WakeupWord... wakeupWord)
动态更新唤醒词
|
static AILocalSignalAndWakeupEngine |
createInstance()
创建前端信号处理引擎对象
|
void |
destroy()
销毁信号处理模块和唤醒引擎
该方法会停止录音机和销毁录音机
|
void |
feedData(byte[] data,
int size)
传入数据,在不使用SDK录音机时调用
|
void |
forceRequestWakeupResult()
强制请求唤醒结果,即使没有唤醒也会给出唤醒词为null的结果
|
int |
getDriveMode()
获取 驾驶模式,只有车载双麦模块有这个功能
|
FespxProcessor |
getFespxProcessor() |
java.lang.String |
getTag() |
int |
getValueOf(java.lang.String param)
|
int |
getVpCallbackLength()
获取vprintcut回调输出tlv数据包长度,资源需要带声纹。
每次输出时该长度固定,输入声纹时也需要保持该长度
|
WakeupWord[] |
getWakeupword() |
java.util.Collection<WakeupWord> |
getWakeupwordList() |
void |
init(AILocalSignalAndWakeupConfig config,
AILocalSignalAndWakeupListener listener) |
void |
removeWakeupword(java.util.List<WakeupWord> wakeupWords) |
void |
removeWakeupword(java.lang.String... wakeupWord) |
void |
removeWakeupword(WakeupWord... wakeupWord)
移除唤醒词
|
void |
resetDriveMode() |
void |
setDynamicParam(java.util.Map<java.lang.String,?> dynamicParam)
动态设置唤醒参数,可以在引擎初始化成功后动态设置
|
void |
setDynamicParam(java.lang.String json) |
void |
setDynamicParam(java.lang.String[] wakeupWord,
float[] threshold,
float[] threshold2,
int[] majors)
动态调整参数
|
void |
setDynamicParam(java.lang.String[] wakeupWord,
float[] threshold,
float[] threshold2,
int[] majors,
boolean vad)
动态设置参数
|
void |
setDynamicParam(java.lang.String[] wakeupWord,
float[] threshold,
int[] majors)
动态调整参数
|
void |
setDynamicParamEnv(java.util.Map<java.lang.String,?> dynamicParam)
动态调整参数,可以用来设置唤醒词,阈值等
|
void |
setWakeupword(java.util.List<WakeupWord> wakeupWords) |
void |
setWakeupword(WakeupWord... wakeupWord)
动态设置唤醒词
|
void |
start(AILocalSignalAndWakeupIntent aiLocalSignalAndWakeupIntent)
启动信号处理模块和唤醒引擎
|
void |
stop()
停止信号处理模块和唤醒引擎
该方法会停止接收录音数据和停止信号处理,唤醒,程序退出时可以调用
|
cancel, init, initTAG, parseConfig, parseIntent, start
public java.lang.String getTag()
getTag
in class BaseEngine
public static AILocalSignalAndWakeupEngine createInstance()
public FespxProcessor getFespxProcessor()
public void init(AILocalSignalAndWakeupConfig config, AILocalSignalAndWakeupListener listener)
public void start(AILocalSignalAndWakeupIntent aiLocalSignalAndWakeupIntent)
aiLocalSignalAndWakeupIntent
- 前端信号处理参数AILocalSignalAndWakeupIntent
public int getValueOf(java.lang.String param)
AILocalSignalAndWakeupListener.onVprintCutDataReceived(int, byte[], int)
返回的音频通道
用于设置给VprintIntent.setAecChannelNum(int)
和VprintIntent.setBfChannelNum(int)
param
- AIConstant.KEY_FESPX_AEC_CHANNEL
和 AIConstant.KEY_FESPX_BF_CHANNEL
AILocalSignalAndWakeupListener.onInit(int)
成功后才可以获取,若返回值为-1,则表示引擎未初始化public void setDynamicParam(java.lang.String[] wakeupWord, float[] threshold, int[] majors)
mEngine.setDynamicParam(new String[]{"ni hao xiao le"}, new float[]{0.45f}, new int[]{1})
wakeupWord
- 唤醒词,参数示例:["ni hao xiao chi","xiao bu xiao bu"]threshold
- 唤醒词对应的阈值,参数示例:[0.2, 0.3]majors
- 是否主唤醒词,主唤醒词为1,副唤醒词为0,如 [1,0]public void setDynamicParam(java.lang.String[] wakeupWord, float[] threshold, float[] threshold2, int[] majors)
mEngine.setDynamicParam(new String[]{"ni hao xiao le"}, new float[]{0.45f},new float[]{0.32f}, new int[]{1})
wakeupWord
- 唤醒词,参数示例:["ni hao xiao chi","xiao bu xiao bu"]threshold
- 唤醒词对应的阈值,参数示例:[0.2, 0.3]threshold2
- 设置大音量场景下的唤醒阈值majors
- 是否主唤醒词,主唤醒词为1,副唤醒词为0,如 [1,0]public void setDynamicParam(java.lang.String[] wakeupWord, float[] threshold, float[] threshold2, int[] majors, boolean vad)
mEngine.setDynamicParam(new String[]{"ni hao xiao le"}, new float[]{0.45f},new float[]{0.32f}, new int[]{1}, false)
wakeupWord
- 唤醒词,参数示例:["ni hao xiao chi","xiao bu xiao bu"]threshold
- 唤醒词对应的阈值,参数示例:[0.2, 0.3]threshold2
- 设置大音量场景下的唤醒阈值majors
- 是否主唤醒词,主唤醒词为1,副唤醒词为0,如 [1,0]vad
- 内核是否使用vad功能public void setDynamicParamEnv(java.util.Map<java.lang.String,?> dynamicParam)
Map envMap = new HashMap();
envMap.put("words", new String[]{"ni hao xiao le"});
envMap.put("thresh", new float[]{0.45f});
mEngine.setDynamicParamEnv(envMap);
区别于setDynamicParamEnv(Map)
此方法仅可用于设置唤醒词和唤醒词阈值dynamicParam
- env 里的参数,key可以是 words thresh thresh2 major等, value 类型可以是 基础类型、字符串、数组、列表public void setDynamicParam(java.util.Map<java.lang.String,?> dynamicParam)
Map<String, Object> dynamicParam = new HashMap<>();
dynamicParam.put("env", "words=ni hao xiao le;thresh=0.45;major=1;");
// maxVolumeState 用于设置大音量状态,需配置AEC资源。启用大音量检测功能时,在每次 feed 之前调用,0 表示非大音量,1 表示大音量
dynamicParam.put("maxVolumeState", 1);
//动态设置开关,1为开,0为关
dynamicParam.put("wakeupSwitch", 0);
dynamicParam.put("doa", 90);
mEngine.setDynamicParam(dynamicParam);
区别于setDynamicParam(Map)
此方法可用于设置唤醒词和唤醒词阈值以外,还可以设置其他属性,如唤醒角度,环形开关,大音量等属性dynamicParam
- 动态参数, Map 类型,key 为 String 类型,可以是env ,maxVolumeState,wakeupSwitch,doa value 类型可以是 基础类型、字符串、数组、列表public void setDynamicParam(java.lang.String json)
public int getDriveMode()
public int getVpCallbackLength()
public void stop()
stop
in class BaseEngine
public void forceRequestWakeupResult()
public void destroy()
destroy
in class BaseEngine
public void feedData(byte[] data, int size)
data
- 音频数据流size
- 数据大小AILocalSignalAndWakeupIntent.setUseCustomFeed(boolean)
public void addOrUpdateWakeupword(java.util.List<WakeupWord> wakeupWords)
public void addOrUpdateWakeupword(WakeupWord... wakeupWord)
mEngine.addOrUpdateWakeupword(new WakeupWord("xiao bu xiao bu", 0.49f, 0.21f, 0, 0),
new WakeupWord("xiao la hao ke", 0.38f, 0, 1, 0));
wakeupWord
- 增加或者更改的唤醒词public void removeWakeupword(java.util.List<WakeupWord> wakeupWords)
public void removeWakeupword(WakeupWord... wakeupWord)
mEngine.removeWakeupword(new WakeupWord("xiao bu xiao bu", 0.49f, 0.21f, 0, 0));
mEngine.removeWakeupword("xiao bu xiao bu");
wakeupWord
- 移除的唤醒词public void removeWakeupword(java.lang.String... wakeupWord)
public WakeupWord[] getWakeupword()
public void setWakeupword(java.util.List<WakeupWord> wakeupWords)
public void setWakeupword(WakeupWord... wakeupWord)
mEngine.setWakeupword(new WakeupWord("xiao bu xiao bu", 0.49f, 0.21f, 0, 0),
new WakeupWord("xiao la hao ke", 0.38f, 0, 1, 0));
wakeupWord
- 唤醒词,包括唤醒词,阈值,major等属性public java.util.Collection<WakeupWord> getWakeupwordList()
public void resetDriveMode()