Android: Sprachsteuerung
[evtl. duplizieren] Aber ich finde nicht die Antworten auf meine Fragen unten.
Ich habe getan, einige der Forschung auf die Spracherkennung in den letzten beiden Tagen und ich habe nicht die Antworten auf meine Fragen:
- Ist es möglich, voice recognition as a service? Ich würde gerne etwas umsetzen wie diese: muss ich eine Nummer anzurufen, obwohl mein Handy über Spracherkennung im Standby-Modus.
- Funktioniert die Spracherkennung richtig funktioniert, um zu erkennen, mit den Worten, wenn ich auf einem Zug, bus, etc?
- Gibt es eine sensor zum erkennen der Stimme abgesehen von der Spracherkennung?
- Für Spracherkennung, um richtig zu arbeiten, braucht der Anwender zu sprechen, der näher an das Telefon?
Meinst du Stimme Anerkennung oder Vortrag Anerkennung? (Lesen Sie die voice-Anerkennung Auszug: "Spracherkennung bedeutet Identifizierung der person sprechen und ist Häufig falsch angewandt im Sinne von "Speech Recognition" - Identifizierung von dem, was gesagt wird.")
Das nächste mal bitte versuchen zu suchen, eine Frage zu einer Zeit, und stellen Sie eine Frage zu einem Zeitpunkt. Das wird Ihnen helfen, die Antwort zu finden.
Das nächste mal bitte versuchen zu suchen, eine Frage zu einer Zeit, und stellen Sie eine Frage zu einem Zeitpunkt. Das wird Ihnen helfen, die Antwort zu finden.
InformationsquelleAutor Ramesh Sangili | 2012-12-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
1) Es ist der richtige Ansatz zu setzen Spracherkennung in einem Dienst, wie es in Google-api, wo die callback-Methoden verwendet, um Ergebnisse zu erhalten. Machen Sie es laufen ständig, service muss sich mit wakelock, zu vermeiden, fallen in den sleep-Modus. Einige weitere Informationen finden Sie hier Wake locks android service wiederkehrend Es hat einen großen Nachteil - hoher Akku-Verbrauch, verursacht durch die kontinuierliche Arbeit von CPU und coninuous Berechnungen eingehenden sound-Daten. (Kann reduziert werden, mit Filter, schwellen etc.)
2) Spracherkennung ist nicht eine einfache Aufgabe. Er will riesige Anzahl von Berechnung und Daten zu verweisen. Wenn audio-Eingang nicht klar (Lärm, viele Menschen, Stimmen, etc.), es ist viel schwieriger, die korrekte Ausgabe. Was kann getan werden, um die Genauigkeit besser ist -, filter-Eingang audio: noise suppression, low pass filter, etc. Sie können nicht erwarten, dass 100% Genauigkeit, aber 80-95 % erreicht werden kann.
Schwieriger ist es zu filtern, viele menschliche Stimmen. Aber es kann verwendet werden, einige einfache amplitude (audio-Stärke) - algorithmen mit adaptiven Schwelle, die darüber entscheidet, beim Wort beginnt und endet. Idee ist, dass die richtige Stimme ist die lauteste = nächste Telefon/Gerät. So nach 4) Genauigkeit ist besser, wenn der Benutzer sprechen, nahe zum Mikrofon, denn es ist die lauteste Stimme.
3) ich weiß nicht, was du meinst mit sensor, aber es gibt algorithmen, um einfach zu erkennen, die die menschliche Stimme eher zu entschlüsseln suchten. Diese algorithmen sind sogenannte Voice Activity Detection (VAD) Einige Codes, die gefunden werden sollen, die in den Speex-Projekt-Dokumentation http://www.speex.org/
Einfachste Methode, mit der die Spracherkennung wird mit Google-Speech-api, welches ziemlich gut ist, und es erkennt viele Sprachen, aber eine Internet-Verbindung notwendig - und es dauert eine Weile zu bekommen Ergebnis.
Schneller ist CMU Sphinx, aber es hat einige Sprache-Modelle, braucht mehr RAM-Speicher und proccesor Berechnung, da alle die Dekodierung erfolgt auf dem Gerät. In meinem opininon es sehr gut, wenn dicitionary (Wörter, die revognized) klein ist, wie Befehle (Links,rechts, rückwärts, stop, start, etc).
Ich aktualisiert meine Antwort, so dass es deckt Ihre erste Frage, wie auch in Ihrem Fall Sphinx wäre sehr schnell, und sehr aqqurate da gibt es nur ein Wort benötigt, um erkannt zu werden. "HILFE"
Vielen Dank nochmals für Eure inputs. Bezüglich der 4. Frage & Antwort, wie Sie bereits erwähnt, müssen wir sprechen nahe am Mikrofon für eine bessere Genauigkeit. Angenommen ich bin auf Bus und ich brauche etwas Hilfe, wo es zu voll und zu laut, es kann nicht helfen, erkannte das Wort richtig?
"Überlaufen" bedeutet, dass es gibt viele andere menschliche Stimmen. Sie können sich vorstellen, dass es schwer ist zu filtern, diese Art von signal. Es sind nur andere Geräusche mit höherer oder niedrigerer Frequenz als die der menschlichen Sprache (300Hz - 3kHz) ist es einfacher, etwas zu machen, wie Tor, die Pässe nur für die angegebenen wave-band (die menschliche). Also um es einfacher zu machen, und erreicht eine bessere Genauigkeit, eine andere Methode verwendet: um sich Zu qualifizieren richtige signal nicht durch Häufigkeit, sondern durch die Stärke (amplitude). Natürlich in fortgeschrittenen algorithmen viele Techniken, die sowohl für die Frequenz und die amplitude, die verwendet werden,
Also, um es zusammenzufassen, es ist schwieriger zu bekommen richtige Ergebnis in lauter Ort, und die Genauigkeit hängt davon ab, wie gut die algorithmen implementiert werden. Und natürlich hängt es davon ab, wie gut ist der Algorithmus, der kümmert sich um die Spracherkennung. Aber ich gesprochen habe über Google Rede und der Sphinx, und Sie machen es wirklich gut
InformationsquelleAutor MP23