espeak-ng / espeak-ng

eSpeak NG is an open source speech synthesizer that supports more than hundred languages and accents.
GNU General Public License v3.0
4.1k stars 887 forks source link

maybe wrong IPA symbol for a German word "aneinander" #1637

Open XuesongYang opened 1 year ago

XuesongYang commented 1 year ago

Previously reported to Phonemizer repo: https://github.com/bootphon/phonemizer/issues/142, but suggested to re-direct here.

There is /1/ appearing in the phonetic transcription for the German language. Is it expected?

$ echo "aneinander" | phonemize -l de -b espeak --with-stress
ˌan1aɪnˈandɜ
jaacoppi commented 1 year ago

Expected. It is define in the dictionary list: dictsource/de_list:625:aneinander an1aIn'and3

Someone with fluency in German phonetics can comment if this is correct or not.

hozosch commented 1 year ago

Yes, it was me who added this to the list. Using 1 creates a small gap in the speech between "an" and "einander", which I thought to be necessary. But now that I think about it, it's not really. Besides, I could have taken care of it differently. So, I'll open a pull request where I remove the entry in the list and correct the rule for "einander" at the end of words, because the stress in that rule is not correct, it should fall on "ander".

hozosch commented 1 year ago

Strange, I cannot find the rule I was looking for. And still, "auseinander" is not stressed the way I want.

hozosch commented 1 year ago

There's the rule: ein (and _|%aIn Which, as it's defined now, I would expect to make the stress fall on "ander", but it doesn't. But the list entry for aneinander can definitely be removed.

XuesongYang commented 1 year ago

thank you @jaacoppi @hozosch to dive deep. Is there any PR that I can check further? I don't know much about the German language, but /1/ seems more like a lexical stress marker.

GithubAnon0000 commented 2 weeks ago

@hozosch

aneinander is defined in de_list as

aneinander  an1aIn'and3

Personally I'd go for anaIn'and3 though.

hozosch commented 2 weeks ago

I can see why you don't like the 1, it can be replaced with |, which is more standard. But the gab there, in case of ESpeak, sounds somehow better to me. Many of the words I added back then were more done from a perspective of sound, rather than correct phoneme symbols, but replacing the 1 with | would not change the sound in the least. I didn't know of that alternative back then. I'm just not sure if I like the idea of no gab tere. The other words where you fixed the o weren't added by me by the way. I don't know who did that.

hozosch commented 2 weeks ago

Oh dear, I totally forgot how long this issue already exists and that I commented on this in the past. I think, I know now why changing the rule didn't work in this case. There's probably a rule for "an" at the beginning of words, which should be stressed, and therefore, it breaks my corrected definition in the rules. So, I think, my previous comment applies here.

GithubAnon0000 commented 2 weeks ago

it can be replaced with | but replacing the 1 with | would not change the sound in the least.

I do think that's better than the 1 (to me the 1 sounds a tiny bit longer).

I'm just not sure if I like the idea of no gab tere.

I checked on dict.cc and apparently both versions (with and without pause) are valid. I'm more used to the version without pause. But if both are valid, no need to change it.

The other words where you fixed the o weren't added by me by the way. I don't know who did that.

Yep, wasn't implied in any way.

hozosch commented 2 weeks ago

I know that both variants (with and without pause) are valid, but in the case of ESpeak, the pause sounds somehow better to me. I use ESpeak without Mbrola or Piper or something like that. I agree though, in natural and fast spoken speech, it sounds better without the pause. Espeak normally speaks really clearly though, and that's also why I don't like how Hypothenusenabschnitt sounds, as it doesn't fit into the rest of the system. Maybe Hypothenuse should be added to the rules, or the list entry should be changed, to use @n instead of n- and | instead of the other glottal stop symbol. I'm sorry for being off topic there, but I went on a tangent there. As for 1 vs |, I do prefer _| if it's the more correct symbol for looks. So I rather use that, since to my ears, it doesn't have an effect on the sound.

GithubAnon0000 commented 2 weeks ago

and that's also why I don't like how Hypothenusenabschnitt sounds, as it doesn't fit into the rest of the system. Maybe Hypothenuse should be added to the rules, or the list entry should be changed,

I created a rule for that in #2005, since I also wanted to add rules that pronounce words like "Diathese" correctly (the part with "the" was wrong). I'm not quite sure if you're saying that the current pronunciation in master is bad, or the pronunctiation from my pr. If it's my pr, I'll gladly change it. It sounds okay to me using default Espeak German voice and mb-de7 though.

I will want to go over other german related issues soon too and fix the words in either de_rules or de_list. I'll also likely add a few more changes that I find by myself.

I abandoned thorsten voice with piper for now, since it pronounced I think "postnatal" as something like "kostnatal" (but espeak does it right).

GithubAnon0000 commented 2 weeks ago

I saw what you meant @hozosch . The pronunciation of "Hypotenuse" was really bad in my pr. It's fixed now (or at least better). Should I change anything else?

hozosch commented 2 weeks ago

I meant the current pronunciation in master, and there not even the "hypo" part, I meant the "en" in hypothenusen. Someone tried to make ESpeak sound like normal people would say it, but that's not how ESpeak works. I'm just going to put how it is now, and how I would prefer it. Hypothenuse was already correct in your pr. Hypothenusen: current way: hypo'te'nu:zn-, better: hypo:te:n'u:z@n For Hypothenusenabschnitt, see above, and the pause between the two words should be done with_|, not ?. BTW the $4 can be removed as the apostrophy symbols already determine the stress. Those flags, dollar + syllable number, are only useful if the stress is the only issue, then you can correct the stress without writing the whole word out in phonemes.