Mahiti launches 'Bangla Bola' eSpeak (Bengali Speaking eSpeak)
Summary :
Inclusion of Bengali in eSpeak - Text to Speech Software (Open Source)– Enabling the visually impaired to access information through technologyIn the process of adding a few Indian languages to eSpeak, we decided to include Bengali, a language that witnesses about 250 million total speakers. The base for the language, as for most of the Indian languages is Hindi. The pronunciation rules and the inherent vowels however have been modified to adopt the typical pronunciation of Bengali words.
Inclusion of Bengali in eSpeak
There is a detailed process on eSpeak to add new languages
We followed the guidelines step by step and it helped us to include Bengali in eSpeak with ease.
Bengali dictionary was created with Hindi as a base dictionary. The phoneme rules were initially followed by those of Hindi but later redefined and written by the developer, based on the research and with the help of local and external language experts. Bengali at present is available in eSpeak, undertest folder
Step 1
The voice file. This gives the language name and may set some options. As mentioned Hindi (hi) voice file was copied and modified. (espeak-data/voices/ben)
Step 2
Phoneme source file. (Located in espeakedit folder) Created "phsource/ph_bengali" which defines the sounds of the vowels and consonants for the language.
Step 3
The dictionaries or the dictsource files (located in espeak/data folder) are the files those help espeak to pronounce a word based on the rules defined there. The files "ben_rules" and "ben_list" which translate Bengali words into the vowel and phonemes.
The target is to find the appropriate phoneme string for the words and symbols and define specific rules about their pronunciation under different conditions ie, position, conjunctives etc. The challenges with most of the Indian languages are with their varying patterns of pronunciation as a singular word and when combined with another.
The main developer, Jonathan Duddington, once admitted, "However, Bengali will be difficult because there are ambiguities in how to pronounce words from the text spelling. I think it will need a lot of work”.
And, he was not wrong.A few typical challenges we faced with Bengali language in eSpeak:
- The number '2' (pronounced as "dui" when it is single number, but it becomes 'du' when 200 (dusho) - made corrections to numbers in eSpeak version 1.47.06d
- If a word ends in a consonant which does not have a "hoshonto" mark (also called "virama" or "halant"), sometimes the word ends in the inherent vowel, and at times the inherent vowel is suppressed. - used the symbol V for the "inherent vowel". (The phoneme definition file, ph_bengali, changes this to either [O] or [o].)
- There are alphabets in Bengali like ba, da, ja, sa, ra, which when placed between other alphabets ending as '_a' pronounced as '_o' instead of their original pronunciation as b, d, j etc.
The work is tiring yet challenging and end of the day you feel satisfied when you perfectly define the rule to pronounce a 'sa' and 'shaw' or 'sho' (Bangla terms).
And you get a call from Debashish, a visually impaired person from Kolkata, working with NVDA- eSpeak, to acknowledge and accept the pronunciation he could identify distinctly.
That's what eSpeak wished to achieve, and that is exactly what mahiti is trying to achieve. Mahiti is grateful to Centre for Internet and Societyfor helping us in the initiative. Without their constant support, we would not have been successful with our endevours.
Image courtesy: Google