Menu

#108 bug Translate using a different language in en voice

v1.0 (example)
open-fixed
5
2014-01-21
2013-12-18
No

Dear Jonathan

I want create a customized "en" voice with ability to speak Persian (Farsi).

I modify "en_list" and set "_^_fa" for Arabic & Persian & Urdu alphabets. So after compile "en_dict" it works in most case but some exception exist that I can't fix them (please see attachment for one example). It seem a higher procedure exist that when below characters exist in one words, eSpeak read them as before by saying Arabic and then name of each alphabets of Persian word!

main alphabets that cause this problem are:
Arabic letter yeh (0x64A)
Arabic kasra (0x650)
Arabic damma (0x64F)
Arabic fatha (0x64E)
I think this problem exist also in using some other Arabic & Urdu alphabets that common in Persian so Please let us working with all Arabic & Urdu characters with "_^_fa".

Thinks in advance

Best Regards
Mahmood Taghavi

1 Attachments

Discussion

  • Jonathan Duddington

    I'm not certain what is the problem which you describe.

    However, if you want an English voice to use the Farsi voice to speak words which are written in Arabic characters, then you do not need to edit the en_list file. Instead, add this line to your English voice file (espeak-data/voices/en )

    alphabet2 ar fa

    This means, "speak Arabic characters using the Farsi voice".

    Does this work OK for you?

     
  • Mahmood Taghavi

    Mahmood Taghavi - 2013-12-18

    Thanks for your help.
    I tested this with different OS (Windows XP SP2 x86 & Windows 7 SP1 x86), and I gave different results.
    In Windows XP: using ^_fa work correctly but "alphabet2 ar fa" give wrong result.
    In Windows 7: using
    ^_fa give wrong result but "alphabet2 ar fa" work correctly.
    So I use a combination of above methods that work correctly in both Windows XP & 7.

    I used two laptops with windows 7 and one desktop with windows XP, for these tests.
    I checked these systems and confirm all setting for Persian (Farsi) language are true.
    More details are provided in attached files.

    Best Regards
    Mahmood Taghavi

     

    Last edit: Mahmood Taghavi 2013-12-18
  • Jonathan Duddington

    I've found the problem, and fixed for the next version (after 1.47.14).

    The reason for the difference between Windows7 and WindowsXP is that the system library function "iswalpha(character)" gives different results when character=0x650.

    The bug is in function Unpronounceable(), which determines whether a word should be spoken as a complete word, or spoken as individual letter names. It should not do this if the word is in a non-native alphabet.

     
  • Jonathan Duddington

    • status: open --> open-fixed
     

Log in to post a comment.