2016-04-07 27 views
13

Buduję aplikację, która używa poleceń głosowych do wykonywania określonych funkcji. Mam pewne kody robocze od hereRozpocznij rozpoznawanie mowy za pomocą wyrażenia typu "OK Google"?

private static final int SPEECH_REQUEST_CODE = 0; 

// Create an intent that can start the Speech Recognizer activity 
private void displaySpeechRecognizer() { 
    Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); 
    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, 
      RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); 
// Start the activity, the intent will be populated with the speech text 
    startActivityForResult(intent, SPEECH_REQUEST_CODE); 
} 

// This callback is invoked when the Speech Recognizer returns. 
// This is where you process the intent and extract the speech text from the intent. 
@Override 
protected void onActivityResult(int requestCode, int resultCode, 
     Intent data) { 
    if (requestCode == SPEECH_REQUEST_CODE && resultCode == RESULT_OK) { 
     List<String> results = data.getStringArrayListExtra(
       RecognizerIntent.EXTRA_RESULTS); 
     String spokenText = results.get(0); 
     // Do something with spokenText 
    } 
    super.onActivityResult(requestCode, resultCode, data); 
} 

Jednak takie podejście musi być aktywowane poprzez kliknięcie przycisku. Czy istnieje sposób na rozpoczęcie rozpoznawania mowy za pomocą polecenia głosowego? Podobnie jak Google Now, gdzie możesz po prostu powiedzieć "OK, Google", to otworzy się działanie Rozpoznawanie mowy i słuchać poleceń?

Dzięki.

Odpowiedz

2

Będziesz musiał napisać usługę do ciągłego rozpoznawania mowy. I w oparciu o dane wejściowe, które otrzymujesz, gdy mowa wykrywa twoją frazę wyzwalającą i podejmuje działanie.

Może to wymagać dużej ilości pamięci i należy ją zoptymalizować, uruchamiając i zatrzymując usługi w odpowiednich godzinach i na ekranach.

Przyjęta odpowiedź na this question zapewnia środki do osiągnięcia podobnej rzeczy.

Powiązane problemy