Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations SkipVought on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

connection between mobile phone and server; Asterisk and Sphinx4

Status
Not open for further replies.

johnyjj2

Technical User
Jul 28, 2009
10
0
0
PL
Hello!

I'd like to create little system such that mobile phone connects to server with Asterisk and Sphinx4 in order to perform speech recognition and then play some mp3/wav based on results of recognition. My previous topic here was: . I noticed I lack some knowledge so I decided to do it in the other way, i.e.:

1. user makes a call from mobile phone with Skype or calls SkypeIn number
2. Skype on server receives the call
3. 3rd party application redirects speech from Skype to Sphinx4
4. Sphinx4 recognizes the speech

Some more information about this approach is here: .

But later I skimmed all of forum topics which I posted and thought that maybe I should come back to this idea about Asterisk. Tell me, please, which way is easier and/or cheaper to do - Asterisk or Skype based? In that other topic you said about some SIP trunk or normal analog phone line. It requires Digium card so the answer is - Skype-based idea is cheaper. But there are also other ways of establishing the connection between mobile phone and Asterisk.

Am I right that both "Asterisk can be connected via VoIP" and Skype-based solution use the same way of accessing the server? I'd like to say that I don't want to buy any special cards which are expensive. I also don't know what kind of lines they will have in destination place for my application (what should I ask them about?). So I can either ask them and use some lines which they've got there or use internet connection. The computer must be connected to internet. Mobile phone also must have access to internet. There won't be any hotspots so the only one way of connecting mobile phone to internet is usage of mobile internet. The same way of connecting I would use for Skype if I decided for Skype-based solution.

In other words I don't want to buy any cards and I'd like to use access to mobile internet for cellular phone. I can do it in two ways - either Skype-based or Asterisk-based. I already explained Skype-based idea. And now I just wonder - would it be simpler with Asterisk?

You explained me some things in that previous topic. Sorry, but I know nothing about analog lines, T-1/PRI or BRI, Digium or Sangoma cards, PSTN/ISDN cables, ISDN PRI and my knowledge about VoIP is very limited, as well as knowledge about wireless connections in mobile telephony.

Busster told that "the mobile phone will just dial a telephone number which then connects to Asterisk. Asterisk then does your voice recognition". That's great idea but how to implement it? What should I ask those people for whom I need my application about (I mean ask about their cables, connections or other things in that room where they've got server)?

There is also other little problem. My language is not supported in VoxForge where they've got free acoustic models for some languages. I can either create very large database of recordings (some hundreads of hours) or force the user to inform Sphinx about actual user in order to choose the proper acoustic model trained for the exact user. The first option cannot be applied because it would require too much time and/or money. So I need the second way.

How to inform Sphinx about the actual user? In the case of Skype-based solution I can force users to choose their own account in Skype on mobile phone. Then my 3rd party application would talk with Skype and ask Skype about the actual user. Later it would inform Sphinx4 about the user so that it can choose the proper acoustic model. (I still need to find how to allow Sphinx to choose one of many acoustic models. I don't know it, I'll look for this information later but if you know how to do it and you can share your knowledge with me, I would be really greatful. As far as I remember there should be short article about choosing the proper acoustic model in one of CMU Sphinx webpages). But how to allow server to know who the user is if I would decide to use Asterisk-based solution rather than Skype-based one?

EngJohn mentioned there are four ways of connecting server with Asterisk to the rest of the world: 1) analog lines (PSTN), 2) ISDN (PSTN), 3) SIP (over the internet DSL/T1/WiFi), 4) GSM/GPRS/EDGE/UMTS/HSDPA. What are the expenses connected with those four solutions? Is it ordinary thing for company to have (1) or (2) or (3)? I guess the fourth one is simply having mobile internet on cellular phone and ordinary connection to internet on server.

It may be somehow lame question but what are the ways to connect computer (in this case server) to the internet? At home I've got simply modem from company in my little city which also provides cable access to TV stations, I know there are things like BlueConnect, Netia and so on but I know nothing about those. How exactly should I ask those people for whom I want to develop my application about their connection to internet?

And what is this whole cellphone as a SIP client? As far as I remember SIP is some kind of internet protocol. So what is special about having cellphone as a SIP client rather then just to have mobile phone with access to mobile internet?

Thanks very much in advance!
Greetings!
 
Ok.
A lot of questions there.
The cheapest way to test would be to set up an Asterisk box and then use a softphone like X-Lite to access the system via SIP. You can test your voice-recognition without any other investment other than time and a re-serviced PC with a network card. Connection of the Asterisk to the internet via cable modem or other means works, but be advised that the better the connection, (bandwidth etc.) the better the voice quality using VoIP.
I would not worry about the whole cell phone connection until you know your voice-recognition portion is working the way you want it to, then you can invest time and money in a SIP provider and accepting outside calls.
 
Thank you for answer!

It looks like I don't need to buy any devices for server and the only what I need is mobile phone and server connected to internet. Quality of speech recognition would depend on quality of connection which is influenced by kind of access to internet. And for testing I only need application to emulate calling the server from mobile phone, i.e. softphone X-Lite. Later, in reality, I would be calling special number from mobile phone to connect to server. Asterisk and SIP provider (e.g. I guess I don't have to choose any company from my country, it can be even from other part of world) are required for server to be able to receive call and have its own "special number" similar to ordinary nine-digits number of mobile phone, as I understand.

More important thing - how to connect Asterisk and Sphinx4 so that Sphinx4 would be able to perform speech recognition and from time to time play some prerecorded mp3/wav files? I searched for those things and found JAsterisk ( and ScribbleJ ( Which of those can be used and if I can benefit from both, which should be easier to configure this connection between Asterisk and Sphinx4?

By the way, my Sphinx4 would be speaker-dependent. In the case of my previous idea, I could simply check which Skype user calls the Skype on server and then, based on this information, use the data trained for the given user. In this case it may be more difficult to let Sphinx4 know who the user is. (To clarify those things, speaker-independent system requires hundreads of training audio data which I don't have. My language is not supported on VoxForge so I have to create it on my own. And speaker-dependent requires data recorded by the person who would be using the system. In my case there would be serveral end-users).

Greetings!
 
Do I need dedicated SIP mobile phone or can it be any mobile phone?
 
Thank you very much for your answer!

What about such a way that I would have only server with access to internet, withouth any Digium cards, VoIP gates or any other things of this kind? Just computer with relatively fast connection to internet. For testing I would use softphone X-Lite. So I would have: user calling special number from ordinary mobile phone (or do I need special SIP mobile phone?) -> server receiving the call with Asterisk -> ScribbleJ plugin ( , or is it better to use JAsterisk instead of ScribbleJ?) to Asterisk sending the speech to Sphinx4 -> Sphinx4 recognizing the speech. And my question is as follows: What kind of service do I need to have? I guess I need to buy access to some kind of service from SIP provider. Is that right? Are services of SIP providers dependent on where I live (Poland)? What are the companies which I should consider? What should I ask them about?

Greetings!
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top