سؤال

The app that i'm currently writing needs the SpeechRecognition to be EXTREMELY sensitive, meaning that a slight error in enunciation could result in an error. From what i'm using right now, even if i say "pactice" instead of "practice", it still recognizes it as "practice", which i absolutely don't want. I just want to know if there is a way of making it more sensitive? if so, how?

Code that i have right now:

    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);
هل كانت مفيدة؟

المحلول

You are delegating the task to androids' SpeechRecognizer so you can't do anything more. Anyway, i think that Google is doing a great work with that.

But you have two alternatives: *Optimizing the text result (Good idea) *making your own Recognizer however i think that it will be too complicated!

Good luck!

نصائح أخرى

As has already been suggested, if you want to optimize it you will have to write your own speech recognition code. This can be done using matlab, but it's no easy. I recently made an Isolated Word Recognition software using MATLAB. From what I've learnt from that, if you want it to be "EXTREMELY sensitive", you'd have to have really small sampling frames with really high sampling frequencies. Of course, porting from Matlab to Android is a pain, but if you ever want to give it a try, take a look at this. I found it really useful. http://www.mathworks.in/company/newsletters/articles/developing-an-isolated-word-recognition-system-in-matlab.html

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top