2016-08-03 35 views
1

Ich verwende Aculab Prosody-Audiokarte, die Sounds von einem bestimmten Kanal aufzeichnet. Ich möchte jetzt eine Warnung auslösen, wenn der Kanal z. 24 Stunden. Hat jemand Erfahrung damit, wie dies mit der Prosody Speech Processing API implementiert werden kann? Ich implementiere das in Java und verwende JNA für native Aufrufe.Erkennen Stille mit Prosody Speech API

Antwort

0

Ich kann nicht mit dem Java Teil davon helfen, aber ich bin mit dem Aculab API unter der Annahme, etwa für alle gleich, so:

Es gibt zwei Möglichkeiten. Wenn Sie den Kanal bereits aufnehmen und die Aculab High-Level Recording-API verwenden, dann gibt es einen Parameter für "max silence", der die Aufzeichnung stoppt, wenn der Kanal so lange still ist. Ich habe es nie für einen Zeitraum länger als ein paar Sekunden selbst wenn:

http://www.aculab.com/support/pdf_documents/v6_linux/TiNG/pubdoc/gen/apifn-sm_record_start.html#field-max_silence

Wie Sie auf dieser Web-Seite in können, dies erfordert die Prosodie Firmware-Modul „Grunzen“, die mehr verwendet werden kann, direkt mit sm_listen_for. Sie sind wahrscheinlich dies bereits verwenden, wenn Sie für DTMF sind listeing, und Sie werden sehen, dass diese Funktion auch eine paramamter für „gruint detection“ hat, finden Sie hier:

http://www.aculab.com/support/pdf_documents/v6_linux/TiNG/pubdoc/gen/apifn-sm_listen_for.html

Wenn Grunzen Erkennung aktiviert ist, Eine Erkennung (ähnlich einer DTMF-Erkennung) wird ausgelöst, um zu sagen, dass ein Ton vorhanden ist. Ich verwende dies auf meinem System, um zu verfolgen, welche Person in einer Konferenz zu einem bestimmten Zeitpunkt spricht, und es funktioniert ganz gut. In Ihrem Fall wollen Sie nur Code schreiben, um zu sehen, ob es lange kein "Grunt" (Rauschen in der Leitung) gibt, also verfolgen Sie einfach, wann Sie eines dieser Signale zuletzt erhalten haben.