Spracherkennung (ASR) für Asterisk

tostmann

Neuer User
Mitglied seit
11 Okt 2006
Beiträge
7
Punkte für Reaktionen
0
Punkte
0
Hallo!

Wir haben eine professionelle Spracherkennung an Asterisk angebunden und suchen dafür noch Beta Tester. Es stehen 7 Sprachen zur Auswahl.

Nach der Installation unseres Moduls steht das neue Kommando ASR() im DialPlan bereit und ermöglicht auf einfachste Weise powervolle Erkennung vordefinierter Wörter oder Phrasen.

Eine Doku hab ich auch geschrieben, die gibts (in englisch) hier: http://www.voip-info.org/wiki/view/Asterisk+cmd+ASR

Viel Spaß!
 
Hinweis: das ganze funktioniert (lt. Doku) mittels eines externen Servers, der die Spracherkennung macht. Der Anbieter stellt diesen als ASP zur Verfügung, und möchte je Spracherkennung abrechnen.
 
@tostmann

Wie sieht es mit der Erkennung von Zahlen/ganzen Rufnummern aus, die gesprochen werden?

Gruß,
Tin
 
TinTin schrieb:
Wie sieht es mit der Erkennung von Zahlen/ganzen Rufnummern aus, die gesprochen werden?

Der Erkenner arbeitet intern mit XML-Grammatiken. Diese werden bei Aufruf des Befehls automatisch von uns erzeugt. Um Zahlen- oder Zahlenfolgen zu erkennen, müssen speziellere Grammatiken genutzt werden. Zu Gunsten der Einfachheit des Kommandos haben wir das erstmal nicht vorgesehen.

Natürlich kannst Du auch die komplette Grammatik mit einem zusätzlichen Kommando, was wir dann noch einbauen müßten, übermitteln. Dann wirds nur leider auch mit dem Verzweigen im Dialplan komplizierter.

Ob sich der Aufwand, gerade bei Ziffern, die jeder per DTMF eingegeben kann, lohnt scheint mir fraglich.

Aber wieso nicht.... Besteht ernsthaftes Interesse an Support von nativen XML-Grammatiken?

IDEE: Das derzeitge ASR-Kommando auf "Erkennen von Ziffernkolonnen" und dann Sprung auf erkannte Extension zu erweitern, werde ich mal prüfen.

Gruß!
 
tostmann schrieb:
Ob sich der Aufwand, gerade bei Ziffern, die jeder per DTMF eingegeben kann, lohnt scheint mir fraglich.

Leider gibt DTMF Erkennung doch immer wieder Probleme auf - manche VoIP Provider unterbinden DTMF sogar komplett, genau deswegen meine Frage ;)

Gruß,
Tin
 
Achso?

Also es ist jetzt implementiert. Zahlen müssen als Ziffern einzeln gesprochen werden.

Die Option heißt: d

d - erkennt beliebig lange Ziffernkolonnen (mit dem Timeout aufpassen!)
d7 - erkennt genau 7 Ziffern
d3- - drei oder mehr
d2-4 - Ziffern 2 bis 4 stellig
usw ...

Bei Erkennung erfolgt ein Sprung auf Extension digits<ziffern>,1 im aktuellen Context.

Die zusätzlich angegebenen Token werden weiterhin erkannt und behandelt.
 
Zuletzt bearbeitet:
Hallo,

leider lässt sich das Modul unter Asterisk 1.4.22 nicht kompilieren.

Code:
make[1]: Entering directory `/usr/src/asterisk-1.4.22/apps'
   [CC] app_asr.c -> app_asr.o
app_asr.c:78: Warnung: Datendefinition hat keinen Typ oder Speicherklasse
app_asr.c:78: Warnung: »int« ist Standardtyp in Deklaration von »STANDARD_LOCAL_USER«
app_asr.c:80: Warnung: Datendefinition hat keinen Typ oder Speicherklasse
app_asr.c:80: Warnung: »int« ist Standardtyp in Deklaration von »LOCAL_USER_DECL«
app_asr.c: In Funktion »asr_loop«:
app_asr.c:371: Fehler: Inkompatibler Typ für Argument 1 von »ast_inet_ntoa«
app_asr.c:371: Fehler: zu viele Argumente für Funktion »ast_inet_ntoa«
app_asr.c: In Funktion »asr_exec«:
app_asr.c:471: Warnung: Implizite Deklaration der Funktion »LOCAL_USER_ADD«
app_asr.c:485: Warnung: Implizite Deklaration der Funktion »LOCAL_USER_REMOVE«
app_asr.c: In Funktion »load_config«:
app_asr.c:499: Warnung: Zuweisung streicht Qualifizierer von Zeiger-Zieltyp
app_asr.c:502: Warnung: Zuweisung streicht Qualifizierer von Zeiger-Zieltyp
app_asr.c:505: Warnung: Zuweisung streicht Qualifizierer von Zeiger-Zieltyp
app_asr.c:508: Warnung: Zuweisung streicht Qualifizierer von Zeiger-Zieltyp
app_asr.c: Auf höchster Ebene:
app_asr.c:519: Warnung: kein vorheriger Prototyp für »reload«
app_asr.c:523: Warnung: kein vorheriger Prototyp für »unload_module«
app_asr.c: In Funktion »unload_module«:
app_asr.c:525: Fehler: »STANDARD_HANGUP_LOCALUSERS« nicht deklariert (erste Benutzung in dieser Funktion)
app_asr.c:525: Fehler: (Jeder nicht deklarierte Bezeichner wird nur einmal aufgeführt
app_asr.c:525: Fehler: für jede Funktion in der er auftritt.)
app_asr.c: Auf höchster Ebene:
app_asr.c:529: Warnung: kein vorheriger Prototyp für »load_module«
app_asr.c:540: Warnung: kein vorheriger Prototyp für »description«
app_asr.c:544: Warnung: kein vorheriger Prototyp für »usecount«
app_asr.c: In Funktion »usecount«:
app_asr.c:546: Warnung: Implizite Deklaration der Funktion »STANDARD_USECOUNT«
app_asr.c: Auf höchster Ebene:
app_asr.c:550: Warnung: Funktionsdeklaration ist kein Prototyp
make[1]: *** [app_asr.o] Fehler 1
make[1]: Leaving directory `/usr/src/asterisk-1.4.22/apps'
make: *** [apps] Fehler 2
Gibt es dafür eine Lösung?

Vielen Dank

Gerd
 
Hallo,

ich krame mal den Beitrag wieder raus..

Wie sieht es inzwischen aus?

- Ist der externe Server noch online, werden Kosten erhoben?
- Wie lässt sich das Modul bei 1.4.22 einbinden? In dem Makefile vom apps Verzeichnis gibt es kein "APPS=.." mehr.

Viele Grüße,
Philipp
 
Ich kramel dann auch nochmals.

Gehe ich recht in der Annahme das der CMD ASR kurz nach seiner Entdeckung eingemottet wurde, bzw. unter 1.4 oder 1.6 nicht mehr zur Verfügung steht.

Andere ASR Möglichkeiten sind ggf. bekannt?

LG Stefan
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.