public class AILocalSignalAndWakeupEngine
extends java.lang.Object
限定符和类型 | 方法和说明 |
---|---|
void |
addOrUpdateWakeupword(java.util.List<WakeupWord> wakeupWords) |
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)); |
static AILocalSignalAndWakeupEngine |
createInstance()
创建前端信号处理引擎对象
|
void |
destroy()
销毁信号处理模块和唤醒引擎
该方法会停止录音机和销毁录音机
|
void |
feedData(byte[] data,
int size)
传入数据,在不使用SDK录音机时调用
|
void |
forceRequestWakeupResult()
强制请求唤醒结果,即使没有唤醒也会给出唤醒词为null的结果
|
int |
getDriveMode()
获取 驾驶模式,只有车载双麦模块有这个功能
|
FespxProcessor |
getFespxProcessor() |
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)
移除唤醒词
mEngine.removeWakeupword(new WakeupWord("xiao bu xiao bu", 0.49f, 0.21f, 0, 0));
mEngine.removeWakeupword("xiao bu xiao bu");
|
void |
resetDriveMode() |
void |
setDynamicParam(java.util.Map<java.lang.String,?> dynamicParam)
动态设置唤醒参数,可以在引擎初始化成功后动态设置
{@code
Map
|
void |
setDynamicParam(java.lang.String json) |
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})
|
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)
|
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})
|
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) 此方法仅可用于设置唤醒词和唤醒词阈值 |
void |
setWakeupword(java.util.List<WakeupWord> wakeupWords) |
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));
|
void |
start(AILocalSignalAndWakeupIntent aiLocalSignalAndWakeupIntent)
启动信号处理模块和唤醒引擎
|
void |
stop()
停止信号处理模块和唤醒引擎
该方法会停止接收录音数据和停止信号处理,唤醒,程序退出时可以调用
|
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()
public void forceRequestWakeupResult()
public void destroy()
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()