05.11.2013 Aufrufe

Entwicklung einer Automatenbedienung mit einer leistungsfähigen ...

Entwicklung einer Automatenbedienung mit einer leistungsfähigen ...

Entwicklung einer Automatenbedienung mit einer leistungsfähigen ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Auch „AudioFile“ kann als eine weitere Komponente im AudioManager registriert<br />

werden. Dabei werden die Daten vom „SoundcardFrontend“ ignoriert und durch die<br />

Daten aus <strong>einer</strong> Audiodatei ersetzt, die weiter bearbeitet werden können. Man kann also<br />

beliebige Komponente, die von der Klasse „AudioComponent“ (libAudio.so) abgeleitet<br />

wurden, im AudioManager registrieren, indem man diese Komponenten einfach startet.<br />

audioFrontend->getInput(0)->setSource(audioFile->getOutput(0));<br />

audioFrontend->getInput(1)->setSource(audioFile->getOutput(0));<br />

audioFile->start();<br />

dcBlocker->getInput(0)->setSource(audioFile->getOutput(0));<br />

dcBlocker->start();<br />

asrApp->getInputAdaptor()->getInput(0)->setSource(dcBlocker->getOutput(0));<br />

audioFrontend->start();<br />

asrApp->start();<br />

In diesem Beispiel für einen möglichen Quellcode werden die Daten aus <strong>einer</strong><br />

Audiodatei (0 = links, mono) an „audioFrontend“, das sowie ein Objekt der Klasse<br />

„SoundcardFrontend“ als auch der Klasse „ISDNFrontend“ sein kann, zur Ausgabe über<br />

die Lautsprecher (1 = rechts) bzw. Telefonhörer übergeben. Diese Daten werden <strong>mit</strong><br />

dem DC- Filter bearbeitet. Von diesem Filter werden die Daten als Signalabschnitte an<br />

„BufferedIOAdaptor“ geleitet (die dritte Zeile von unten). Mit „audioFrontend“ und<br />

„asrApp“ wird der ganze Prozess gestartet, entsprechend rechte und linke Seiten der<br />

Abbildung 16. Mit diesem vereinfachten Quelltext kann man also eine Audiodatei<br />

wiedergeben und gleichzeitig <strong>mit</strong> dem Spracherkennungssystem erkennen lassen. Da<br />

diese Art der Datenübergabe bidirektional funktioniert, kann man eine Spracherkennung<br />

über Mikrofon während der Audiodatei- Wiedergabe durchführen.<br />

Die in der Abbildung 16 punktiert dargestellten Bereiche von Abtastwerten und<br />

Merkmalsvektoren sind gelöschte Werte. Die Abtastwerte werden in <strong>einer</strong> Reihe<br />

abgespeichert, so wie das ganze Signal aussehen würde. Analyzer nimmt jedes Mal die<br />

ersten 200 Werte (bei <strong>einer</strong> Abtastfrequenz von 8000 Hz) und verarbeitet diese, die<br />

ersten 80 davon werden dann gelöscht. So kommt es zu <strong>einer</strong> Überlappung (s.<br />

Abbildung 2 auf der Seite 8). Das wird <strong>mit</strong> dem folgenden Quellcode aus<br />

„plugins/AsrHGH/AnalyzerHGH.cpp“ realisiert:<br />

AudioFrame* frame1 = _inputBuffer->getFrame(200);<br />

AudioFrame* frame2 = _inputBuffer->removeFrame(80);<br />

Seite 37

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!