4.3.本地热词


本地热词引擎

基于识别的解决方案是将需要在页面上响应的词设置到识别内核即可,用户说了设定到唤醒内核的词后再通知应用层做出相应的处理。识别方案相较唤醒方案接口设计更为简单且无词汇数量限制,但是因为识别和唤醒工程特别,识别必须要等待用户说话完成后才能去相应,故在响应速度上会比唤醒要慢。

基于识别的方案,在SDK提供该项能力的是AILocalHotWordEngine,相关示例代码如下:

初始化

AILocalHotWordsEngine mEngine = AILocalHotWordsEngine.createInstance();
mEngine.init(new AILocalHotWordConfig.Builder()
                    .setUseVad(true)
                    .setVadRes(SampleConstants.VAD_RES)
                    .setAsrRes(SampleConstants.HOT_WORDS_EBNFR_RES)
//                    .setUseCustomFeed(true) //自定义feed音频
//                    .setUseSSL(true) //4音区热词使用,开启人声定位功能
                    .build() ,new AILocalHotWordsListener() {
            @Override
            public void onInit(int i) {

            }

            @Override
            public void onError(AIError aiError) {

            }

            @Override
            public void onResults(AIResult aiResult) {

            }

            @Override
            public void onResultDataReceived(byte[] bytes, int i) {

            }

            @Override
            public void onRawDataReceived(byte[] bytes, int i) {

            }
        });

启动

AILocalHotWordIntent intent = new AILocalHotWordIntent();
            intent.setUseContinuousRecognition(true);//打开连续识别
            intent.setMaxSpeechTime(20);//设置单次允许最大人声时长
            intent.setSaveAudioPath(RAW_PATH + "/out");//设置音频保存位置
            intent.setThreshold(0.72);//设置资源默认识别置信度阈值
//            intent.setWords(new String[]{"调高亮度", "上一个", "上一首", "打开车窗", "关闭周边路况", "不要收藏", "打开QQ音乐", "打开雨雪模式"});//设置热词词表
            intent.setWords("\"打开均衡器,声音大一点,音量大一点,音量高一点,声音小一点,音量小一点,音量低一点,停止导航,退出导航,结束导航,关闭导航,换个台,屏幕亮一点,亮度高一点,调高亮度,屏幕暗一点,亮度低一点,调低亮度,打开音乐,打开电台,打开收音机,打开广播,打开喜马拉雅,声音轻一点,关闭声音,打开聊天,打开电话,打开应用,打开空调,所有应用,声音低一点,声音再大一点,声音再小一点,再大一点,再小一点,屏幕再亮一点,屏幕再低一点,关闭空调,显示地图,屏幕再暗一点,声音高一点,声音再高一点,声音再低一点,关闭收音机,风量两级,打开雨刮,内循环,外循环,回首页,开空调,关空调,打开AC,关闭AC,关闭AC,打开自动模式,打开AUTO,关闭自动模式,关闭AUTO,温度十六度,空调十六度,空调调整为十六度,空调调整到十六度,温度调整为十六度,温度调整到十六度,温度调成一六度,空调调成一六度,温度十七度,空调十七度,空调调整为十七度,空调调整到十七度,温度调整为十七度,温度调整到十七度,温度调成一七度,空调调成一七度,温度十八度,空调十八度,空调调整为十八度,空调调整到十八度,温度调整为十八度,温度调整到十八度,温度调成一八度,空调调成一八度,温度十九度,空调十九度,空调调整为十九度,空调调整到十九度,温度调整为十九度,温度调整到十九度,温度调成一九度,空调调成一九度,温度二十度,空调二十度,空调调整为二十度,空调调整到二十度,温度调整为二十度,温度调整到二十度,温度调成二零度,空调调成二零度,温度二十一度,空调二十一度,空调调整为二十一度,空调调整到二十一度,温度调整为二十一度,温度调整到二十一度,温度调成二一度,空调调成二一度,温度二十二度,空调二十二度,空调调整为二十二度,空调调整到二十二度,温度调整为二十二度,温度调整到二十二度,温度调成二二度,空调调成二二度,温度二十三度,空调二十三度,空调调整为二十三度,空调调整到二十三度,温度调整为二十三度,温度调整到二十三度,温度调成二三度,空调调成二三度,温度二十四度,空调二十四度,空调调整为二十四度,空调调整到二十四度,温度调整为二十四度,温度调整到二十四度,温度调成二四度,空调调成二四度,温度二十五度,空调二十五度,空调调整为二十五度,空调调整到二十五度,温度调整为二十五度,温度调整到二十五度,温度调成二五度,空调调成二五度,温度二十六度,空调二十六度,空调调整为二十六度,空调调整到二十六度,温度调整为二十六度,温度调整到二十六度,温度调成二六度,空调调成二六度,温度二十七度,空调二十七度,空调调整为二十七度,空调调整到二十七度,温度调整为二十七度,温度调整到二十七度,温度调成二七度,空调调成二七度,温度二十八度,空调二十八度,空调调整为二十八度,空调调整到二十八度,温度调整为二十八度,温度调整到二十八度,温度调成二八度,空调调成二八度,温度二十九度,空调二十九度,空调调整为二十九度,空调调整到二十九度,温度调整为二十九度,温度调整到二十九度,温度调成二九度,空调调成二九度,温度三十度,空调三十度,空调调整为三十度,空调调整到三十度,温度调整为三十度,温度调整到三十度,温度调成三零度,空调调成三零度,温度三十一度,空调三十一度,空调调整为三十一度,空调调整到三十一度,温度调整为三十一度,温度调整到三十一度,温度调成三一度,空调调成三一度,温度三十二度,空调三十二度,空调调整为三十二度,空调调整到三十二度,温度调整为三十二度,温度调整到三\"");
            intent.setBlackWords(new String[]{"第十一个"});//设置热词黑名单
            intent.setCustomThreshold(new String[]{"上一个", "调高亮度"}, new Double[]{0.74, 0.76});//调整指定词汇置信度

            mEngine.start(intent);

停止

//取消识别
mEngine.cancel();

销毁

//引擎销毁
if (mEngine != null) {
   mEngine.destroy();
   mEngine = null;
}

此部分更多的相关代码,可以参见SDK一起输出的sample工程中的LocalHotWords.java 示例代码。

results matching ""

    No results matching ""