Spracherkennungs-API

Ich bastle schon seit einiger Weile an einer Anwendung (In C#), der ich via Sprachsteuerung befehle gebe, z.B. „Habe ich E-Mails?“, woraufhin das E-Mail-Programm geöffnet wird.
Bisher nutzte ich dafür die Windows-Speech-API („SAPI“), die allerdings oft schlechte Ergebnisse liefert. Der Code, den ich dafür verwende ist ungefähr so aufgebaut wie der in diesem Beispiel:
http://blogs.msdn.com/b/rlucero/archive/2012/01/17/s
Ich habe gehört, dass eine Spracherkennung „in der Cloud“ bessere Ergebnisse erzielt, also habe ich mal gesucht, und neben kostenpflichtigen Diensten (da ich das ganze nur für mich und vielleicht ein paar Freunde mache, möchte ich aber kein Geld ausgeben) die unoffizielle Google Speech API gefunden, die meinen Bedürfnissen (wenn ich diese Seite richtig verstanden habe) entspricht. Ich habe das hier gefunden: http://mikepultz.com/2011/03/accessing-google-speech
Das ganze ist aber in PERL (bzw. PHP), und ich weiß nicht, wie ich das so umbaue, dass es in C# passt. Grundkenntnisse in PHP habe ich, und ich habe mir gedacht, dass ich notfalls auf meinem Server eine PHP-Datei anlege, der ich das irgendwie zukommen lasse, die das dann an die Google API weiterleitet. Wie ich in C# vom Mikrofon aufnehme weiß ich, ebenfalls wie ich mit WebRequest strings an PHP-Dateien poste.

Jetzt meine Frage: Wie muss man diesen PERL-Skript umbauen, damit er unter C# läuft (falls das überhaupt möglich ist, da PERL ja eine auf Server zugeschnittene Sprache ist), oder wie muss ich es anstellen, die Aufganommene WAV oder MP3-Datei an eine PHP-Datei abzugeben, die das an die Google API weiterleitet.

Schon mal im voraus vielen Dank für alle Antworten auf diese vermutlich nicht ganz leichte Frage.

Die von dir angegebene Perl-Geschichte ruft die Google-API auf.
Diese API ist ein Webdienst, d.h. wenn du dir ein PHP-Skript bastelst(deine eigene API :smile: ) und das von C# aus ansteuerst, kannst du auch direkt in C# die Google-API ansteuern und dir somit dein eigenes PHP-Skript sparen - wäre ja doppelte Arbeit.
Musst dich halt mit dem Posten und Holen sowie der Authentifizierung bei Google und den HTTP-Request-Themen in C# beschäftigen.

Schon mal im voraus vielen Dank für alle Antworten auf diese
vermutlich nicht ganz leichte Frage.

Die Frage war relativ leicht. Ich hoffe du kannst damit in C# weitermachen, ohne den unnötigen Umweg über PHP. Die Perl LWP Aufrufe in C# Request umzubauen sollte dir hoffentlich leichtfallen.

Dein Projekt klingt auf jeden Fall sehr interessant!
Würd mich freuen, zu hören wie du es gelöst hast.

Wie ich poste, habe ich mittlerweile herausbekommen. Bei mir stellt sich jedoch das Problem, dass ich nicht weiß, wie ich im FLAC-Format (welches erforderlich ist) aufnehme, bzw. in dieses konvertiere. Auf dieser Webseite http://robertbuzink.com/2011/hack-into-the-google-ch… habe ich gesehen, wie man das, was ich vorhabe, mit der Linux-Konsole umsetzt. Leider ist die Synthax aber nicht mit C# vergleichbar.
Aber danke für die Antwort.

wenn du weisst, wie du wav aufnimmst, hilft dir das folgende eventuell weiter?

http://stoyanoff.info/blog/2010/01/08/encoding-uncom…

Vielen Dank für die abermals sehr schnelle Antwort! Ich werde es mir mal ansehen

wenn du weisst, wie du wav aufnimmst, hilft dir das folgende
eventuell weiter?

http://stoyanoff.info/blog/2010/01/08/encoding-uncom…

Das ins Projekt einzubinden klappt soweit, aber wenn ich dann den Konverter mit meiner Datei fütere, dann sagt er mir, dass er meine Datei nicht akzeptiert, weil sie nur 8 bits per sample hat, was von flac nicht unterstützt wird. Da ich fürchte, dass eine weitere Konvertierung zu viel Zeit in Anspruch nehmen würde, wäre meine Frage, wie ich Parameter, wie bei z.B. diese BPS-Rate beeinflussen kann. Ich nutze diese Variante: http://csharp-tricks.blogspot.com/2010/09/ton-von-mi…

Ich würde mich aber auch auf eine neue Art einlassen. Das Senden der flac-Datei werde ich mit WebPost erledigen.

Ein weiteres Mal vielen Dank!

sorry - hab dazu leider keinen Plan…
gruß oldy