类 AILocalSignalAndWakeupEngine

  • 所有已实现的接口:
    IFespxEngine

    public class AILocalSignalAndWakeupEngine
    extends java.lang.Object
    implements IFespxEngine
    多麦唤醒
    • 方法详细资料

      • createInstance

        public static AILocalSignalAndWakeupEngine createInstance()
        创建前端信号处理引擎对象
        返回:
        AILocalSignalAndWakeupEngine 返回实例对象,可支持多实例
      • setDynamicParam

        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]
      • setDynamicParam

        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]
      • setDynamicParam

        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功能
      • setDynamicParamEnv

        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 类型可以是 基础类型、字符串、数组、列表
        从以下版本开始:
        2.11.1
      • setDynamicParam

        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 类型可以是 基础类型、字符串、数组、列表
      • setDynamicParam

        public void setDynamicParam​(java.lang.String json)
      • getDriveMode

        public int getDriveMode()
        获取 驾驶模式,只有车载双麦模块有这个功能
        返回:
        0为定位模式, 按照声源定位;1为主驾模式;2为副驾模式;3为全车模式,-1 错误,没有获取到
      • getVpCallbackLength

        public int getVpCallbackLength()
        获取vprintcut回调输出tlv数据包长度,资源需要带声纹。 每次输出时该长度固定,输入声纹时也需要保持该长度
        返回:
        vprintcut回调 tlv数据包长度, 小于0 表示获取失败
      • stop

        public void stop()
        停止信号处理模块和唤醒引擎 该方法会停止接收录音数据和停止信号处理,唤醒,程序退出时可以调用
      • forceRequestWakeupResult

        public void forceRequestWakeupResult()
        强制请求唤醒结果,即使没有唤醒也会给出唤醒词为null的结果
      • destroy

        public void destroy()
        销毁信号处理模块和唤醒引擎 该方法会停止录音机和销毁录音机
      • addOrUpdateWakeupword

        public void addOrUpdateWakeupword​(java.util.List<WakeupWord> wakeupWords)
      • addOrUpdateWakeupword

        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 - 增加或者更改的唤醒词
      • removeWakeupword

        public void removeWakeupword​(java.util.List<WakeupWord> wakeupWords)
      • removeWakeupword

        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 - 移除的唤醒词
      • removeWakeupword

        public void removeWakeupword​(java.lang.String... wakeupWord)
      • getWakeupword

        public WakeupWord[] getWakeupword()
      • setWakeupword

        public void setWakeupword​(java.util.List<WakeupWord> wakeupWords)
      • setWakeupword

        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等属性
      • getWakeupwordList

        public java.util.Collection<WakeupWord> getWakeupwordList()
      • resetDriveMode

        public void resetDriveMode()