我正在编写的应用程序需要SpeechRecognition非常敏感,这意味着发出的轻微错误可能会导致错误。从我现在使用的,即使我说“pactice”而不是“练习”,它仍然认为它是“练习”,我绝对不想要。我只是想知道是否有办法让它更敏感?如果是这样,怎么样?
我现在的代码:
sr = SpeechRecognizer.createSpeechRecognizer(this);
sr.setRecognitionListener(new SListener());
srIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
srIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "en-US");
srIntent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE,
this.getPackageName());
srIntent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 3);
答案 0 :(得分:1)
您将任务委派给机器人'SpeechRecognizer,因此您无法再执行任何操作。无论如何,我认为Google正在做很好的工作。
但你有两种选择: *优化文本结果(好主意) *制作自己的识别器,但我觉得它太复杂了!
祝你好运!答案 1 :(得分:0)
正如已经建议的那样,如果你想优化它,你将不得不编写自己的语音识别代码。这可以使用matlab完成,但这并不容易。我最近使用MATLAB制作了一个单独的单词识别软件。根据我从中学到的东西,如果你想要它“极其敏感”,你必须拥有非常小的采样帧和非常高的采样频率。当然,从Matlab移植到Android是一件痛苦的事,但如果您想尝试一下,请看一下。我觉得它真的很有用。 http://www.mathworks.in/company/newsletters/articles/developing-an-isolated-word-recognition-system-in-matlab.html