[espeak-ng:master] reported: some languages in espeakNG are broken #github


espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Comment on Issue #1009 some languages in espeakNG are broken
By king-dahmanus:

Will integrating a diacritiser like Mishkal be doable or not? It's really helps make the text more readable even if it had some mistakes. They have been announcing it in the road map but they haven't done it. I don't know if they will even do it or not. Unlock call

On Wed, Sep 8, 2021, 2:29 PM hozosch @.***> wrote: > > That's why I said "among others" > > — > You are receiving this because you authored the thread. > Reply to this email directly, view it on GitHub, or unsubscribe. > Triage notifications on the go with GitHub Mobile for iOS or Android.


espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Comment on Issue #1009 some languages in espeakNG are broken
By king-dahmanus:

ah i will have to rewrite it, and it won't be an exact copy of the thing, but i'll try to do it


espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Comment on Issue #1009 some languages in espeakNG are broken
By king-dahmanus:

hello guys, this is espeak with the arabic language, which greatly and thankfully reads english and arabic, wish hebrew does that too. Anyway, عْعْعْعْعْعْعْعْعْعْ, this is the ain sound of espeak. عْعْعْعْعْ. This sound is synthesized and it's not correct. And sadly the research hasn't led to a correct way of synthesizing it. However, their's a wav file in espeak's sourcecode which has the correct sound. It's path is "D:\Downloads\espeak-ng-master\phsource\vwl_ar\ain2.wav", so maybe you could replace the used wavfile to use that file instead of the synthesized one. I have another issue, and it's the stressing of the letters. Espeak ng always stresses from the third last sylabal to the last silabal, which is wrong. Stressing from the second last one to the last one is correct most of the time. For example, let's take the native name ofthe language, العربية, al reversed glottlestop arabiyya, i'm not familiar with the IPA and i don't know how to use it so i can't give the most conveniant way, the reversed glottlestop is the letter ain which we talked about before. So, it stresses the sylable ra instead of the sylable bi, so it should stress from the second last sylable. It also does it in words that have lengthened letters, which are supposed to have the stress. For example, المُتَّقِين (almuttaqiin) is a word that has a lengthened letter after the qaaf which is the fifth letter. The sixth letter is a lengthening letter, but not always, i'm not the person who can explane how arabic works, but in that example it stressثس the meem which doesn't have a long vowel. If we try to separate المُتَّ (almutta) and قِين (qiin) in to two strings to emulate the correct pronunciation, it would do it right. But that word can't be separated in real life like i do it when phoneticly analizing things. I have another issue, the raa letter, (ر), espeak processes it as an english r, which doesn't exist in arabic. the most correct one, not completely correct way is a trilled r, which is in percian, turkish, latin, spanish and swedish, and much much much much more. Another issue is the processing of the saad, ص, daad ض and ðaa ظ which all are being pronounced incorrectly in some cases, while in some cases it pronounces them correctly. For example ضرر, ضِرص, ضمير, ضحك and ظرف all are being interpreted as a normal d which is incorrect, while in some cases like ضَمِيرْ, ضَحِكْ, قَضَاءْ and ظَرْفْ all are being pronounced correctly. So the issue has been found, it says them write when they're diocritized, and scrues them up when they're not. One last huge improvement that would megally improve espeak's arabic pronounciation would be to integrate a diocritizer like mishkal into the thing so it tries diocritizing it and then sends it to espeak so it can speak it. And then add some words in the dictionary to back the mistakes up. Hope my analizations and hints help you, please try working on this, and tell me whatever questions come to mind. Thanks and regards!


espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Comment on Issue #1009 some languages in espeakNG are broken
By jaacoppi:

Let's go through these issues one by one.

Anyway, عْعْعْعْعْعْعْعْعْعْ, this is the ain sound of espeak. عْعْعْعْعْ. This sound is synthesized and it's not correct. And sadly the research hasn't led to a correct way of synthesizing it. However, their's a wav file in espeak's sourcecode which has the correct sound. It's path is "D:\Downloads\espeak-ng-master\phsource\vwl_ar\ain2.wav", so maybe you could replace the used wavfile to use that file instead of the synthesized one.

To see the phoneme output, use espeak-ng -x or espeak-ng ---ipa:

espeak-ng -v ar -x "عْعْ"
AA
espeak-ng -v ar --ipa "عْعْ"
ʕʕ

This shows that we're trying to find the phoneme for A (ʕ in ipa).

The phonemes for arabic are stored in phsource/ph_arabic: https://github.com/espeak-ng/espeak-ng/blob/2b77dd278330340e8918f55c9032830e8d5e558f/phsource/ph_arabic#L27-L35

The documentation is here: https://github.com/espeak-ng/espeak-ng/blob/master/docs/phontab.md

@king-dahmanus: Next, read the documentation. You should understand what each line means in the phoneme definition for "A". Do you think it's enough to simply replace "addWav(h/h_,30)" with "addWav(vwl_ar\ain2,30)"?


espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Comment on Issue #1009 some languages in espeakNG are broken
By king-dahmanus:

probably,, please somehow locally edit the source code on your end to mach this experiment, then test the following sentence and upload an audiofile with the results, i'm gunna diocritize the text since mishkal isn't there yet. "عَمِّي عِصَامْ عَالِمٌ فِي العُلُومِ العَالَمِيَّةِ

On Thu, 9 Sept 2021 at 07:17, jaacoppi @.***> wrote:

Let's go through these issues one by one.

Anyway, عْعْعْعْعْعْعْعْعْعْ, this is the ain sound of espeak. عْعْعْعْعْ. This sound is synthesized and it's not correct. And sadly the research hasn't led to a correct way of synthesizing it. However, their's a wav file in espeak's sourcecode which has the correct sound. It's path is "D:\Downloads\espeak-ng-master\phsource\vwl_ar\ain2.wav", so maybe you could replace the used wavfile to use that file instead of the synthesized one.

To see the phoneme output, use espeak-ng -x or espeak-ng ---ipa:

espeak-ng -v ar -x "عْعْ"

AA

espeak-ng -v ar --ipa "عْعْ"

ʕʕ

This shows that we're trying to find the phoneme for A (ʕ in ipa).

The phonemes for arabic are stored in phsource/ph_arabic:

https://github.com/espeak-ng/espeak-ng/blob/2b77dd278330340e8918f55c9032830e8d5e558f/phsource/ph_arabic#L27-L35

The documentation is here: https://github.com/espeak-ng/espeak-ng/blob/master/docs/phontab.md

@king-dahmanus https://github.com/king-dahmanus: Next, read the documentation. You should understand what each line means in the phoneme definition for "A". Do you think it's enough to simply replace "addWav(h/h_,30)" with "addWav(vwl_ar\ain2,30)"?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/espeak-ng/espeak-ng/issues/1009#issuecomment-915796160, or unsubscribe https://github.com/notifications/unsubscribe-auth/AT2FKJXKN6FSWZE2MFQEWMLUBBGPRANCNFSM5DP376CA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.


espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Comment on Issue #1009 some languages in espeakNG are broken
By jaacoppi:

Attached a sample: arabic_ain2.zip


espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Comment on Issue #1009 some languages in espeakNG are broken
By king-dahmanus:

Sorry, but you haven't pasted the test sample for the modified copy. I am looking for the test for a modified copy of the source. I mean, the same sample but with the source code modified so it matches what I was looking for.

On Thu, Sep 9, 2021, 2:31 PM jaacoppi @.***> wrote: > > Attached a sample: arabic_ain2.zip > > — > You are receiving this because you were mentioned. > Reply to this email directly, view it on GitHub, or unsubscribe. > Triage notifications on the go with GitHub Mobile for iOS or Android.


espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Comment on Issue #1009 some languages in espeakNG are broken
By jaacoppi:

That was the modified sample. Here's a new zip with both the old "h_" and new "ain" phonemes: arabic_A_ain2_andh.zip


espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Comment on Issue #1009 some languages in espeakNG are broken
By king-dahmanus:

oh, i don't know why it's not working. I do hear a difference, but maybe the amplitude of the file is not loud enough. Please louden it and then send me the file again, i mean the new sample

On Thu, 9 Sept 2021 at 19:08, jaacoppi @.***> wrote:

That was the modified sample. Here's a new zip with both the old "h_" and new "ain" phonemes: arabic_A_ain2_andh.zip https://github.com/espeak-ng/espeak-ng/files/7138832/arabic_A_ain2_and_h_.zip

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/espeak-ng/espeak-ng/issues/1009#issuecomment-916323564, or unsubscribe https://github.com/notifications/unsubscribe-auth/AT2FKJRXHFFZOJVZQY2UVQDUBDZ3HANCNFSM5DP376CA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.


espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Comment on Issue #1009 some languages in espeakNG are broken
By jaacoppi:

Adjusting the volume level would probably distort the audio. You can do it yourself for example here: https://audiotrimmer.com/volume-booster/


espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Comment on Issue #1009 some languages in espeakNG are broken
By king-dahmanus:

No, I mean the amplitude of the volume in the code itself, not the loudness of the volume of the audio file.


espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Comment on Issue #1009 some languages in espeakNG are broken
By jaacoppi:

Changing the source code to increase the amplitude would be another issue. We are trying to fix one at a time. So no, it is not possible at this time.


espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Comment on Issue #1009 some languages in espeakNG are broken
By king-dahmanus:

Okay, there are more important issues out there, so we'll put this issue on hold, until we figure out the rest of them. For example, the democratizer, and the dictionary is, and the raw letter. Thanks for understanding and collaboration. I hope my suggestions are enough for you to work with. And sorry for any inconveniences. Again, I meant I meant the diocritizer comment in the dictionary. This is the fault of my Google dictation. So sorry for that.


espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Comment on Issue #1009 some languages in espeakNG are broken
By jaacoppi:

Some of your proposals are easy to fix, some are difficult. Let me choose which one to focus on so we can do many changes quickly.

I think it's best to continue with the A phoneme. You said you can hear a difference between the two samples. Is the new "ain2" sample better than the old? If it is, we can change that and start focusing on other issues.


espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Comment on Issue #1009 some languages in espeakNG are broken
By king-dahmanus:

ok the first one had this slite hissing noise, and the second one doesn't have it. If i listen to the file on it's own, it's the correct sound. But when listening to the whole sentence sample, something seams odd about this! Probably there are some phoneme changes or amplitude changes to the frequency, it's weird. Please check and see if there is anything being done to the file in the synthesis. Because as i recall, in some older versions of espeakNG, there was a very unpleasent electrified sound that was used for that letter, and it got into this stage in the later version. But it never developed since then. So yeah, please see if there's anything being done to the file itself, and try removing those changes, and just leave the file alone. After that please send me the audiofile with the changes. Thanks a lot, HtH


espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Comment on Issue #1009 some languages in espeakNG are broken
By jaacoppi:

You can see the changes made with git log phsource/ph_arabic

The change you talk about is probably this one: df1a6045

I don't understand what you mean with "file on it's own" and "whole sentence sample". The only difference between the old and the new sample is the change in addWav() command like discussed before. Unless you tell me speficially which lines to change I cannot do anything more than I already have.


espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Comment on Issue #1009 some languages in espeakNG are broken
By king-dahmanus:

sorry sir, i'm not a programmer, and i'm not a command line guy either. And i don't know how espeak itself works. I can only give the user side of things. So what i ment by that file on it's own and sentence sample is, the file that i talked about on its own, just a file, the audiofile itself, and the sample that you gave me, the sentence with that sample. It almost sounds like it hasn't been changed at all, there's just this very unnoticeable breathiness that has been removed, otherwise no, still needs to be improved. I'm very sorry, i'm not a tech person currently, so i can only give you suggestions in the user side of things. Hope this helps

On Sat, 11 Sept 2021 at 15:16, jaacoppi @.***> wrote:

You can see the changes made with git log phsource/ph_arabic

The change you talk about is probably this one: df1a6045 https://github.com/espeak-ng/espeak-ng/commit/df1a6045a00b3aab9fd2f1195bd0e8f1de90d979

I don't understand what you mean with "file on it's own" and "whole sentence sample". The only difference between the old and the new sample is the change in addWav() command like discussed before. Unless you tell me speficially which lines to change I cannot do anything more than I already have.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/espeak-ng/espeak-ng/issues/1009#issuecomment-917414937, or unsubscribe https://github.com/notifications/unsubscribe-auth/AT2FKJWW6VCCTMPRF24STX3UBNQFNANCNFSM5DP376CA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.


espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Comment on Issue #1009 some languages in espeakNG are broken
By jaacoppi:

It looks like we cannot easily fix the phoneme A. Let's focus on the next issue, the place for the primary stress. Here's your explanation: > I have another issue, and it's the stressing of the letters. Espeak ng always stresses from the third last sylabal to the last silabal, which is wrong. Stressing from the second last one to the last one is correct most of the time. For example, let's take the native name ofthe language, العربية, al reversed glottlestop arabiyya, i'm not familiar with the IPA and i don't know how to use it so i can't give the most conveniant way, the reversed glottlestop is the letter ain which we talked about before. So, it stresses the sylable ra instead of the sylable bi, so it should stress from the second last sylable. It also does it in words that have lengthened letters, which are supposed to have the stress. For example, المُتَّقِين (almuttaqiin) is a word that has a lengthened letter after the qaaf which is the fifth letter. The sixth letter is a lengthening letter, but not always, i'm not the person who can explane how arabic works, but in that example it stressثس the meem which doesn't have a long vowel. If we try to separate المُتَّ (almutta) and قِين (qiin) in to two strings to emulate the correct pronunciation, it would do it right. But that word can't be separated in real life like i do it when phoneticly analizing things.

Stress symbols are explained in docs/dictionary.md. Primary stress is the character "'", secondary stress is the character ",".

Let's use the -x flag to see where the stress currently is:

espeak-ng -v ar -x " العربية"
?alAar'abi:j,a
espeak-ng -v ar -x " المُتَّقِين"
?alm'ut:aq,i:n

Indeed, the primary stress marker is exactly where you said it is. Now you should understand what the stress symbols mean.

The possible values for the primary stress are listed in src/libespeak-ng/translate.h: https://github.com/espeak-ng/espeak-ng/blob/2b77dd278330340e8918f55c9032830e8d5e558f/src/libespeak-ng/translate.h#L358-L371

The current setting for Arabic is here: https://github.com/espeak-ng/espeak-ng/blob/2b77dd278330340e8918f55c9032830e8d5e558f/espeak-ng-data/lang/sem/ar#L1-L5

As you can see, the current setting is 4, "antipenultimate". That means "third from the end". If we change that value to 2, "penultimate" or "second to last" the words will be stressed like this:

espeak-ng -v ar -x " العربية"
?alA,arab'i:ja
espeak-ng -v ar -x " المُتَّقِين"
?almut:'aqi:n

The primary stress symbol has now changed from the third to last syllableto the second to last syllable. I think this is what you want. You can test the different stress patterns yourself by telling espeak-ng to read phonemic input with "[[" and "]]" parenthesis characters like this: espeak-ng -v ar "[[?alA,arab'i:ja]]"

Note that changing the primary stress rule also changes the secondary stress. That is handled in a different place. Just like the name says, primary stress is the more important one. The question for you is: should I make the change for the primary stress?

P.S. Note that certain words have been listed as exceptions in (dictsource/ar_list)[https://github.com/espeak-ng/espeak-ng/blob/master/dictsource/ar_list]. Changing the stress rule will not affect them.


espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Comment on Issue #1009 some languages in espeakNG are broken
By king-dahmanus:

Please record an audio file sample so I can listen to it. Thanks. Because currently, I don't have access to the testing website. Thanks.


espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Comment on Issue #1009 some languages in espeakNG are broken
By king-dahmanus:

never mind the example, i already am giving feadback on it. in the almut:'aqi:n exapmle that you gave me, it's wrong. It should be [[?almut:aq'i:n]]. Can't you somehow make espeak stress a specific letter whenever a specific letter is detected after it in a specific pattern? Or is that one of the disadvantages of rule based synthesis?/espeak's way of working?