Entwickler-Ecke

Multimedia / Grafik - Mikrofonsignal auswerten


mambo - Fr 30.05.03 09:30
Titel: Mikrofonsignal auswerten
Hallo !

Ich habe ein Problem:

Ich möchte folgendes Programm schreiben:
1 Ein Wort erscheint auf dem Bildschirm
2 sobald über das am Computer angeschlossene Mikrofon ein Signal kommt (Sensibilität des Signals sollte einstellbar sein), verschwindet das Wort, und das nächste Wort erscheint am Bildschirm.

Die Zeit zwischen dem Erscheinen des Wortes am Bildschirm und dem Signal vom Mikrofon möchte ich in Sekunden und Millisekunden stoppen.

Wie kann ich dauernd abfragen, ob ein Signal vom Mikrofon kommt, und wie stark es ist ????

Für Eure Lösungsvorschläge oder Hilfe wäre ich sehr dankbar.
Heinz


Andreas Pfau - Sa 31.05.03 21:06

Hallo,

also, OB ein signal kommt, kann man NICHT feststellen. Der Wert ist analog, d.h. es "kommt" immer was, nur isses halt manchmal ~0.

Den Wert kann man mit den WaveIn...()-Funktionen einlesen, immer in Blöcken. aber dass sind dann nur Pegel, das hat nix mit Spracheingabe zu tun.

Aber, hast du DX9? Ich glaube, das unterstützt Spracheingabe, oder? Zumindest gibt's im DX9-Diagnosetool so 'ne Einstellung. Villeicht solltest du dich da mal schlau machen.


mambo - So 01.06.03 21:34

ich brauche keine Spracherkennung oder sowas.

Ich möchte nur erfassen, ob ein Signal kommt, und bei einer bestimmten Signalstärke, die einstellbar sein sollte, also z.B. auch wenn man nur ins Mikrofon hustet, auf das nächste Wort umzuschalten.

Klingt zwar komisch, is aber so...

Kannst du mir da einen Tip geben ?

Danke
Heinz


Andreas Pfau - So 01.06.03 21:46

Ach so... Also, zur Waveeingabe empfehle ich dir das "WaveIn Example v.1.0" von http://www.torry.net/samples_graphics.htm. Das Problem ist halt, dass du keine Augenblickswerte auswerten kannst, sondern nur längere Samples (ab Millisekunden-Bereich).

Nimm also WaveIn, werte das Signal periodisch aus, und ab einem bestimmten Pegel kannst du dann weiterschalten. Das ist die einzige mir bekannte Methode, auch wenn ich so was noch nicht selbst gemacht habe.