2013-09-29 1 views
8

Ich würde gerne ein Android-Handy aufwecken, indem Sie zum Beispiel "Hallo George" sagen, konnte aber keine sinnvollen Antworten finden. Zunächst einmal, muss Android App als Dienst im Hintergrund für diese Funktion oder nicht? Ich würde mich freuen, wenn jemand weiß, wie man dieses Problem umsetzt oder irgendeine Ahnung hat.Weckruf Android-Handy mit bestimmten Wörtern wie Hallo Galaxy oder Ok Google

Mit freundlichen Grüßen Danke

+2

Die ‚wache mit Sprachbefehl up‘ ist ein Merkmal der Moto X, das eine spezielle CPU verwendet, um im Standby-Modus auf den Sprachbefehl zu warten, um einen großen Batterieverbrauch zu vermeiden. Um diese Funktion gut zu nutzen, müssen Sie Ihr eigenes Gerät und Ihr eigenes ROM erstellen. –

Antwort

7

Hallo, ich bin der Entwickler von Open Mic + http://OpenMic.RSenApps.com, die etwas sehr ähnliches tut, was Sie wollen. Die Wahrheit ist, dass dies viel komplizierter ist als es klingt und ich fange gerade an, Systeme zu implementieren, die wirklich effizient sind. Ich denke, die Hauptsache ist, wie weit willst du gehen? Sie können Google Speech Recognition implementieren, aber am Ende ist es furchtbar buggy und funktioniert wirklich nicht auf lange Sicht oder Sie können Ihre eigene Spracherkennung implementieren, was ich gerade mache ...

3

CMUSphinx hat vor kurzem kontinuierliches Hören auf Android-Plattform implementiert. Sie finden die Demo auf der Wiki-Seite

Sie können ein oder mehrere Schlüsselwörter zum Anhören konfigurieren, das Standardschlüsselwort ist "oh mächtiger Computer". Sie können auch den Erkennungsschwellenwert konfigurieren. Derzeit unterstützte Sprachen sind US-Englisch und einige andere (Französisch, Spanisch, Russisch, etc.). Sie können Ihr eigenes Modell für Ihre Sprache trainieren.

Listening ist einfach, Sie eine Erkennungs erstellen und einfach Keyword Spotting Suche hinzufügen:

recognizer = defaultSetup() 
     .setAcousticModel(new File(modelsDir, "hmm/en-us-semi")) 
     .setDictionary(new File(modelsDir, "lm/cmu07a.dic")) 
     .setKeywordThreshold(1e-5f) 
     .getRecognizer(); 

recognizer.addListener(this); 
recognizer.addKeywordSearch(KWS_SEARCH_NAME, KEYPHRASE); 
switchSearch(KWS_SEARCH_NAME); 

und einen Listener definieren:

@Override 
public void onPartialResult(Hypothesis hypothesis) { 
    String text = hypothesis.getHypstr(); 
    if (text.equals(KEYPHRASE)) 
     // do something 
} 
Verwandte Themen