2015-03-18 106 views
0

在使用Javascript语音识别API时,我发现我所有先前的语句都与最新的语句一起显示,是否有一种方法可以在之后清除所有之前的语句一个新的短语已被认可?从语音识别api结果中删除以前识别的单词

这是我使用语音识别的基本方式。

var recognition = new webkitSpeechRecognition(); 
recognition.continuous = true; 
recognition.interimResults = true; 
recognition.start(); 
recognition.onresult = function(event){ 
    console.log(event); 
} 

回答

0

我认为您正在追加结果。你不应该追加结果。你应该重写结果。让我说在java中

@Override 
public void onResults(Bundle results) { 
    Log.i(LOG_TAG+">"+ "onResults"); 
    ArrayList<String> matches = results 
      .getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION); 
    String text = ""; 
    for (String result : matches) 
     text += result + "\n"; 
    if(text.contains(my key word list here)){ 
     //you can skip this if part 

    } 

我希望这可以让你知道你在做什么错。 (假设你有结果列表)

+0

我使用的是javascript而不是java – Jordan 2015-03-19 11:37:35

+0

我提供了一个样例@jordan。我认为你可以将它转换成你的语言并根据你的需要 – 2015-03-19 11:41:44

+0

我建议你在这个函数中保存结果字符串变量 recognition.onresult = function(event){ console.log(event); //像这里一样,然后尝试注销变量 } – 2015-03-19 11:43:04