精华内容
下载资源
问答
  • 一种语音识别和关键词识别的方法 深度学习 语音识别 关键词识别
  • 一种 端到端的关键词识别技术 人工智能 ASR 深度学习 语音识别
  • 一种复杂的FSMN网络 应用在移动终端的关键词识别网络技术
  • 时态信息广泛应用在自然语言处理、信息检索等领域,而时间关键词识别更是时态信息应用的关键,其直接影响到时态信息的使用。时间信息在文本或句中形式多样性、位置随意性以及边界不确定性等特点成为时间关键词识别...
  • 通过关键词识别实现语音到手势的转换
  • 摘要:随着微电子技术的高速发展,基于片上系统SOC 的关键词识别系统的研究已成为当前语音处理领域的研究热点和难点.运用Xilinx 公司ViterxII Pro 开发板作为硬件平台,结合ISE10.1 集成开发环境,完成了语音帧输出....
  • 基于Julian的语音关键词识别系统,蒋鑫,,关键词识别技术(Key Word Spotting,KWS)是语音识别中一个重要的研究方向,在众多领域有着广阔的应用空间。本文介绍了关键词识别中的�
  • kaldi-关键词识别kws

    千次阅读 2019-04-22 14:21:01
    kaldi-关键词识别kws
                   

    将kaldi中的kws部分的脚本跑通,并且把所有的二进制命令使用一个脚本串联起来。

    #########################################files dir#######################################dataset_id=newskeyword_id=news#input pcm datapcm_dir=pcm/$dataset_idwav_scp=$pcm_dir/wav.scputt2spk=$pcm_dir/utt2spkspk2utt=$pcm_dir/spk2uttutter_id=$pcm_dir/utter_idref_ecf=$pcm_dir/ecf.xmlref_rttm=$pcm_dir/rttm#feature conffeatconf_dir=conf/featurefbank_config=$featconf_dir/fbank.confpitch_config=$featconf_dir/pitch.confpitch_postprocess_config=$featconf_dir/pitch_post.conf#featurefeats_dir=0.feats/$dataset_idmkdir -p $feats_dirfbank_ark=$feats_dir/feats.arkfeats_log=$feats_dir/feats.logfeats_scp=$feats_dir/feats.scpcmvn_ark=$feats_dir/cmvn.arkcmvn_log=$feats_dir/cmvn.logcmvn_scp=$feats_dir/cmvn.scp#input keyword datakeywords_dir=1.keywords/$keyword_idkeywords_txt=$keywords_dir/keywords.txtkeywords_int=$keywords_dir/keywords.intkeywords_fst=$keywords_dir/keywords.fstskeywords_xml=$keywords_dir/kwlist.xmlkeywords_log=$keywords_dir/keywords.log#wfst and ammodel_dir=models/songwords=$model_dir/words.txtwfst=$model_dir/HCLG.fstam=$model_dir/final.mdlali_lex=$model_dir/align_lexicon.int#lattice outlat_dir=2.lattice/$dataset_idmkdir -p $lat_dirlat_file=$lat_dir/lat.gzlat_log=$lat_dir/lat.log#index outindex_dir=3.index/$dataset_idmkdir -p $index_dirindex_file=$index_dir/index.gzindex_log=$index_dir/index.log#result outres_dir=4.result/$dataset_idmkdir -p $res_dirres_file=$res_dir/resultres_log=$res_dir/result.log#evalmenteval_dir=5.eval/$dataset_idmkdir -p $eval_direval_xml=$eval_dir/kwslist.xml#########################################parmas########################################params for featurepaste_length_tolerance=2compress=true#params for latticeminimize=truemax_active=7000min_active=200beam=8.0lattice_beam=4.0 # Beam we use in lattice generation.lat_acwt=0.1  # Just a default value, used for adaptation and beam-pruning..#params for make indexwip=0.5 #Word insertion penaltysilence_opt= #for silience labelmax_expand=180 # limit memory blowup in lattice-align-wordsmax_states_scale=4index_lmwt=10index_acwt=`perl -e "print (1.0/$index_lmwt);"`max_silence_frames=50strict=truemax_states=150000skip_optimization=false     # If you only search for few thousands of keywords, you probablly                            # can skip the optimization; but if you're going to search for                             # millions of keywords, you'd better do set this optimization to                             # false and do the optimization on the final index.#########################################0.get feature of pcm#######################################if [ ! -f $feats_dir/.done.index ] ; then    fbank_feats="ark:compute-fbank-feats --verbose=2 --config=$fbank_config scp,p:$wav_scp ark:- |"    pitch_feats="ark,s,cs:compute-kaldi-pitch-feats --verbose=2 --config=$pitch_config scp,p:$wav_scp ark:- | process-kaldi-pitch-feats --config=$pitch_postprocess_config ark:- ark:- |"    paste-feats --length-tolerance=$paste_length_tolerance "$fbank_feats" "$pitch_feats" ark:- | \    copy-feats --compress=$compress ark:- \    ark,scp:$fbank_ark,$feats_scp >& $feats_log || exit 1;        ! compute-cmvn-stats --spk2utt=ark:$spk2utt scp:$feats_scp ark,scp:$cmvn_ark,$cmvn_scp \        2> $cmvn_log && echo "Error computing CMVN stats" && exit 1;    touch $feats_dir/.done.indexfi#########################################1.prepare keyword fst#######################################( echo '<kwlist ecf_filename="kwlist.xml" language="" encoding="UTF-8" compareNormalize="lowercase" version="" >' awk '{ printf("  <kw kwid=\"%s\">\n", $1);        printf("    <kwtext>"); for (n=2;n<=NF;n++){ printf("%s", $n); if(n<NF){printf(" ");} }        printf("</kwtext>\n");        printf("  </kw>\n"); }' < ${keywords_txt} echo '</kwlist>') > $keywords_xml || exit 1cat $keywords_txt | sym2int.pl --map-oov 0 -f 2- $words | grep -v " 0 " | grep -v " 0$" > $keywords_inttranscripts-to-fsts ark:$keywords_int ark,t:$keywords_fst >& $keywords_log#########################################2.nnet decoder#######################################if [ ! -f $lat_dir/.done.lat ] ; then    feats="ark,s,cs:apply-cmvn --utt2spk=ark:$utt2spk scp:$cmvn_scp scp:$feats_scp ark:- |"    nnet-latgen-faster \     --minimize=$minimize --max-active=$max_active --min-active=$min_active --beam=$beam \     --lattice-beam=$lattice_beam --acoustic-scale=$lat_acwt --allow-partial=true --word-symbol-table=$words \     $am $wfst "$feats" "ark:|gzip -c > $lat_file" >& $lat_log || exit 1;     touch $lat_dir/.done.latfi#########################################3.make index#######################################if [ ! -f $index_dir/.done.index ] ; then    lattice-add-penalty --word-ins-penalty=$wip "ark:gzip -cdf $lat_file|" ark:- | \      lattice-align-words-lexicon $silence_opt --max-expand=$max_expand $ali_lex $am  ark:- ark:- | \      lattice-scale --acoustic-scale=$index_acwt --lm-scale=$index_lmwt ark:- ark:- | \      lattice-to-kws-index --max-states-scale=$max_states_scale --allow-partial=true \      --max-silence-frames=$max_silence_frames --strict=$strict ark:$utter_id ark:- ark:- | \      kws-index-union --skip-optimization=$skip_optimization --strict=$strict --max-states=$max_states \      ark:- "ark:|gzip -c > $index_file" >& $index_log || exit 1    touch $index_dir/.done.indexfi#########################################4.search index#######################################for f in $index_file $keywords_fst; do  [ ! -f $f ] && echo "kws-search: no such file $f" && exit 1;donekws-search --strict=$strict --negative-tolerance=-1 \"ark:gzip -cdf $index_file|" ark:$keywords_fst \"ark,t:|bin/int2sym.pl -f 2 $utter_id > $res_file" >& $res_log || exit 1;#########################################5.eval########################################duration=`head -1 $ref_ecf |\#    grep -o -E "duration=\"[0-9]*[    \.]*[0-9]*\"" |\#    perl -e 'while($m=<>) {$m=~s/.*\"([0-9.]+)\".*/\1/; print $m/2;}'`#cat ${res_file} | write_kwslist.pl  --duration=$duration \#    --normalize=true --duptime=0.6 --remove-dup=true \#    --digits=3 - ${eval_xml} || exit 1#KWSEval -e $ref_ecf -r $ref_rttm -t $keywords_xml \#    -s $eval_xml -c -o -b -d -f ${eval_dir}/${dataset_id} || exit 1;

    参考:

    http://kaldi.sourceforge.net/kws.html

               
    展开全文
  • 改善蒙古历史文献图像关键词识别的多实例方法
  • 蒙古文历史文献图像关键词识别的视觉语言模型
  • 时态信息广泛应用在自然语言处理、信息检索等领域,而时间关键词识别更是时态信息应用的关键,其直接影响到时态信息的使用。时间信息在文本或句中形式多样性、位置随意性以及边界不确定性等特点成为时间关键词识别...
  • 摘要 摘要 关键词识别 Keyword spotting KWS 是一个热门的研究方向在可穿戴设备机 器人和智能家居等领域有着大量的应用空间卷积神经网络 Convolutional Neural Network CNN 能够联合语音信号时域和频域的特征并且...
  • 语音关键词识别分类和介绍

    千次阅读 2019-07-18 11:21:14
    语音关键词识别分类和介绍 spoken term detection 和 keyword spotting 无限制关键词识别 限制关键词识别 Trmal, J., Wiesner, M., Peddinti, V., Zhang, X., Ghahremani, P., Wang, Y., Manohar, V., Xu, H.,...

    语音关键词识别分类和介绍

    spoken term detection 和 keyword spotting

    无限制关键词识别

    限制关键词识别

    Trmal, J., Wiesner, M., Peddinti, V., Zhang, X., Ghahremani, P., Wang, Y., Manohar, V., Xu, H., Povey, D., Khudanpur, S. (2017) The Kaldi OpenKWS System: Improving Low Resource Keyword Search. Proc. Interspeech 2017, 3597-3601, DOI: 10.21437/Interspeech.2017-601.https://www.isca-speech.org/archive/Interspeech_2017/pdfs/0601.PDF

    基于样例的关键词识别(query-by-example spoken term detection (QbE-STD))

    Ram, D., Miculicich, L., Bourlard, H. (2018) CNN Based Query by
    Example Spoken Term Detection. Proc. Interspeech 2018, 92-96, DOI:
    10.21437/Interspeech.2018-1722.https://www.isca-speech.org/archive/Interspeech_2018/pdfs/1722.pdf

    展开全文
  • 关键词识别matlab源代码虹膜识别 我制作了Iris-Recognition system ,该Iris-Recognition system在Matlab和Python中均已实现。 关键字:虹膜识别,生物识别,计算机视觉,图像处理,Daugman 更新 :party_popper: :...
  • "针对现有关键词识别系统采用很难用硬件电路准确描述的连续隐马尔可夫模型 CHMM作为识别模型,提出
  • 关键词识别matlab源代码MTCNN_face_detection_alignment 多任务级联卷积神经网络的联合人脸检测与对准 要求 Caffe:Linux操作系统:。 Windows操作系统:或 美元工具箱: Matlab 2014b或更高版本 CUDA(如果使用...
  • 随着微电子技术的高速发展,基于片上系统SOC的关键词识别系统的研究已成为当前语音处理领域的研究热点和难点。运用Xilinx公司ViterxII Pro开发板作为硬件平台,结合ISE10.1集成开发环境,完成了语音帧输出、MFCC、VQ...
  • 基于Tensorflow的端到端在线语音关键词识别/行为检测
  • 关键词识别和语音听写还是有差别的,语音听写是直接将所说的话转化成语音,至于识别的准确率看所说的话是否是常用的,如果遇到不常见的词比如 背身腿降这个指令,识别出来的就是乱七八糟的。而关键词识别也就是针对...

    关键词识别和语音听写还是有差别的,语音听写是直接将所说的话转化成语音,至于识别的准确率看所说的话是否是常用的,如果遇到不常见的词比如
    背身腿降这个指令,识别出来的就是乱七八糟的。而关键词识别也就是针对这种关键词识别有很好的效果,在于你自己构建一个.bnf文件,然后写上关键词

    #BNF+IAT 1.0 UTF-8;
    !grammar call;
    !slot <contact>;
    !slot <callPre>;
    !slot <callPhone>;
    !slot <callTo>;
    !start <callStart>;
    <callStart>:[<callPre>];
    <callPre>:北盛|背升|结束|背平|北平|备品|腿升|腿伸|腿平|坐立|躺平|停止|左翻身|有翻身|右翻身|开盖|灌溉|关盖|打包|打开电源|关闭电源|调节|打包|烘干|男性清晰|男性清洗|女性清晰|女性清洗;
    

    其实需要修改的就是后面中文。
    然后下载官方的关键词识别库,包括libs里面的两个文件和Msc.jar包,然后我重新在main下面和java同级建立一个jniLibs目录,里面放的如下文件在这里插入图片描述
    实际上官方下载只有两个,以至于我后来测试一直报10107错误,我就百度讯飞10107错误,解释是
    在这里插入图片描述
    于是查看文章里面
    在这里插入图片描述
    可是这个类是mAsr自带的,这个参数我也没法修改,于是我在科大讯飞工作平台提交了工作单
    在这里插入图片描述
    在这里插入图片描述
    很感谢日均两问的回复,最后我找到了最原始的也就是里面含有7个库的文件,这下语法直接构建成功了。这是我在做关键词识别的时候遇到的最大的问题
    现在发一下代码
    工具类构建语法BuildLocalGrammer

    public abstract class BuildLocalGrammer {
        /**
         * 构建语法的回调
         *
         * @param errMsg null 构造成功
         */
        public abstract void result(String errMsg, String grammarId);
    
        // Log标签
        private static final String TAG = "BuildLocalGrammar";
    
        public static final String GRAMMAR_PATH = Environment.getExternalStorageDirectory().getAbsolutePath() + "/msc/test";
        // 上下文
        private Context mContext;
        // 语音识别对象
        private SpeechRecognizer mAsr;
    
        public BuildLocalGrammer(Context context) {
            mContext = context;
    
            // 初始化识别对象
            mAsr = SpeechRecognizer.createRecognizer(context, new InitListener() {
    
                @Override
                public void onInit(int code) {
                    Log.d(TAG, "SpeechRecognizer init() code = " + code);
                    if (code != ErrorCode.SUCCESS) {
                        result(code + "", null);
                        Log.d(TAG, "初始化失败,错误码:" + code);
                        Toast.makeText(mContext, "初始化失败,错误码:" + code, Toast.LENGTH_SHORT).show();
                    }
                }
            });
        }
    
        ;
    
        /**
         * 构建语法
         *
         * @return
         */
        public void buildLocalGrammar() {
            try {
                /*
                 * TODO 如果你要在程序里维护bnf文件,可以在这里加上你维护的一些逻辑
                 * 如果不嫌麻烦,要一直改bnf文件,这里的代码可以不用动,不过我个人不建议一直手动修改bnf文件
                 * ,内容多了以后很容易出错,不好找Bug,建议每次改之前先备份。 建议用程序维护bnf文件。
                 */
    
                /*
                 * 构建语法
                 */
                String mContent;// 语法、词典临时变量
                String mLocalGrammar = FucUtil.readFile(mContext, "call.bnf", "utf-8");
                mContent = new String(mLocalGrammar);
                mAsr.setParameter(SpeechConstant.PARAMS, null);
                // 设置文本编码格式
                mAsr.setParameter(SpeechConstant.TEXT_ENCODING, "utf-8");
                // 设置引擎类型
                mAsr.setParameter(SpeechConstant.ENGINE_TYPE, SpeechConstant.TYPE_LOCAL);
                // 设置语法构建路径
                mAsr.setParameter(ResourceUtil.GRM_BUILD_PATH, GRAMMAR_PATH);
                // 使用8k音频的时候请解开注释
                // mAsr.setParameter(SpeechConstant.SAMPLE_RATE, "8000");
                // 设置资源路径
                mAsr.setParameter(ResourceUtil.ASR_RES_PATH, getResourcePath());
                // 构建语法
                int ret = mAsr.buildGrammar("bnf", mContent, new GrammarListener() {
    
                    @Override
                    public void onBuildFinish(String grammarId, SpeechError error) {
                        if (error == null) {
                            Log.d(TAG, "语法构建成功");
                            result(null, grammarId);
                        } else {
                            Log.d(TAG, "语法构建失败,错误码:" + error.getErrorCode());
                            result(error.getErrorCode() + "", grammarId);
                        }
                    }
                });
                if (ret != ErrorCode.SUCCESS) {
                    Log.d(TAG, "语法构建失败,错误码:" + ret);
                    result(ret + "", null);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        // 获取识别资源路径
        private String getResourcePath() {
            StringBuffer tempBuffer = new StringBuffer();
            // 识别通用资源
            tempBuffer.append(ResourceUtil.generateResourcePath(mContext, ResourceUtil.RESOURCE_TYPE.assets, "asr/common.jet"));
            // 识别8k资源-使用8k的时候请解开注释
            // tempBuffer.append(";");
            // tempBuffer.append(ResourceUtil.generateResourcePath(this,
            // RESOURCE_TYPE.assets, "asr/common_8k.jet"));
            return tempBuffer.toString();
        }
    
    
    }
    

    识别类KqwSpeechRecognizer

    public abstract class KqwSpeechRecognizer {
    
        /**
         * 初始化的回调
         *
         * @param flag
         *            true 初始化成功 false 初始化失败
         */
        public abstract void initListener(boolean flag);
    
        public abstract void resultData(String data);
    
        public abstract void speechLog(String log);
    
    
        // Log标签
        private static final String TAG = "KqwLocal";
        private Toast mToast;
    
        public static final String GRAMMAR_PATH = Environment.getExternalStorageDirectory().getAbsolutePath() + "/msc/test";
        // 上下文
        private Context mContext;
        // 语音识别对象
        private SpeechRecognizer mAsr;
    
        public KqwSpeechRecognizer(Context context) {
            mContext = context;
    
            // 初始化识别对象
            mAsr = SpeechRecognizer.createRecognizer(context, new InitListener() {
    
                @Override
                public void onInit(int code) {
                    Log.d(TAG,   code+"");
                    if (code != ErrorCode.SUCCESS) {
                        initListener(false);
                        Toast.makeText(mContext, "初始化失败,错误码:" + code, Toast.LENGTH_SHORT).show();
                    } else {
                        initListener(true);
                    }
                }
            });
    
        }
    
        /**
         * 参数设置
         */
        public void setParam() {
            // 清空参数
            mAsr.setParameter(SpeechConstant.PARAMS, null);
            // 设置识别引擎 本地引擎
            mAsr.setParameter(SpeechConstant.ENGINE_TYPE, SpeechConstant.TYPE_LOCAL);
            // mAsr.setParameter(SpeechConstant.ENGINE_TYPE,
            // SpeechConstant.TYPE_MIX);
            // mAsr.setParameter(SpeechConstant.ENGINE_TYPE, "mixed");
            // // 设置本地识别资源
            mAsr.setParameter(ResourceUtil.ASR_RES_PATH, getResourcePath());
            // 设置语法构建路径
            mAsr.setParameter(ResourceUtil.GRM_BUILD_PATH, GRAMMAR_PATH);
            // 设置返回结果格式
            mAsr.setParameter(SpeechConstant.RESULT_TYPE, "json");
            // 设置本地识别使用语法id
            mAsr.setParameter(SpeechConstant.LOCAL_GRAMMAR, "call");
            // 设置识别的门限值
            mAsr.setParameter(SpeechConstant.MIXED_THRESHOLD, "60");
            // 使用8k音频的时候请解开注释
            // mAsr.setParameter(SpeechConstant.SAMPLE_RATE, "8000");
            mAsr.setParameter(SpeechConstant.DOMAIN, "iat");
            mAsr.setParameter(SpeechConstant.NLP_VERSION, "2.0");
            mAsr.setParameter("asr_sch", "1");
            // mAsr.setParameter(SpeechConstant.RESULT_TYPE, "json");
        }
    
        // 获取识别资源路径
        private String getResourcePath() {
            StringBuffer tempBuffer = new StringBuffer();
            // 识别通用资源
            tempBuffer.append(ResourceUtil.generateResourcePath(mContext, ResourceUtil.RESOURCE_TYPE.assets, "asr/common.jet"));
            // 识别8k资源-使用8k的时候请解开注释
            // tempBuffer.append(";");
            // tempBuffer.append(ResourceUtil.generateResourcePath(this,
            // RESOURCE_TYPE.assets, "asr/common_8k.jet"));
            return tempBuffer.toString();
        }
    
        int ret = 0;// 函数调用返回值
    
        /**
         * 开始识别
         */
        public void startListening() {
            // 设置参数
            setParam();
            ret = mAsr.startListening(mRecognizerListener);
            if (ret != ErrorCode.SUCCESS) {
                Log.i(TAG, "识别失败,错误码: " + ret);
            }
        }
        public void stopListening(){
            mAsr.stopListening();
        }
    
        /**
         * 识别监听器。
         */
        private RecognizerListener mRecognizerListener = new RecognizerListener() {
    
            StringBuffer stringBuffer = new StringBuffer();
    
            public void onVolumeChanged(int volume) {
                Log.i(TAG, "当前正在说话,音量大小:" + volume);
                speechLog("当前正在说话,音量大小:" + volume);
            }
    
            @Override
            public void onResult(final RecognizerResult result, boolean isLast) {
                /*
                 * TODO 拼接返回的数据
                 *
                 * 这里返回的是Json数据,具体返回的是离线名命令词返回的Json还是语义返回的Json,需要做判断以后在对数据数据进行拼接
                 */
                stringBuffer.append(result.getResultString()).append("\n\n");
                // isLast为true的时候,表示一句话说完,将拼接后的完整的一句话返回
                if (isLast) {
                    // 数据回调
                    resultData(stringBuffer.toString());
                }
            }
    
            @Override
            public void onEndOfSpeech() {
                showTip("结束说话");
                speechLog("结束说话");
            }
    
            @Override
            public void onVolumeChanged(int i, byte[] bytes) {
    
    
            }
    
            @Override
            public void onBeginOfSpeech() {
                stringBuffer.delete(0, stringBuffer.length());
                showTip("开始说话");
                speechLog("开始说话");
            }
    
            @Override
            public void onError(SpeechError error) {
                Log.i(TAG, "error = " + error.getErrorCode());
                if (error.getErrorCode() == 20005) {
                    // 本地命令词没有识别,也没有请求到网络
                    resultData("没有构建的语法");
                    speechLog("没有构建的语法");
                    /*
                     * TODO
                     * 当网络正常的情况下是不会回调20005的错误,只有当本地命令词识别不匹配,网络请求也失败的情况下,会返回20005
                     * 这里可以自己再做处理,例如回复“没有听清”等回复
                     */
                } else {
                    /*
                     * TODO
                     * 其他错误有很多,需要具体问题具体分析,正常在程序没有错误的情况下,只会回调一个没有检测到说话的错误,没记错的话错误码是10118
                     */
                }
            }
    
            @Override
            public void onEvent(int eventType, int arg1, int arg2, Bundle obj) {
                Log.i(TAG, "eventType = " + eventType);
            }
    
        };
        private void showTip(final String str) {
          new Thread (new Runnable() {
                @Override
                public void run() {
                    mToast.setText(str);
                    mToast.show();
                }
            });
        }
    
    }
    

    然后再mainActivity就可以直接使用了

    public class MainActivity extends Activity {
    
        private TextView mTvResult;
        private TextView mTvLog;
        private BuildLocalGrammar buildLocalGrammar;
        private KqwSpeechRecognizer kqwSpeechRecognizer;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            SpeechUtility.createUtility(this, SpeechConstant.APPID+"=5de9a6f7");
            mTvResult = (TextView) findViewById(R.id.tv_result);
            mTvLog = (TextView) findViewById(R.id.tv_log);
    
            /**
             * 初始化本地语法构造器
             */
            buildLocalGrammar = new BuildLocalGrammar(this) {
    
                @Override
                public void result(String errMsg, String grammarId) {
                    // errMsg为null 构造成功
                    if (TextUtils.isEmpty(errMsg)) {
                        Toast.makeText(MainActivity.this, "构造成功", Toast.LENGTH_SHORT).show();
    
                    } else {
                        Toast.makeText(MainActivity.this, "构造失败", Toast.LENGTH_SHORT).show();
                    }
                }
            };
    
            /**
             * 初始化离线命令词识别器
             */
            kqwSpeechRecognizer = new KqwSpeechRecognizer(this) {
    
                @Override
                public void speechLog(String log) {
                    // 录音Log信息的回调
                    mTvLog.setText(log);
                }
    
                @Override
                public void resultData(String data) {
                    // 是识别结果的回调
                    mTvResult.setText(data);
                }
    
                @Override
                public void initListener(boolean flag) {
                    // 初始化的回调
                    if (flag) {
                        Toast.makeText(MainActivity.this, "初始化成功", Toast.LENGTH_SHORT).show();
                    } else {
                        Toast.makeText(MainActivity.this, "初始化失败", Toast.LENGTH_SHORT).show();
                    }
                }
            };
    
            /**
             * 构造本地语法文件,只有语法文件有变化的时候构造成功一次即可,不用每次都构造
             */
            buildLocalGrammar.buildLocalGrammar();
    
        }
    
        /**
         * 开始识别按钮
         *
         * @param view
         */
        public void start(View view) {
            mTvResult.setText(null);
            // 开始识别
            kqwSpeechRecognizer.startListening();
        }
    
    }
    

    项目代码上传到Github上

    展开全文
  • 关键词识别matlab源代码MTCNN_face_detection_alignment 多任务级联卷积神经网络的联合人脸检测与对准 要求 Caffe:Linux操作系统:。 Windows操作系统:或 美元工具箱: Matlab 2014b或更高版本 CUDA(如果使用...
  • 关键词识别matlab源代码虹膜识别 我制作了Iris-Recognition system ,该Iris-Recognition system在Matlab和Python中均已实现。 关键字:虹膜识别,生物识别,计算机视觉,图像处理,Daugman 更新 :party_popper: :...
  • 基于LDA的单词图像表示法在蒙古历史文献上的关键词识别
  •  在实现上述分模块的基础上,通过对各模块的组合实现了帧压缩模块,然后通过接口逻辑将语音帧压缩模块与HMM识别模块组合成完整的关键词识别系统.  5.1 语音帧压缩模块实现  由于隐马尔可夫模块HMM的输入数据是...
  • MEMS麦克风在语音激活设计中如何辅助声音检测和关键词识别
  • Api-文章关键词识别接口 接口简介: 精确模式,试图将句子最精确地切开,适合文本分析; 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义; 搜索引擎模式,在精确模式的基础上,对...

    Api-文章关键词识别接口

    接口简介:

    精确模式,试图将句子最精确地切开,适合文本分析; 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义; 搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。

    子接口
    中文分词
    自有库分词查询
    移除自有库关键词
    全部自有库关键词
    增加自有库新词

    接口地址: https://登录后显示/pyi/91/213(支持:http/https)

    返回格式: json,xml

    请求方式: POST

    请求说明: ​​​​​​​
    在这里插入图片描述
    加密顺序 ​​​​​​​:
    在这里插入图片描述
    返回参数说明:
    在这里插入图片描述
    JSON返回示例:
    在这里插入图片描述
    服务器状态码: ​​​​​​​
    在这里插入图片描述
    请选择开发语言:
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 基于MFCC的音频特征的语音关键词识别 参考链接 ##1 引言 梅尔倒谱系数(Mel-scale FrequencyCepstral Coefficients,简称MFCC)。依据人的听觉实验结果来分析语音的频谱,MFCC分析依据的听觉机理有两个:
  • 其实,微软早就有基于window平台的语音识别模块,而且unity已经把这个模块集成到引擎中去了,这一篇讲一下unity是怎样实现关键词识别的,代码如下: using System; using System.Collections; using System.Collec...
  • 关键词识别matlab源代码胶囊网络的端到端语音命令识别 INTERSPEECH 2018论文: 我们应用胶囊网络来捕获频率频谱和时间轴上语音频谱图特征的空间关系和姿势信息,并表明我们提出的在一秒钟语音命令数据集上使用胶囊...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,686
精华内容 1,074
关键字:

关键词识别