A natural language processing suggestion for Belgacom telephone company

11 Feb

Speech and confusion

Speech and confusion

Today I experienced an interesting linguistic event after my home phone rang. The automatic voice menu (provided by Belgacom, the largest phone and Internet operator in Belgium) told me that I had an SMS message and that the system could read it to me if I pressed 2. After I pressed button 2 on the phone a TTS (text-to-speech) system started to read me the contents of the SMS message. Just a few milliseconds later I realized that the message was not in Dutch, the language of Flanders. And after a few seconds I thought “hmm, maybe someone from Sweden accidentally sent me a message… Or maybe someone from Denmark… hey, wait a minute, does this sound like Norwegian?”. I think you can understand my confusion at that, it sounded very alien! I had the option to listen to the same message a few times more and after third or fourth try it all became crystal clear, the message was in Turkish! I immediately checked my GSM phone and saw that it was one of the recent messages. So that’s what you get when a TTS system tuned for Dutch tries to process Turkish data.

Can it be done better? I believe so. Belgacom can use something like Google Language Detect API to detect the dominant language of the SMS, for example for a Dutch SMS it produces:

{“responseData”: {“language”:”nl“,”isReliable”:false,”confidence”:0.36131698}, “responseDetails”: null, “responseStatus”: 200}

And for a Turkish SMS we get:

{“responseData”: {“language”:”tr“,”isReliable”:true,”confidence”:0.51140076}, “responseDetails”: null, “responseStatus”: 200}

Or if you don’t like the idea of using Google servers, a local server can run something like Lingua::Identify. If the identified language is Turkish then there is the possibility that it may have been written in an asciified form (letters unique to Turkish such as ç, ö, ş, ı, İ, etc. may have been replaced by c, o, s, i, I, …). Again there is a reliable solutions to this problem such as using a Turkish Deasciifier (in Python, in JavaScript, in Perl, or in Ruby). After a correct Turkish SMS string is produced then it can be used as an input to TTS system tuned for Turkish. For example the GVZ TTS System or something based on Festival open source TTS system.



Maybe Belgacom tried to do something similar; I remember that the main voice menu included an option like “listen to this message in another language” but I don’t know if it referred to the voice menu itself or the language to which the TTS system is tuned to.

Of course I don’t know if it is worth implementing such a system from a ‘business value’ perspective, I don’t know how many of the Turkish SMS messages sent via Belgacom are listened by the recipients, etc. But then again, this is a technical blog entry, not a business one and this was my 2 cents. 😉

Leave a comment

Posted by on February 11, 2011 in Linguistics, Programlama


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: