[ERLEDIGT] Spracherkennung wie "Okay Google"

G

Geist5000

Neues Mitglied
1
Hallo liebes Forum,

ich habe mir vorgenommen für mich eine App zu schreiben mit dem man theoretisch das Handy mit der Sprache Fernsteuern kann. Ich habe mich jetzt ein bisschen schlau gemacht und habe schon herausgefunden wir man eine Bildschirmeingabe "faked". Jetzt fehlt "nur noch" die Stimmerkennung. Ich möchte die Funktion von Google, dass man überall Okay Google sagen kann nachstellen, aber mit einem anderen Codewort.

So wie ich das verstanden habe ist es mit der Google Spracherkennungs-API nicht möglich. Deswegen habe ich mir gedacht ich schaue mal nach anderen Möglichkeiten um. Dabei ist mir die Bing-Spracheingabe-API ins Auge gesprungen.

So jetzt habe ich erstens das Problem das ich nicht weiß wie ich mit der Bing-Spracherkennungs-API umgehen soll und zweitens ob es überhaupt mit dieser API möglich ist.

Ich erhoffe mir das ein paar ganz nette Android-Hilfe-Foren Nutzer mir die Frage beantworten könnten mit ob es überhaupt möglich ist so ein Programm zu schreiben und wenn ja mit welcher API. Ich bin für alle kostenlosen Lösungen offen.


Danke im voraus für eure Antworten


P.S.: Ich möchte mich nicht einer schon kompletten fertigen App bedienen die das Handy schon per Sprache steuern kann.
 
Hallo Geist,

vorab : ich habe selbst eine App draussen, die eine eigene Komanndo-Spracherkennung hat
und das "Keyword" Ok-Google ersetzt - also völlig unabhängig von Google.

Die Erkennung des KeyWords "Ok-Google" ist kein Service, sondern auf Kernel-Ebene seitens der Hersteller
integriert. (Anpassung der Hardware : z.B Signalstärke des Mikrofones)

So wie ich das verstanden habe ist es mit der Google Spracherkennungs-API nicht möglich
Das ist nicht ganz richtig : Mit "OK Google" wird die Spracherkennung getriggert. In der API kannst du allerdings angeben,
ob die erkannte Phrase dir in einem CallBack ausgegeben werden soll oder an die Suche weitergeleitet wird.
Die Erkennung deiner gesprochen Wörter findet online auf den Google-Servern statt (Neuronal/Phonetisch)
- die offline Erkennung statisch und ist sehr rudimentär.


Wenn du das Ganze selbst umsetzen möchtest, dann gibt es viele Dinge, die du Berücksichtigen musst :

a)
Documentation

Das sieht zwar hübsch aus - allerdings bremse bitte deine Euphorie - ES FUNKTIONIERT SO NICHT.
Aber du kannst mit einigen Änderungen vernünftig darauf aufsetzen - (Änderung des C++ Codes notwendig)

b)
Dann benötigst du eine eigene vernünftige PTM Engine - das sind Sprachmuster, die gesampelt werden -
Ich habe dazu über Wochen hinweg ganze Hörbücher eingelesen - Die Rechner laufen dazu 24/7.
c)
Dann erfordert das Ganze neben Java sehr sehr gute NDK/C++ Kenntnisse.
d)
Darüber müsste deine App auch Rücksicht auf die externen Apps nehmen und das Mikrofon nur
temporär benutzen. Dann musst du je nach Hersteller des Mikrofones auch die Engangsspannung regulieren lassen.


Bing ist somit leider der falsche Ansatz
 
Zuletzt bearbeitet:
Ersteinmal danke für deine schnelle Antwort. Ersteinmal weil es mich interesiert, verstehe ich das richtig das die Hersteller der Handys (z.B. Samsung) die Funktion einbauen das die Spracherkennung von Google startet wenn man Ok Google sagt (Also sozusagen ein Event im Betriebssystem gibt welches dann Googles Spracherkennungssoftware nutzt um zu erkennen wann Ok Google gesagt wurde?)


So und jetzt noch einmal ein Nachschub zur Verständigung. Ich hatte mir das so vorgestellt das ich einen Service starte der dauerhaft im Hintergrund läuft und das Microfon abhört. Ich hatte gehoft das es die Möglichkeit gibt immer wenn etwas als gesprochen erkannt wird, dieses als string zu speichern. Dann schaue ich ob es meinem Codewort entspricht und wenn ja kann ich die Sachen danach verarbeiten. Gibt es in irgendeiner Spracherkennungs-API diese Möglichkeit?

P.S.: Ich habe kein problem damit Spracherkennungs APIs zu verwenden ich wollte bloß nicht, dass einfach nur ein link zum Play Store gepostet wird und dann dazu geschrieben wird: Das gibt es schon.
[doublepost=1502040953,1502040839][/doublepost]
swa00 schrieb:
Bing ist somit leider der falsche Ansatz
Warum denkst du das Bing nicht die gleichen funktionen wie Google hat?
 
Hallo Geist,

zu a ) ja , die Triggerung wird vom Kernel vorgenommen , das ist keine API und auch kein Service
zu b)
So und jetzt noch einmal ein Nachschub zur Verständigung. Ich hatte mir das so vorgestellt das ich einen Service starte der dauerhaft im Hintergrund läuft und das Microfon abhört.
Du kannst keinen Service rund um die Uhr laufen lassen , das lässt Android nicht zu , der muss Alarmgetriggert sein.
Das Mikrofon würde im übrigen durch deinen Service ständig blockiert sein, Telefonieren wäre z.b. nicht mehr möglich

Ich hatte gehofft das es die Möglichkeit gibt immer wenn etwas als gesprochen erkannt wird, dieses als string zu speichern.
Dafür benötigst du die PTM Engine.

API : Wenn du das Ganze nachwievor mit "Ok Google" starten möchtest, dann kannst du natürlich die Google API nehmen.
Diese wertet deine gesprochenen Wörter online auf den Google servern aus und liefert dir das Ergebnis in einem Callback zurück

Warum denkst du das Bing nicht die gleichen funktionen wie Google hat?
Weil Bing es schlichtweg nicht unterstützt :) daran kannst und wirst du nichts ändern :)
 
Aber ich will es doch gerade nicht mir Ok Google starten. Gibt es deiner Meinung nach die Möglichkeit es so umzusetzen, dass ich z.B. durch Hallo Handy den Satz der danach gesprochen wird zu verarbeiten, egal in welchem Fenster ich mich befinde?
 
Wie das geht , habe ich dir oben erklärt - da ich selbst eine App, die sowas macht, im App-Store habe.
(Punkt a bis d)
 
Leider ist es mir zu aufwendig die Kernel umzuschreiben(wenn ich das richtig verstanden habe). Und so hat sich der traum schon wieder verflüchtigt ;). Trotzdem danke für deine antworten.

eine kurze frage wie heißt die API von Google?
 

Ähnliche Themen

M
Antworten
3
Aufrufe
187
moin
M
R
Antworten
3
Aufrufe
1.652
Ritartet
R
C
  • CoderboyPB
Antworten
3
Aufrufe
931
swa00
swa00
Zurück
Oben Unten