nvaccess / nvda

NVDA, the free and open source Screen Reader for Microsoft Windows
https://www.nvaccess.org/
Other
2.12k stars 638 forks source link

NVDA Hebrew support #2771

Closed nvaccessAuto closed 9 years ago

nvaccessAuto commented 12 years ago

Reported by shemtov on 2012-11-01 22:06 Hello, Is there any chance that NVDA will support the Hebrew language? In the previous version I used to have, I've added some character descriptions, or symbols, I'm not sure. I've updated to the last version, and now, the dictionary entries which I've added to the Hebrew letters are still there, but the program does not recognise the letters when reading in "character mode, or spelling. Beside, there was always some issue with those characters, like in webpages, and so...

Please, consider this feature, of adding at least a minimum support in Hebrew characters.

Looking forward for your reply,

Misgav

nvaccessAuto commented 12 years ago

Attachment symbols.dic added by MHameed on 2012-11-03 12:07 Description:

nvaccessAuto commented 12 years ago

Attachment New symbols.dic added by shemtov on 2012-11-03 16:18 Description:

nvaccessAuto commented 12 years ago

Attachment characterDescriptions.dic added by shemtov on 2012-11-04 17:26 Description:

nvaccessAuto commented 12 years ago

Attachment new symbols.dic added by shemtov on 2012-11-04 17:26 Description:

nvaccessAuto commented 12 years ago

Attachment Updated characterDescriptions.dic added by shemtov on 2012-11-09 22:08 Description: This is the updated version of this file, in order to let HebrewTTS to know how to describe the Hebrew characters correctly.

nvaccessAuto commented 12 years ago

Comment 2 by MHameed (in reply to comment description) on 2012-11-02 09:08 Hi Misgav,

Replying to shemtov:

Is there any chance that NVDA will support the Hebrew language?

Unfortunately there is no active Hebrew translator at the moment, any help is of course welcome if you are intrested.

In the previous version I used to have, I've added some character descriptions, or symbols, I'm not > sure.

Maybe they were only added on your machine, but not sent to us? I can not find any Hebrew characterDescriptions or symbols.

I've updated to the last version, and now, the dictionary entries which I've added to the Hebrew

letters are still there, but the program does not recognise the letters when reading in "character

mode, or spelling.

Beside, there was always some issue with those characters, like in webpages, and so...

It depends on how you added them, but it might be that you need to use the Hebrew NVDA interface before NVDA can recognize the definitions.

Please, consider this feature, of adding at least a minimum support in Hebrew characters.

We have about 5 days before new release, I am happy to work with you to add Hebrew characterDescriptions/symbols.

It is also useful to know if you are using a Hebrew text to speech engine.

Thanks.

nvaccessAuto commented 12 years ago

Comment 3 by nvdakor on 2012-11-02 18:55 Hi Mesar and others: Hebrew already exists - the interface is based on older version. I think, at this stage, we should delay Hebrew support till 2013.1, provided that we find the Hebrew translator who worked on interface messages. Thanks.

nvaccessAuto commented 12 years ago

Comment 4 by MHameed (in reply to comment 3) on 2012-11-02 19:27 Replying to nvdakor:

Hi Mesar and others:

Hebrew already exists - the interface is based on older version. I think, at this stage, we should delay Hebrew support till 2013.1,

Adding characterDescriptions and symbols is quite straightforward and should only take a few hrs.

provided that we find the Hebrew translator who worked on interface messages. Thanks.

There is no problem having multiple translators for a language, especially since there is no active translator. I think I remember contacting the previous translator, but he was busy at the time and haven't heard anything since.

In any case, it was only a suggestion, and of course depends if Misgav has any time.

nvaccessAuto commented 12 years ago

Comment 5 by shemtov (in reply to comment 2) on 2012-11-03 00:17 Replying to MHameed:

Hi Misgav,

Replying to shemtov:

Is there any chance that NVDA will support the Hebrew language?

Unfortunately there is no active Hebrew translator at the moment, any help is of course welcome if you are intrested.

In the previous version I used to have, I've added some character descriptions, or symbols, I'm not > sure.

Maybe they were only added on your machine, but not sent to us?

I can not find any Hebrew characterDescriptions or symbols.

I've updated to the last version, and now, the dictionary entries which I've added to the Hebrew

letters are still there, but the program does not recognise the letters when reading in "character

mode, or spelling.

Beside, there was always some issue with those characters, like in webpages, and so...

It depends on how you added them, but it might be that you need to use the Hebrew NVDA interface before NVDA can recognize the definitions.

Please, consider this feature, of adding at least a minimum support in Hebrew characters.

We have about 5 days before new release, I am happy to work with you to add Hebrew characterDescriptions/symbols.

It is also useful to know if you are using a Hebrew text to speech engine.

Thanks.

Hi there!

I'll be more than glad to help and provide you with everything I can. I only need you to tell me what you need, since I'm not really sure where and how.

Looking forward! :)

Misgav

nvaccessAuto commented 12 years ago

Comment 6 by shemtov (in reply to comment 3) on 2012-11-03 00:21 Replying to nvdakor:

Hi Mesar and others:

Hebrew already exists - the interface is based on older version. I think, at this stage, we should delay Hebrew support till 2013.1, provided that we find the Hebrew translator who worked on interface messages. Thanks.

Iello,

Is there something I can do? I'l be glad to be your new/another translator. Just tell me what you need.

Cheers!

nvaccessAuto commented 12 years ago

Comment 7 by shemtov (in reply to comment 4) on 2012-11-03 00:23 Replying to MHameed:

Replying to nvdakor:

Hi Mesar and others:

Hebrew already exists - the interface is based on older version. I think, at this stage, we should delay Hebrew support till 2013.1,

Adding characterDescriptions and symbols is quite straightforward and should only take a few hrs.

provided that we find the Hebrew translator who worked on interface messages. Thanks.

There is no problem having multiple translators for a language, especially since there is no active translator.

I think I remember contacting the previous translator, but he was busy at the time and haven't heard anything since.

In any case, it was only a suggestion, and of course depends if Misgav has any time.

So,yes, of course! Like I said, I'll be more than happy to do that!

nvaccessAuto commented 12 years ago

Comment 8 by MHameed on 2012-11-03 07:57 Great, thanks,

The quickest is characterDescriptions, so lets try that first.

Open wordpad write each character followed by its name, seperated by tab.

Example: a alpha b beta

do this for all letters, of course the name of the letter can also be written in Hebrew. This is often also called millitary alphabet. One letter and its name on one line. Save as unicode text and attach to this ticket when you are ready.

p.s. in the example, there is only space between the letter and the name, but it should be tab, trac seems to replace tab by space.

Thanks,

nvaccessAuto commented 12 years ago

Comment 9 by shemtov (in reply to comment 8) on 2012-11-03 09:11 Replying to MHameed:

Great, thanks,

The quickest is characterDescriptions, so lets try that first.

Open wordpad write each character followed by its name, seperated by tab.

Example:

a alpha

b beta

do this for all letters, of course the name of the letter can also be written in Hebrew.

This is often also called millitary alphabet. One letter and its name on one line.

Save as unicode text and attach to this ticket when you are ready.

p.s. in the example, there is only space between the letter and the name, but it should be tab, trac seems to replace tab by space.

Thanks,

See Attached

nvaccessAuto commented 12 years ago

Comment 10 by MHameed on 2012-11-03 12:12 Thanks for characterDescriptions, looks good. symbols.dic is also now attached, and you can localize it by changing the word after the tab character. remove words such as dot bang tick and replace it by the hebrew word. if you leave your name and email as a comment at the start, we will be pleased to add your name to contributors.

nvaccessAuto commented 12 years ago

Comment 11 by shemtov (in reply to comment 10) on 2012-11-03 12:55 Thanks! Should I write the descriptions in hebrew, or english? Where am I suppose to leave those files? Should I create a folder named 'Heb' in the 'local' folder? Like those in the 'en' folder? and how do I add a comment? I don't mind that my name will be there. In fact, I'll be glad to be a part of it...

Cheers!

nvaccessAuto commented 12 years ago

Comment 12 by MHameed on 2012-11-03 13:22 The files are not usable at the moment because they need to be saved in a format called utf8, windows usually saves in utf16. I will convert them to the right encoding and will save them in the right place, and tomorrow you can download the latest snapshot to test it.

If you want to save in utf8 yourself, the recommended editor is notepad++, available for download here: http://notepad-plus-plus.org/ In the file menu, you will find encoding submenu, and you need to chose utf8 without BOM

Then go to your nvda, find locale, you will find he subfolder the he subfolder currently only contains one thing, a folger called LC_MESSAGES paste characterDiscriptions.dic and symbols.dic here next to the folder. now restart nvda, and select hebrew from the general settings, and if everything goes to plan then everything should be well.

Note some messages are still in english, this is because the Hebrew translation hasnt been updated for some time.

But we can do that when symbols are finnished.

nvaccessAuto commented 12 years ago

Comment 13 by MHameed on 2012-11-03 13:23 sorry forgot a comment is started with the hash sign, #

hello world this is a comment.

nvaccessAuto commented 12 years ago

Comment 14 by shemtov on 2012-11-03 13:31 But what about the symbol's names? In hebrew characters or english? Beside, I use NotePad in general, and not word, so I'll try, and let you know...

nvaccessAuto commented 12 years ago

Comment 15 by shemtov on 2012-11-03 13:38 I changed it, restart NVDA, and it looks fine! I haven't modify the symbols file, but the characters looks fine, accept that, when reading in character mode, it says the letter code, and not the letter name.

nvaccessAuto commented 12 years ago

Comment 16 by shemtov on 2012-11-03 13:45 Remember I told you that I've added entries in the dictionary, of hebrew letters? Now, after I removed them, it doesn't work. Even the NVDA menu doesn't work properly. It spells everything, and as character code, and not it's name.

nvaccessAuto commented 12 years ago

Comment 17 by MHameed (in reply to comment 14) on 2012-11-03 14:36 Replying to shemtov:

But what about the symbol's names?

In hebrew characters or english?

Hebrew please.

Beside, I use NotePad in general, and not word, so I'll try, and let you know...

wordpad is better than windows notepad, I dont remember if windows notepad can save in unicode. It was long time since I checked it.

Replying to shemtov:

Remember I told you that I've added entries in the dictionary, of hebrew letters?

Now, after I removed them, it doesn't work. Even the NVDA menu doesn't work properly. It spells everything, and as character code, and not it's name.

It sounds like you are using espeak, not a hebrew sapi5/sapi4 tts, is this correct? These changes that we are doing, they are for tts engines that has Hebrew support. Unfortunately Espeak doesn't have this at this time, and therefore you will here letter number number number.

What you did by adding them in speech dictionary is a temporary solution around espeak, but not such a good one in the general case.

Maybe put them back until you can finnish the work with the symbols. Maybe one of the other Hebrew NVDA users can advise you where you can get hold of a real tts for hebrew.

nvaccessAuto commented 12 years ago

Comment 18 by MHameed on 2012-11-03 14:39 We can try to add basic support to espeak for Hebrew a bit later.

nvaccessAuto commented 12 years ago

Comment 19 by shemtov on 2012-11-03 16:26 Hey, MHameed, Check out the new files: characterDescriptions, and new symbols Noet that I replaced the first 'characterDescription' file, and since I couldn't replace the 'symbols', I named it new.

Let me know if you need anything else from me...

nvaccessAuto commented 12 years ago

Comment 20 by shemtov on 2012-11-03 16:32 I just noticed, that after I've added the dictionary entries for Hebrew characters, and I change the NVDA language to Hebrew, it works. It reads the letter's name, and not code.

nvaccessAuto commented 12 years ago

Comment 21 by shemtov on 2012-11-04 17:29 Note that I've replaced the 'symbols' file with an updated one, where I've added some symbol's descriptions, and numbers as well.

nvaccessAuto commented 12 years ago

Comment 22 by MHameed on 2012-11-05 01:16 Thanks, committed as 2012.3,5641 please test snapshot 5641 or later from the 2012.3 branch from http://www.nvda-project.org/wiki/Snapshots

I see the Hebrew characters also in the symbols.dic, is this intentional, or another way to get espeak to pronounce the letters?

Thanks.

nvaccessAuto commented 12 years ago

Comment 23 by MHameed on 2012-11-05 01:19 Changes: Milestone changed from None to 2012.3

nvaccessAuto commented 12 years ago

Comment 24 by shemtov (in reply to comment 22) on 2012-11-05 06:46 Replying to MHameed:

Thanks, committed as 2012.3,5641

please test snapshot 5641 or later from the 2012.3 branch from http://www.nvda-project.org/wiki/Snapshots

I can't find there greater than 5640. ???

I see the Hebrew characters also in the symbols.dic, is this intentional, or another way to get espeak to pronounce the letters?

Yes, it is another way to make espeak to pronounce.

Thanks.

nvaccessAuto commented 12 years ago

Comment 25 by shemtov on 2012-11-05 07:08 Tell me please, For testing, do I need to install on the computer? or I can use the portable version?

Thanks

nvaccessAuto commented 12 years ago

Comment 26 by nvdakor on 2012-11-05 07:14 Hi, Either will do; however, since snapshots are versions of NVDA under development, I think testing it using portable version would be better (in my opinion and from experience unless Mesar has other ideas).

nvaccessAuto commented 12 years ago

Comment 27 by shemtov (in reply to comment 24) on 2012-11-05 10:30 I downloaded the 5644. It looks like, that if I don't have the hebrew characters in the dictionary, or in the locale\en folder, in both: characterDescriptions and symbols, it doesn't pronounce the hebrew letters as names, even when I change to hebrew in the NVDA general settings. Do I have to find a hebrew tts?

nvaccessAuto commented 12 years ago

Comment 28 by MHameed (in reply to comment 27) on 2012-11-05 11:05 Replying to shemtov:

I downloaded the 5644.

It looks like, that if I don't have the hebrew characters in the dictionary, or in the locale\en

folder, in both: characterDescriptions and symbols, it doesn't pronounce the hebrew letters as names,

even when I change to hebrew in the NVDA general settings.

Do I have to find a hebrew tts?

Yes it would be better to try with a Hebrew tts, most likely this is just espeak being called from the code using different methods, and therefore bypassing the characterDescriptions or symbols processing. i.e. espeak read "a b c" is different from espeak spell "a b c"

Once we know the symbols and characterDescriptions are right, fixing espeak would be a seperate task.

I think if you ask on one of the mailing lists, someone might point you to where you can download a demo Hebrew tts which if you like can then later buy. I remember seeing the link but can't find it in my old mail.

nvaccessAuto commented 12 years ago

Comment 29 by shemtov (in reply to comment 28) on 2012-11-05 12:05 If you ask me, untill NVDA, or espeak will support Hebrew, I'd rather stick to the current concept, where I've added the character descriptions in the 'locale\en' folder, and in the dictionary, since that way, I can leave NVDA in English, which is the default language in my computer, and if I must read some hebrew content, I read it like spelling. Regarding a hebrew tts, personally, I prefer English than Hebrew, as an OS language, and in any other manner. The hebrew language, in tts, sounds AWEFUL!

What do you think?

nvaccessAuto commented 12 years ago

Comment 30 by shemtov on 2012-11-05 19:06 Does anyone know of any Hebrew TTS engine?

nvaccessAuto commented 12 years ago

Comment 31 by jteh on 2012-11-05 22:19 You may need to disable automatic language switching to test this if you don't have a Hebrew synth (NVDA menu -> Preferences -> Voice settings -> Automatic language switching). Otherwise, NVDA will use the symbols for the current speech language, which will be English for an English synth.

nvaccessAuto commented 12 years ago

Comment 32 by fatma.mehanna (in reply to comment 30) on 2012-11-05 22:23 Replying to shemtov:

Does anyone know of any Hebrew TTS engine?

there is a tts called AhronTTS, it is a good voice. you also can visit www.ltalk.net there, there is an mp3 file for another hebrew tts called kool fix, which means good voice. unfortunately they didn't put a link for a trial version for this new tts, but you can contact the website technical support to ask about it. thanks.

nvaccessAuto commented 12 years ago

Comment 33 by shemtov (in reply to comment 32) on 2012-11-06 06:23 Replying to fatma.mehanna:

Replying to shemtov:

Does anyone know of any Hebrew TTS engine?

there is a tts called AhronTTS, it is a good voice.

you also can visit

www.ltalk.net

there, there is an mp3 file for another hebrew tts called kool fix, which means good voice.

unfortunately they didn't put a link for a trial version for this new tts, but you can contact the website technical support to ask about it.

thanks.

Thanks! Are you talking about JAWS?

nvaccessAuto commented 12 years ago

Comment 34 by shemtov on 2012-11-06 08:37 I've contacted the company who created the 'Ahron' Hebrew TTS, and they said they would be happy to try working together with NVDA. The last version of 'Ahron', can work with NVDA. Whom should I contact? Or tell them to contact?

nvaccessAuto commented 12 years ago

Comment 35 by fatma.mehanna (in reply to comment 34) on 2012-11-06 08:49 Replying to shemtov:

I've contacted the company who created the 'Ahron' Hebrew TTS, and they said they would be happy to try working together with NVDA.

The last version of 'Ahron', can work with NVDA.

Whom should I contact? Or tell them to contact?

yes, the AhronTTS hebrew can work with nvda through the sapy five engine.

nvaccessAuto commented 12 years ago

Comment 36 by shemtov on 2012-11-08 15:26 I got a demo version of Ahron speech engine, and updated NVDA to the last version. It appears that the hebrew TTS, which works with SAPI 5, is effected by the 'symbols' in the 'locale\en' folder. Is that how it should be?

nvaccessAuto commented 12 years ago

Comment 37 by fatma.mehanna (in reply to comment 36) on 2012-11-08 19:29 Replying to shemtov:

I got a demo version of Ahron speech engine, and updated NVDA to the last version.

It appears that the hebrew TTS, which works with SAPI 5, is effected by the 'symbols' in the 'locale\en' folder.

Is that how it should be?

you should check the auto language switch option in the voice settings dialogue in order to see the symbols/character descriptions in hebrew.

nvaccessAuto commented 12 years ago

Comment 38 by shemtov (in reply to comment 37) on 2012-11-08 20:57 Replying to fatma.mehanna:

Replying to shemtov:

I got a demo version of Ahron speech engine, and updated NVDA to the last version.

It appears that the hebrew TTS, which works with SAPI 5, is effected by the 'symbols' in the 'locale\en' folder.

Is that how it should be?

you should check the auto language switch option in the voice settings dialogue in order to see the symbols/character descriptions in hebrew.

If checked, Ahron does not read anything.

nvaccessAuto commented 12 years ago

Comment 39 by jteh on 2012-11-08 23:06 Changes: Milestone changed from 2012.3 to near-term

nvaccessAuto commented 12 years ago

Comment 40 by shemtov on 2012-11-09 01:04 Regarding NVDA 2012.3, I've just finished some testing, with hebrew TTS. First, The hebrew characters in the 'symbols.dic' file in 'locale\he' are useless. The file 'characterDescriptions.dic' in this folder means nothing. When working with a Hebrew TTS, like 'Ahron', for example, there is no change if this file exists or not. Second, In 'symbols.dic' in the 'locale\en' folder, the hebrew characters causes the hebrew TTS not to work. It helps ESpeak to prompt the letter name when spelling, but confusing the Hebrew TTS.

Any idea why?

nvaccessAuto commented 12 years ago

Comment 41 by MHameed on 2012-11-09 09:41 Misgav, I think your testing may not be quite correct. Please do the following.

  1. remove anything that you might have added for speech dictionaries.
  2. Do not change en/characterDescriptions.dic or en/symbols.dic, they should be the default once for english only.
  3. from general settings, switch to Hebrew.
  4. switch your punctuation level to all.
  5. go to wordpad, write some words in hebrew, if you press nvda's spell word, or describe character commands you should hear the names defined in he/characterDescriptions.dic and symbols.dic.

If you use the english interface, the files under he directory will not be used.

to break the task down to make it managable, we should only try to fix one thing at the time, we can deal with espeak later, so please make sure to remove anything to do with getting espeak to spell Hebrew.

Thanks, Mesar

nvaccessAuto commented 12 years ago

Comment 42 by shemtov (in reply to comment 41) on 2012-11-09 22:01 Hi, That's what I did in one of my tests. In 'en' folder, I removed everything related to hebrew. (Note, that you can add those dictionary entries for ESpeak, but in the 'Voice Dictionary', and not the default, and it can stay there. It does not effect the HebrewTTS.)

In 'he' folder, I found right now, that there is a unique way to describe the characters in order to let AhronTTS recognize the letters by their description. I'll upload the file in a moment.

Now, when asking NVDA to spell a word, it doesn't. Only when asking to describe, it takes the information from the 'he' folder.

Beside, there is some issue when in Hebrew mode. NVDA does some issue with starting or restarting, or openning the NVDA menu. Any idea?

Thanks!

nvaccessAuto commented 12 years ago

Comment 43 by shemtov on 2012-11-09 23:27 Note that the new 'characterDescriptions.dic' file contains a 'space' after the 'tab'. In general, it looks like: b'tab'Bravo

In this case: b'tab' Bravo

That way, it works best with the HebrewTTS, Ahron, for example.

nvaccessAuto commented 12 years ago

Comment 44 by shemtov on 2012-11-10 10:24 In case you still wish to help ESpeak a little with the Hebrew, you can add to the 'charactersDescriptions' in 'en' folder the Hebrew characters with their description in English. When NVDA is in English, and the "Automatic language switch..." is checked, it does not effect the HebrewTTS, and like I previously said, in Hebrew mode of NVDA, the "Automatic language switch..." does not really matter.

For now, I think, this will be the best solution for NVDA to help Hebrew speaking users a bit.

nvaccessAuto commented 11 years ago

Comment 45 by MHameed on 2013-06-08 09:52 new symbols.dic committed. This is because espeak has initial support for spelling out the hebrew names of the letters. Also removed from symbols.dic, since if a user uses a sapi5, or vocalizer hebrew then itms would currently be spelled and not give a chanse for the tts to read full words. If there are other problems, please open new tickets. Thanks.

nvaccessAuto commented 11 years ago

Comment 46 by MHameed on 2013-06-08 09:53 Changes: Milestone changed from near-term to 2013.1 State: closed