簡體   English   中英

創建用於連續語音識別的Android服務

[英]Creating Android service for continuous speech recognition

我正在嘗試創建允許連續運行Android語音識別引擎的服務。 我已經在Android Speech Recognition上看到了一個作為Android 4.1&4.2上的服務的示例,並采用了它,但是無論如何,我總是在偵聽器onError()方法中收到SpeechRecognizer.ERROR_NO_MATCH錯誤,無論怎么說。 當然,永遠不會調用onResults()。 該服務的代碼與上面的答案完全相同,我啟動它的代碼是:

Intent startServiceIntent = null;           
Log.d(TAG, "Creating new intent for the recognition service");
startServiceIntent = new Intent(getApplicationContext(), SpeechRecognitionService.class);
Log.d(TAG, "Starting the speech recognition service ...");
getApplicationContext().startService(startServiceIntent);

int duration = Toast.LENGTH_LONG;
CharSequence text = "Starting speech recognition ...";
Toast toast = Toast.makeText(getApplicationContext(), text, duration);
toast.show();

但是當我通過發送Intent直接調用語音識別引擎時,它就可以正常工作:

Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
                    RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Start talking");
intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 10);
startActivityForResult(intent, 1234);

我所有的測試都在運行Android 4.1.2的Note2上進行。 有沒有人遇到過這個問題,可能知道如何解決呢? 謝謝

嘗試設置EXTRA_CALLING_PACKAGE。 這沒有道理,但我相信它將解決您的問題。 請參閱下面的方法。 還可以在此處查看代碼: https : //github.com/gast-lib/gast-lib/blob/master/library/src/root/gast/speech/SpeechRecognizingActivity.java

 public void recognizeDirectly(Intent recognizerIntent)
    {
        // SpeechRecognizer requires EXTRA_CALLING_PACKAGE, so add if it's not
        // here
        if (!recognizerIntent.hasExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE))
        {
            recognizerIntent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE,
                    "com.dummy");
        }
        SpeechRecognizer recognizer = getSpeechRecognizer();
        recognizer.startListening(recognizerIntent);
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM