You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Chrome WebKit的JavaScript语音转文字:如何针对特定关键词输出控制台日志?

解决Chrome WebKit语音识别关键词检测的代码位置问题

嘿,我来帮你搞定这个!你写的关键词检测代码逻辑没问题,核心是要把它放在语音识别返回结果的事件处理函数里——也就是speechRecognizer.onresult这个回调中,因为每次语音识别出内容时,这个函数都会被触发,这里能拿到最新的识别文本。

具体修改方案

你可以根据需求选择以下任意一个位置放置检测代码:

  1. 实时检测每一段识别内容(含临时结果)
    在循环处理每个识别片段的环节加入检测,这样哪怕是还没确定的临时识别内容里有关键词,也会立刻输出日志:

    speechRecognizer.onresult = function(event){
      var interimTranscripts = '';
      for(var i = event.resultIndex; i < event.results.length; i++){
        var transcript = event.results[i][0].transcript;
        // 注意:replace方法不会修改原字符串,需要重新赋值才生效
        transcript = transcript.replace("\n", "<br>");
        
        // 检测当前识别片段是否包含关键词
        if(transcript.includes('?')){
          console.log('Yes,it works');
        }
        
        if(event.results[i].isFinal){
          finalTranscripts += transcript;
        }else{
          interimTranscripts += transcript;
        }
      }
      r.innerHTML = finalTranscripts + '<span style="color:#999">' + interimTranscripts + '</span>';
    };
    
  2. 仅在最终确定的结果中检测
    如果你只想在识别结果完全定型(不再更新)时触发日志,就把检测代码放在event.results[i].isFinal的判断分支里:

    if(event.results[i].isFinal){
      finalTranscripts += transcript;
      // 检测已确认的最终结果是否包含关键词
      if(finalTranscripts.includes('?')){
        console.log('Yes,it works - final result confirmed');
      }
    }
    
  3. 检测当前页面显示的全部文本
    要是想检查当前页面上展示的所有识别内容(最终结果+临时结果),可以在更新完页面内容后加入检测:

    r.innerHTML = finalTranscripts + '<span style="color:#999">' + interimTranscripts + '</span>';
    // 检测拼接后的完整显示文本
    if((finalTranscripts + interimTranscripts).includes('?')){
      console.log('Yes,it works - current displayed text has keyword');
    }
    

小提醒

你原代码里的transcript.replace("\n", "<br>");其实没有生效,因为JavaScript的字符串是不可变的,replace方法会返回新字符串,所以要改成transcript = transcript.replace("\n", "<br>");才能真正替换换行符。

内容的提问来源于stack exchange,提问作者Daniel Dalan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:47:44