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

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

viterbi_syn_exit(_viterbi, _references, _syntax);<br />

best_path_exit(_bestPath, _syntax, MaxSpeechFrames);<br />

Diese Funktionen werden auch bei allen verbleibenden Zuständen aufgerufen.<br />

Es kann auch sein, dass das Spracherkennungssystem von Außerhalb gestoppt wurde,<br />

weil z.B. die zu erkennende Audiodatei zu Ende abgespielt wurde oder der<br />

Sprachdetektor in den Zustand „VAD_OTHER“ gewechselt hat, Recognizer aber einige<br />

sinnvolle Ergebnisse ausgerechnet hat und nicht geschafft hat, diese auszuwerten. Um<br />

die Verluste von Ergebnissen auszuschließen, wartet das System in dessen Funktion<br />

„ASRApplication::stop()“ bis Recognizer fertig ist, „RecognizerHGH::wait()“:<br />

void RecognizerHGH::wait()<br />

{<br />

if (!_speech_detected && _speechFrameDetected)<br />

recognize();<br />

}<br />

Mit „_speech_detected“ wird geprüft, ob das Ende der Sprache vielleicht doch richtig<br />

erkannt wurde und die Ergebnisse ausgewertet wurden, um die doppelte Auswertung zu<br />

vermeiden. Falls das nicht der Fall ist und in mindestens einem Signalabschnitt die<br />

Sprache erkannt wurde, wird die Funktion „RecognizerHGH::recognize()“ aufgerufen:<br />

_realResults = backtrack_viterbi_syn(bestref, fromframe, _viterbi, _syntax,<br />

_references, _speechFrame);<br />

best_path_calc(_bestPath, _references, _syntax, _viterbi, _speechFrame);<br />

Alle berechneten Objekte werden in „dataHGH“ gepackt und an Adaption als Callback<br />

gesendet (s. Seite 43, oben). „_realResults“ enthält alle Informationen über die<br />

erkannten Äußerungen und wird in der Funktion „RecognizerHGH::saveLabel(Pfad)“<br />

für das Abspeichern von Labeln verwendet.<br />

create_label(Pfad, &_realResults, _references, _syntax);<br />

Nachdem das Spracherkennungssystem „ApplicationHGH“ erfolgreich beendet aber<br />

noch nicht zurückgesetzt wurde, kann Funktion „RecognizerHGH::processResults()“<br />

aufgerufen werden, die nur die Namen der erkannten Wortmodellen zurückliefert, ohne<br />

diesen der Modellen für die Pause und Störung. Das passiert z.B. in der Funktion<br />

„Recognize::startThread()“, in denen alle Schnittstellen wie Spracherkennungssystem,<br />

„audioFrontend“, DC-Filter usw. aneinander angepasst, gestartet und beendet werden.<br />

Seite 45

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!