.titleBar { margin-bottom: 5px!important; }

Spracherkennung unter Asterisk mit Sphinx

Dieses Thema im Forum "Asterisk Allgemein" wurde erstellt von gkservice, 28 März 2005.

  1. gkservice

    gkservice Neuer User

    Registriert seit:
    21 Feb. 2005
    Beiträge:
    63
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hat jemand schon mal Versuche gemacht mit dem Spracherkennungsprogramm Sphinx http://www.speech.cs.cmu.edu/sphinx/

    Wir haben Intresse daran dies in einigen Versuchen auszuprobieren und evtl eine Integration in Asterisk zu versuchen.
    Folgende Ideen gibt es:
    - Spracherkennung für ein Telefonbuchdienst (firmenintern) mit 100 bis 200 Einträgen

    grob sollte das so aussehen in Asterisk
    ------
    ; used call Phonebook
    exten => 205,1,Wait(1)
    exten => 205,2,Record(/tmp/asterisk-recording:wav|1) ;gewünschten Teilnehmer ansagen
    exten => 205,3,Wait(1)
    exten => 205,4,Playback(/tmp/asterisk-recording) ; wiederholung des Teilnehmer names
    exten => 205,5,System(/?????/java sphinx??.jar) ; Aufruf der Sphinx Engine mit Dem Parameter (Speicherort des .wav File)
    exten => 205,6,system (........) ; script zur auswertung des texten von pos 5
    exten => 205,7,........ ; teilnehmer hat nummer ......
    exten => 205,8,........ ; menü zur abfrage ob ok und wählen oder abbruch
    exten => 205,9,Hangup
    -----

    das ist rein schemahaft und sollte noch ausgebaut werden (Menü, .....)
    die Position 7 sollte dann ein Script werden das in einer DB oder flatfile nachschaut und das ergebniss von 'sphinx' = name in eine nummer umsetzt. Die DB sollte es auch ermöglichen späte mehrere Einträge pro TN zu hinterlegen (Handy, Fax, Homeoffice, ...)

    Die entscheidende Frage ist, kann Sphinx das? Wie ist das mit der Geschwindigkeit (Laden Java, start .jar, ausgeben wert)
    Ich würde mich über Meinungen und Anregungen freuen, gerne teile ich auch Erfolgen (und Misserfolge) sowie Konfiganleitiungen hier im Forum mit.
     
  2. oggy

    oggy Neuer User

    Registriert seit:
    29 Sep. 2004
    Beiträge:
    105
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    *finger-heb* Interesse besteht auf jeden Fall ...
     
  3. rannseier

    rannseier Aktives Mitglied

    Registriert seit:
    5 Mai 2004
    Beiträge:
    986
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Moin..

    Geht sowas schon mit einem 350Mhz Pentium oder ist da mehr Power nötig?


    MfG,
    Karl
     
  4. endler

    endler Neuer User

    Registriert seit:
    6 Apr. 2005
    Beiträge:
    7
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Sehr interessant.

    Allerdings würde ich so eine Art Sphinx-Server basteln, da ein Start der JVM für jeden eingehenden Call absoluter Overkill in Bezug auf Resourcen und Timing wäre. Dem Serverprozess dann bei einem Call den Dateinamen per TCP/IP zukommen lassen, sollte über AGI machbar sein z.B. http://tanesha.net/Wiki/JastAgi.html oder http://www.voip-info.org/wiki-Asterisk-java.

    Grüße aus München
    /endler
     
  5. srt

    srt Neuer User

    Registriert seit:
    10 Apr. 2005
    Beiträge:
    7
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Köln
    Die JVM nur einmal zu starten ist sicher eine gute Idee.
    Noch besser als den Text vorher aufzuzeichnen und dann auszuwerten waere es Sphinx direkt mit dem Voice-Stream zu fuettern. Solange es noch keine fertige IAX2 library fuer Java gibt, koennte man das ueber SIP realisieren.
    Also einen Sphinx-Server, der ueber SIP an Asterisk gekoppelt ist, die Spracherkennung vornimmt und danach den Anruf (z.B. ueber das Manager API) an die ermittelte Extension weiterleitet.

    =Stefan