Topics

[espeak-ng:master] reported: There needs to be a way to explicitly set stress only via rules to support unstressed languages and other non-European languages. #github


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

[espeak-ng:master] New Comment on Issue #793 There needs to be a way to explicitly set stress only via rules to support unstressed languages and other non-European languages.
By michael-conrad:

As a test I added:

case 14: // mark all as unstressed
			for (ix = 1; ix < vowel_count; ix++) {
				vowel_stress[ix] = STRESS_IS_UNSTRESSED;
			}
			unstressed_word = true;
			printf("This word should not have any stress added later in the process.\n");
			break;

to dictionary.c

I then updated the file espeak-ng-data/lang/iro/chr to have "stressRule 14"

When I test the rebuilt espeak-ng I get:

~/espeak-ng/bin/espeak-ng -v chr+f2 --ipa "U²no¹de⁴na hạ²wi²ya."
This word should not have any stress added later in the process.
This word should not have any stress added later in the process.
uː2nõː1deː4nˌɒ̃4 hɒ2wiː2jˈɒ̃4

The IPA shows both a secondary and primary stress being added.

-x output:

~/espeak-ng/bin/espeak-ng -v chr+f2 -x "U²no¹de⁴na hạ²wi²ya."
This word should not have any stress added later in the process.
This word should not have any stress added later in the process.
u:2no~:1de:4n,0~43 h02wi:2j'0~43

-X output:

~/espeak-ng/bin/espeak-ng -v chr+f2 -X "U²no¹de⁴na hạ²wi²ya."
Replace: ² > xc
Replace: ¹ > xb
Replace: ⁴ > xf
Replace: ² > xc
Replace: ² > xc
Translate 'uxcnoxbdexfna'
  1	u        [u:]

 22	xc       [2]

  1	n        [n]

  1	o        [o:]
 27	L02) o   [o~:]

 22	xb       [1]

  1	d        [d]

  1	e        [e:]

 22	xf       [4]

  1	n        [n]

  1	a        [0:]
 27	L02) a   [0~:]
 48	L02) a (_ [0~43]
 22	a (_     [0~43]

This word should not have any stress added later in the process.
Translate 'hạxcwixcya'
  1	h        [h]

 36	ạ      [0]

 22	xc       [2]

  1	w        [w]

  1	i        [i:]

 22	xc       [2]

  1	y        [j]

  1	a        [0:]
 22	a (_     [0~43]

This word should not have any stress added later in the process.
u:2no~:1de:4n,0~43 h02wi:2j'0~43


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

[espeak-ng:master] New Comment on Issue #793 There needs to be a way to explicitly set stress only via rules to support unstressed languages and other non-European languages.
By valdisvi:

@michael-conrad, you need to disable secondary stress for language. I have done it with this commit, which is compiled on test site. If it is ok (all syllables are equally stressed), I'll push it to upstream project also. There are more settings, which you can set only in code, e.g. for Latvian and other languages. These settings are described, but to understand, what description exactly means, you can usually through tests.


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

[espeak-ng:master] New Comment on Issue #793 There needs to be a way to explicitly set stress only via rules to support unstressed languages and other non-European languages.
By michael-conrad:

OK, just did a test with the testing website using "U²no¹de⁴na hạ²wi²ya u²no¹de⁴na hạ²wi²ya.".

Though the final word is still getting it's final vowel lengthened, it definitely shows an improvement with not adding stress to the whole word (as evidenced by the 'h' portion of the wave form).

We, (myself + a couple of testers), have been having difficulties with differentiating between "t", "d", "g", "k", and "n". Hopefully having less stress will make these consonants more clear to us.

See screen shot. I cut the audio up into segments for easier compare. The first segment is in the middle of the sentence, the second segment is at the end of the sentence.

Right now the clause, sentence, etc intonation patterns are all set to '0 ... 0', would this be having any sort of impact?

Just as an FYI:

  • Word final open vowels in modern Cherokee are short or very short or just dropped are generally nasalized by default and normally have a special end of word pitch/tone (which I can't get espeak to generate per praat analysis).

image


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

[espeak-ng:master] New Comment on Issue #793 There needs to be a way to explicitly set stress only via rules to support unstressed languages and other non-European languages.
By michael-conrad:

@michael-conrad, you need to disable secondary stress for language. I have done it with this commit, which is compiled on test site. If it is ok (all syllables are equally stressed), I'll push it to upstream project also.

I can't seem to get this working locally.

The patch is applied, but I'm still showing a sentence final stress mark in the -x output.

I also have added the 'case 0' -> abort operation to SetWordStress(...) and set stressRule 0 in the language file.

What am I missing?