[asterisk-speech-rec] Sphinx and AGI integration; Digium vs VoIP gate

johny jj2 johnyjj2 at gmail.com
Thu Dec 17 14:55:38 CST 2009


Hello!

I would be very grateful if you can answer my questions, at least with
one sentence :-). Or simply answer e.g. "1-3, 2-1, 3-2" (it is my
choice at this moment) and give short explanation :-).

I'm familiar with using SphinxTrain and Sphinx4. I'd like to create
such an IVR-ASR system that:
a. user calls special number
b. he or she speaks twelve digits
c. server recognizes digits, calculates control sum and inform the
user about this sum
d. second and third steps are repeated many times until the user says 'finish'

There are some things which I should consider:

---------------------------------------------------------------------------------------
1. HOW TO ENABLE ACCESS TO ASTERISK FROM MOBILE PHONE (choice of
hardware and services)
keywords: server, Digium card, SIP/ITSP provider, PSTN/DID number
---------------------------------------------------------------------------------------

I've got server with access to internet. Unfortunately this server
runs on Windows (but I try my best to convince its admin to switch to
Linux and I may succeed). What should I buy for this server? I thought
about:

1-1. http://www.planet.com.tw/en/product/product_ov.php?id=4160 (price
about 230 euro)
1-2. Digium card (I don't know approximate prices)
1-3. buying service from SIP provider (what may be the prices of such
a service?)
1-4. or should I rent server?

Ad. 1-2:

I asked companies from my country and only two providers answered me.

First one (HaloNet) told me that in order to configure Asterisk for
HaloNet I need: 1. account (https://www.halonet.pl/rejestracja), 2.
password to account, 3. name for SIP server (sip.halonet.pl).
Additionally, to test incoming calls, I need PSTN number. They told me
to register for the service and then send mail to them with request to
add test number. They also provided examplary configuration for
Asterisk. How to create or obtain my name for SIP server?

Second one (Ipfon) told me to 1. create an account
(https://rejestrator.ipfon.pl/index.php?version=ipfon_starter&scenario=telefon),
2. configure trunk for Asterisk
(http://forum.ipfon.pl/index.php?topic=64).

I also asked on Ekiga mailing list (it is not form my country;
http://mail.gnome.org/archives/ekiga-list/2009-December/msg00046.html).
They told that they cannot provide what I need. They told about ITSP
(not SIP) providers and DID (not PSTN) number. I thought I understand
that I need PSTN number from SIP provider. They told I need DID number
from ITSP provider and I'm really confused. So what do I need exactly?

After all I guess it would work like this: user -> mobile phone ->
call -> servers of providers -> network cloud -> my server ->
Asterisk. Am I right?

Ad 1-4:

At first I thought about using server which they can provide me.
Access to physical, proprietary device would be necessary for 1-1 and
1-2. However for 1-3 I can consider both options (to have my own
server or to rent server from somebody else). It is popular thing to
buy some space on server to upload webpage. Are there similar services
for what I'd like to do? In other words I need Linux server with
Asterisk and probably Sphinx. The disadvantage of my server is that
I've got Windows and perhaps I will have to use Asterisk in Windows
(however it is not a sure thing, there is possiblity that I would be
able to convince administrator to switch to Linux).

--------------------------------------------------------------------------------
2. HOW TO ENABLE SPEECH RECOGNITION ON SERVER WITH ASTERISK (choice of software)
keywords: AGI scripts, Sphinx4, ScribbleJ plugin, PocketSphinx
--------------------------------------------------------------------------------

2-1. I found this: http://www.voip-info.org/wiki/view/Sphinx . It is
AGI script to be called from Asterisk. Am I right that the only what I
need is Asterisk and Sphinx4?
2-2. I found this: http://scribblej.com/svn/ . What kind of advantage
does it have if it looks like the same can be done much easier with
2-1? For this solution it would look like: Asterisk <-> ScribbleJ
plugin <-> Sphinx4 (if it is possible to integrate it with Sphinx4, it
was tested only for PocketSphinx).
2-3. Are there any other ways possible?

------------------------------------------------------------------------------------
3. WHERE TO SPECIFY ALGORITHM? (Asterisk + Sphinx or Asterisk +
AGI/AEL/LUA scripts)
------------------------------------------------------------------------------------

I am also curious about the way how to specify the algorithm of the talk.

3-1. Formal grammars and source code for Sphinx4 application

At first I thought about writing application for Sphinx4. The
application is written in java, normally executed as "java -mx256m
-jar bin/ApplicationName.jar". I create: a) acoustic model (it is not
English and it cannot be downloaded from VoxForge so I had to create
it myself in SphinxTrain), b) language model (created with lmtoolkit
online), c) formal grammars (it is crucial for the algorithm), d) list
of words, list of phonemes, e) main application (java source code). I
create (a) from (b) and (d) and then I use (c) and (a) for (e).

3-2. Dialplan with AEL/LUA script

But later I talked a little bit on #asterisk at Freenode. (I installed
Pidgin in order to contact ScribbleJ, author of the plugin, but I
couldn't contact him after all). They told me "Implement the logic in
the dialplan. Or if you choose to use an embedded language like AEL or
LUA". So don't I need java source code from Sphinx4 at all? Do I need
to have installed Sphinx4 at all :-)? May you give me link to some
kind of tutorial about creating these dialplans? Do I still need
formal grammars from 3-1?

Thanks very much for help in advance :-)!
Greetings!



More information about the asterisk-speech-rec mailing list