Updates to Github #github


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

[espeak-ng/espeak-ng] Pull request opened by guest271314:

#979 Chromium/Chrome extension

PR for https://github.com/espeak-ng/espeak-ng/issues/972


[espeak-ng:master] New Comment on Issue #972 Browser extension
By guest271314:

@valdisvi

If you add new functionality to the project, question is, is it needed

From my perspective, yes. See use cases at https://github.com/espeak-ng/espeak-ng/issues/972#issuecomment-877820223.

and who will maintain it.

I will.

I filed the PR for this.


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

[espeak-ng/espeak-ng] Pull request opened by lucaswerkmeister:

#980 Add missing phsource/ files to Makefile.am

Found with the following script:

sh for file in phsource/ph_*; do grep -qF "$file" Makefile.am || echo "$file missing!"; done `

(I noticed these were missing because I went to add ph_quenya to the Makefile – pull request for that coming soon :) – and saw that the other phsource/q* file also wasn’t listed.)


[espeak-ng/espeak-ng] Pull request updated by lucaswerkmeister:

#980 Add missing phsource/ files to Makefile.am

Found with the following script:

sh for file in phsource/ph_*; do grep -qF "$file" Makefile.am || echo "$file missing!"; done `

I’ve left out one of the files highlighted by that script: ph_burmese exists, but isn’t actually used by phsource/phonemes (there’s no include directive for it).


(I noticed these were missing because I went to add ph_quenya to the Makefile – pull request for that coming soon :) – and saw that the other phsource/q* file also wasn’t listed.)


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

[espeak-ng:master] New Comment on Pull Request #980 Add missing phsource/ files to Makefile.am
By jaacoppi:

Thanks.

both ph_burmese and ph_myanmar exist. @valdisvi: Can you take a look at 7ee76fe3. Looks like ph_burmese is the old file that should be deleted. Do you agree?

According to wikipedia, Myanmar is the official term but it looks like we'd better to continue referring to it as Myanmar/Burmese like we've done in Changelog.d https://en.wikipedia.org/wiki/Burmese_language


[espeak-ng/espeak-ng] Pull request closed by jaacoppi:

#980 Add missing phsource/ files to Makefile.am

Found with the following script:

sh for file in phsource/ph_*; do grep -qF "$file" Makefile.am || echo "$file missing!"; done `

I’ve left out one of the files highlighted by that script: ph_burmese exists, but isn’t actually used by phsource/phonemes (there’s no include directive for it).


(I noticed these were missing because I went to add ph_quenya to the Makefile – pull request for that coming soon :) – and saw that the other phsource/q* file also wasn’t listed.)


2 New Commits:

[espeak-ng:master] By Lucas Werkmeister <mail@...>:
c85d497e7f51: Add missing phsource/ files to Makefile.am

Found with the following script:

for file in phsource/ph_*; do
grep -qF "$file" Makefile.am || echo "$file missing!";
done

I’ve left out one of the files highlighted by that script: ph_burmese
exists, but isn’t actually used by phsource/phonemes (there’s no
`include` directive for it).

Modified: Makefile.am


[espeak-ng:master] By jaacoppi <jaacoppi@...>:
93f034a211b5: Merge pull request #980

Add missing phsource/ files to Makefile.am

Modified: Makefile.am


1 New Commit:

[espeak-ng:master] By Juho Hiltunen <jaacoppi@...>:
ed37d4533e7d: fix a type in Changelog (Chuvash = cv, not cu)

Modified: CHANGELOG.md


[espeak-ng:master] New Comment on Pull Request #980 Add missing phsource/ files to Makefile.am
By jaacoppi:

Thanks.

both ph_burmese and ph_myanmar exist. @valdisvi: Can you take a look at 7ee76fe3. Looks like ph_burmese is the old file that should be deleted. Do you agree?

According to wikipedia, Myanmar is the official term but it looks like we'd better to continue referring to it as Myanmar/Burmese like we've done in Changelog.md https://en.wikipedia.org/wiki/Burmese_language


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

[espeak-ng:master] New Comment on Pull Request #981 Add Tolkien’s Elvish languages
By jaacoppi:

Excellent work, thank you!


[espeak-ng/espeak-ng] Pull request closed by jaacoppi:

#981 Add Tolkien’s Elvish languages

This adds support for Quenya and Sindarin, the two main Elvish languages invented by J. R . R. Tolkien, to eSpeak NG. (He also developed several other languages to various degrees of completion, but I reckon Quenya and Sindarin are the only ones worth adding to eSpeak NG.) Spelling and stress for both languages are fairly regular, and I hope to have represented them with fair accuracy; in particular, the tests in tests/language-pronunciation.test include all the test cases of my Tolkien Stress Analyser (test source), to ensure accurate positioning of the primary stress. (I’m letting eSpeak NG determine the secondary stress automatically – i.e., espeak-ng-data/lang/art/qya and /sjn don’t define the S_NO_AUTO_2 flag – and so far I’ve been happy with the results.)

The main source for the pronunciation rules is Appendix E of The Lord of the Rings (the only online copy I’ve found so far is this PDF, starting on page 82); the Ambar Eldaron Quenya Dictionary and the Omikhleia Sindarin Dictionary have also been very useful (though the latter pronounces ⟨i⟩ in the texts as /i/, whereas I believe it should be /ɪ/). Some other resources, and various other notes, are included in the commit messages.

I only have one TODO left that I haven’t been able to fully resolve: the sequence ⟨rh⟩ (Sindarin) or ⟨hr⟩ (Quenya) is supposed to represent “a voiceless _r_” according to Appendix E, which I believe means the voiceless alveolar trill, IPA /r̥/. I was unable to find a way to make espeak-ng --ipa print that character while retaining the correct sound (see commit a39b6b70792b4c8bb4a3467464c9519aa3dc7484), so for now the IPA output for that is /hr/.

I’m hoping you’ll consider merging this (since I noticed there’s already at least one fictional language, Klingon, in the art family), but I won’t mind if you decline it either. (I was hoping to compile this into a website in order to offer online Elvish text-to-speech, for which I don’t really need this to be merged; however, I can’t get the emscripten build to work at the moment.)


35 New Commits:

[espeak-ng:master] By Lucas Werkmeister <mail@...>:
beeac74300fb: Initial setup for Elvish languages

This prepares the languages of Quenya and Sindarin, setting up their
infrastructure without declaring a lot of rules yet – just enough for
“Eä” (a Quenya word, but I can’t think of a similarly simple one for
Sindarin). Phonemes are inherited from Esperanto for now.

Added: dictsource/qya_list
Added: dictsource/qya_rules
Added: dictsource/sjn_list
Added: dictsource/sjn_rules
Added: espeak-ng-data/lang/art/qya
Added: espeak-ng-data/lang/art/sjn
Modified: Makefile.am
Modified: phsource/phonemes


[espeak-ng:master] By Lucas Werkmeister <mail@...>:
a1c79f4c7283: Add basic Sindarin rules

Also, inherit the Elvish phonemes from Latin, because Esperanto doesn’t
have /y/. (Quenya doesn’t need that – ⟨y⟩ is a consonant there – so
maybe I’ll separate their phonemes at some point. For now, Latin works
well enough for both as far as I can tell.)

Modified: dictsource/sjn_rules
Modified: phsource/phonemes


[espeak-ng:master] By Lucas Werkmeister <mail@...>:
b892a8b8c316: Add basic Quenya rules

Copied from Sindarin with only a few changes so far: initial ⟨i⟩ is not
special, ⟨qu⟩ exists, and ⟨y⟩ is a consonant.

Modified: dictsource/qya_rules


[espeak-ng:master] By Lucas Werkmeister <mail@...>:
74985f570f5c: Fix rule for Sindarin initial ⟨i⟩

Sindarin ⟨i⟩ is only pronounced like ⟨j⟩ before another vowel and *at
the beginning of a word*. “Galadriel” does not have a /j/ sound.

Modified: dictsource/sjn_rules


[espeak-ng:master] By Lucas Werkmeister <mail@...>:
3fa62f0ee3e9: Add basic stress rules for Quenya and Sindarin

The Elvish languages have the same general stress rule as Latin [1]:
stress falls on the penultimate syllable if that is heavy (contains a
long vowel, a diphthong, or a vowel followed by two or more consonants),
otherwise on the antepenultimate syllable. For Latin, espeak-ng
implements this by declaring “penultimate syllable” as the general
stress rule in espeak-ng-data/, and then adding rules in dictsource/
that match light syllables and move the primary stress to the previous
syllable, i.e. the antepenultimate one. We use the same basic principle
for the Elvish languages here (but using the terms “heavy” and “light”
rather than “weak” and “strong” like in the Latin files).

Note that this doesn’t fully implement the stress rules yet: we have no
concept of diphthongs, long vowels aren’t really properly handled yet,
and we also still count ⟨ch⟩, ⟨dh⟩, ⟨th⟩ as two consonants rather than
one as it should be. This will be improved separately (I prefer doing
this in small incremental steps).

[1]: https://menegroth.github.io/stress-in-sindarin.html

Modified: dictsource/qya_rules
Modified: dictsource/sjn_rules
Modified: espeak-ng-data/lang/art/qya
Modified: espeak-ng-data/lang/art/sjn


[espeak-ng:master] By Lucas Werkmeister <mail@...>:
35defe2c77e1: Add first tests for Elvish languages

This consists of the test cases from my Tolkien Stress Analyser [1],
minus the ones that aren’t properly handled yet for various reasons. I
expect to add more words here with most future commits for Elvish
languages.

[1]: https://github.com/lucaswerkmeister/tolkien-stress/blob/gh-pages/test/index.test.mjs

Modified: tests/language-pronunciation.test


[espeak-ng:master] By Lucas Werkmeister <mail@...>:
d201e1741827: Fix stress of Elvish ⟨ch⟩, ⟨dh⟩, ⟨th⟩

In Elvish languages, ⟨ch⟩, ⟨dh⟩, and ⟨th⟩ count as single consonants for
the purposes of stress, since they represent single letters in the
original scripts. The easiest way to implement this is to replace them
with single letters at the beginning – ⟨ð⟩ for ⟨dh⟩ and ⟨þ⟩ for ⟨th⟩ are
natural, and ⟨x⟩ for ⟨ch⟩ also makes some sense, though it means we need
to replace real ⟨x⟩ first (it’s not mentioned in Appendix E of The Lord
of the Rings, but does occur in some Quenya words, notably Helcaraxë).
Real ⟨x⟩ is pronounced like /ks/, but of course we need to spell that as
⟨cs⟩, since ⟨k⟩ does not occur in Elvish languages.

Modified: dictsource/qya_rules
Modified: dictsource/sjn_rules
Modified: tests/language-pronunciation.test


[espeak-ng:master] By Lucas Werkmeister <mail@...>:
db971c820153: Fix long vowels in Elvish languages

Long vowels, marked with an acute accent or a circumflex, are longer
than short vowels (duh) and always make a heavy syllable (i.e. we don’t
include the rules to move stress to the previous syllable). In Quenya,
⟨é⟩ and ⟨ó⟩ are “tenser and ‘closer’” than the short vowels, according
to Appendix E of The Lord of the Rings, while in Sindarin they’re
supposed to be the same; the phonemes we inherit from Latin seem to
reproduce this reasonably well for Quenya, and for now we use them for
Sindarin too, which works nicely for the most common Sindarin word with
a long o, “Lothlórien” (because Lórien is actually a Quenya name, and
therefore I assume *that* ⟨ó⟩ should actually be /o/ and not /ɔ/). I
might adjust the phonemes later (at which point Lothlórien will
presumably have to go in sjn_list).

Modified: dictsource/qya_rules
Modified: dictsource/sjn_rules
Modified: tests/language-pronunciation.test


[espeak-ng:master] By Lucas Werkmeister <mail@...>:
ee7e05782140: Fix extra-long vowels in Elvish languages

A circumflex “specially prolonged” vowels; according to Appendix E of
The Lord of the Rings, only in Sindarin, but the Ambar Eldaron Quenya
Dictionary [1] also has some very few circumflex words (sû, lîs), so
let’s support the circumflex in Quenya as well. Marking extra-long
vowels with two colons seems to work well and is also done in several
other languages.

[1]: https://ambar-eldaron.com/telechargements/quenya-engl-A4.pdf

Modified: dictsource/qya_rules
Modified: dictsource/sjn_rules
Modified: tests/language-pronunciation.test


[espeak-ng:master] By Lucas Werkmeister <mail@...>:
f25fda6cd82f: Define some Elvish diphthongs

Not all of the diphthongs in Quenya and Sindarin are defined in the
Latin phonemes, and for now we’re sticking to those, so some diphthongs
just get TODOs for now. Also, we’re temporarily using the same phoneme
for ⟨ae⟩/⟨ai⟩ and ⟨oe⟩/⟨oi⟩, which should really be different (though
Appendix E of The Lord of the Rings notes that ⟨ae⟩ and ⟨oe⟩ don’t have
close English equivalents, and that they “may be pronounced as ai, oi”).

Modified: dictsource/qya_rules
Modified: dictsource/sjn_rules
Modified: tests/language-pronunciation.test


[espeak-ng:master] By Lucas Werkmeister <mail@...>:
c6e6f6015445: Make ph between vowels long in Elvish

According to Appendix E of The Lord of the Rings, ⟨ph⟩ stands for /f/
when final (because ⟨f⟩ is pronounced as /v/ in that position), and
otherwise is used instead of ⟨f⟩ either because it’s derived from ⟨p⟩
(in which case it’s presumably pronounced just like ⟨f⟩), or to
represent an especially long /f/. We can’t really tell which case we
have, but from the Omikhleia Sindarin dictionary [1], it appears that
all the long ⟨ph⟩’s are between two vowels, and all the short ones have
at least one adjacent consonant, so let’s use that as a rule and hope it
works out. (The Ambar Eldaron Quenya dictionary [2] is less easily
searchable, so I’m just hoping that this rule works reasonably well for
both languages.)

[1]: https://www.jrrvf.com/hisweloke/sindar/index.html
[2]: https://ambar-eldaron.com/telechargements/quenya-engl-A4.pdf

Modified: dictsource/qya_rules
Modified: dictsource/sjn_rules
Modified: tests/language-pronunciation.test


[espeak-ng:master] By Lucas Werkmeister <mail@...>:
0928b3a43227: Add more Quenya test cases

I had left out test cases with ⟨qu⟩ and/or ⟨y⟩ earlier, but it looks
like there wasn’t actually any need to do that, they work just fine.

Modified: tests/language-pronunciation.test


[espeak-ng:master] By Lucas Werkmeister <mail@...>:
e8fb04bb4419: Add Quenya ⟨iu⟩, ⟨ui⟩ diphthongs

Both are copied from the Finnish phonemes, since Finnish was a major
inspiration for Quenya. This means that the ⟨iu⟩ diphthong is a
“falling” one – according to Appendix E of The Lord of the Rings, this
is the original pronunciation, but by the Third Age (the time in which
The Lord of the Rings is set) it had become a “rising” one, so I may
change the phoneme later, not sure.

Added: phsource/ph_quenya
Modified: Makefile.am
Modified: dictsource/qya_rules
Modified: phsource/phonemes


[espeak-ng:master] By Lucas Werkmeister <mail@...>:
ca2ca4c5cb1a: Add Sindarin ⟨ae⟩, ⟨ai⟩, ⟨oe⟩, ⟨ui⟩ diphthongs

For ⟨ae⟩, we used to use the Latin [[aI]] phoneme, which sounds like
/ae/. Call that phoneme [[aE]] for us and introduce a separate [[aI]]
one, which sounds more like /ai/ (since Sindarin has both, and they’re
supposed to sound different, though Appendix E of The Lord of the Rings
notes that there is nothing closely corresponding to ⟨ae⟩ in English and
that it may be pronounced like ⟨ai⟩). Furthermore, for ⟨oe⟩, just remove
the TODO – the Latin phoneme is called [[OI]] but sounds more like /oe/
than /oi/, so it’s actually just fine for our purposes. Finally, the
⟨ui⟩ diphthong is copied from Finnish, just like in Quenya.

Added: phsource/ph_sindarin
Modified: Makefile.am
Modified: dictsource/sjn_rules
Modified: phsource/phonemes
Modified: tests/language-pronunciation.test


[espeak-ng:master] By Lucas Werkmeister <mail@...>:
4e6ebdbfb6c0: Velarize [n] to [ŋ] before velar stops in Elvish

I’m not aware of any statement by Tolkien to this effect, but it just
seems natural to me, and the [ŋ] is at least found in the Omikhleia
Sindarin dictionary [1] (e.g. entry tinc, [tˈiŋk]).

Based on a similar phoneme rule in ph_english.

[1]: https://www.jrrvf.com/hisweloke/sindar/index.html

Modified: phsource/ph_quenya
Modified: phsource/ph_sindarin
Modified: tests/language-pronunciation.test


[espeak-ng:master] By Lucas Werkmeister <mail@...>:
8d717b157a58: Fix Quenya [[aI]] phoneme

We used to inherit it from the Latin phonemes, which, as I noted in the
commit adding the Sindarin diphthongs, sounds more like /ae/ than /ai/.
Copy the phoneme from Sindarin so that it sounds like /ai/, not /ae/.
(There is no ⟨ae⟩ diphthong in Quenya, so we don’t need a copy of that.)

Modified: phsource/ph_quenya


[espeak-ng:master] By Lucas Werkmeister <mail@...>:
65d1ec7f1c35: Rearrange exception for Sindarin initial prevocalic ⟨i⟩

Using a + is simpler than an additional rule, and scales better if more
rules are introduced later. (A single + seems to be sufficient.)

Modified: dictsource/sjn_rules


[espeak-ng:master] By Lucas Werkmeister <mail@...>:
9ac1a5bffbe1: Fix treatment of diphthongs for stress in Elvish

Stress is determined based on the syllables, not the vowels, so the
diphthongs need to count as a single syllable. If there is a diphthong
at the end of a word, the penultimate syllable can still be unstressed
if it is light. (The name of Arvedui, last king of Arthedain, is one
example of this that I could think of, but I’m sure it’s not the only
one.)

Modified: dictsource/qya_rules
Modified: dictsource/sjn_rules
Modified: tests/language-pronunciation.test


[espeak-ng:master] By Lucas Werkmeister <mail@...>:
74ec56a1928d: Add Sindarin “muta cum liquida” words to sjn_list

According to the regular stress rules from Appendix E of The Lord of the
Rings, all three of these words should be stressed on the penultimate
(second) syllable, since that syllable is followed by two consonants;
however, the way they are used in poems suggests they should actually be
stressed on the antepenultimate (first) syllable (example: “in IMlaDRIS
it DWELLS”). According to Concerning Stress Placement In Sindarin [1],
this can be attributed to a hypothetical “muta cum liquida” rule like in
Latin, where some syllables count as light even if they’re followed by
two consonants, because both consonants belong to the following syllable
(e.g. IM-la-dris instead of im-LAD-ris). However, the rule is apparently
not applied systematically: according to [2], in another poem the word
“nogothrim”, which is quite similar in structure to “Nargothrond”, is
clearly stressed on the penultimate syllable. For this reason, we don’t
try to define the “muta cum liquida” rule in sjn_rules (or qya_rules),
but only add the three names Imladris, Menegroth and Nargothrond as
exceptions to the sjn_list.

[1]: https://menegroth.github.io/stress-in-sindarin.html
[2]: https://mildred-of-midgard.dreamwidth.org/158375.html#comment-cmt49575

Modified: dictsource/sjn_list
Modified: tests/language-pronunciation.test


[espeak-ng:master] By Lucas Werkmeister <mail@...>:
1c4aafbbfa37: Add Quenya ⟨ht⟩ digraph

According to Appendix E of The Lord of the Rings, “[t]he Quenya
combination ht has the sound of cht, as in German echt, acht”. As echt
and acht do not have the same cht sound in German, I assume this means
that they are allophones in Quenya just as in German, and ⟨ht⟩ means
[çt] after front vowels but [xt] after back vowels. Add tests for both:
Telumehtar, the Quenya name of the star Orion, is given in Appendix E as
an example of ⟨ht⟩; Mahtar is the father of Nerdanel, wife of Fëanor.

Modified: dictsource/qya_rules
Modified: tests/language-pronunciation.test


[espeak-ng:master] By Lucas Werkmeister <mail@...>:
8f9c45849354: Fix Quenya ⟨ch⟩ pronunciation

Appendix E of The Lord of the Rings describes it as “the sound heard in
bach (in German or Welsh)”; I think that means [χ], not [x] (voiceless
uvular rather than velar fricative), and out of the base1 phonemes,
[[X]] is closer to that than [[x]]. (The German phonemes redefine [[x]]
to be closer to [[X]], if I’m not mistaken, but I don’t think we need
that. Note also that we actually need [[x]] for Quenya ⟨ht⟩.)

Modified: dictsource/qya_rules
Modified: dictsource/sjn_rules
Modified: tests/language-pronunciation.test


[espeak-ng:master] By Lucas Werkmeister <mail@...>:
438be8ed5062: Change short Elvish ⟨i⟩ from [[i]] to [[I]]

The B-side of the album Poems and Songs of Middle Earth begins with a
reading of the Sindarin poem A Elbereth Gilthoniel by J.R.R. Tolkien
himself, and in this recording, as best I can tell, he always pronounces
short i (i.e. ⟨i⟩, not ⟨í⟩ or ⟨î⟩) as /ɪ/ rather than /i/, regardless of
stress; for instance, the word “silivren” has the same i-sound twice (it
is not “silívren”). I believe this means that we should use the phoneme
[[I]], not [[i]], for ⟨i⟩ (in both Quenya and Sindarin).

Modified: dictsource/qya_rules
Modified: dictsource/sjn_rules
Modified: tests/language-pronunciation.test


[espeak-ng:master] By Lucas Werkmeister <mail@...>:
2d47c32ba951: Add Quenya ⟨hl⟩ and Sindarin ⟨lh⟩

Both represent a “voiceless L”; Appendix E of The Lord of the Rings
notes that the Quenya ⟨hl⟩ was pronounced like /l/ by the Third Age, but
for now we reproduce the original pronunciation. (Maybe we can later use
conditional rules for different pronunciations, but I think for now I
won’t go down that road.)

Modified: dictsource/qya_rules
Modified: dictsource/sjn_rules
Modified: tests/language-pronunciation.test


[espeak-ng:master] By Lucas Werkmeister <mail@...>:
a39b6b70792b: Add Quenya ⟨hr⟩ and Sindarin ⟨rh⟩

Both represent a “voiceless R”, which I believe means a voiceless
alveolar trill, [r̥]. Ideally this would be one phoneme, but I’m not sure
eSpeak NG currently has a phoneme for this. The Wikipedia article [1][2]
lists occurrences in comparatively few languages, and I chose Welsh for
guidance: eSpeak NG currently turns Welsh “Rhagfyr” into [[hr'agvYr]],
and [[h]] and [[r]] are apparently just two separate phonemes, so for
now we do the same for Quenya and Sindarin, and emit hR.

[1]: https://en.wikipedia.org/wiki/Voiceless_alveolar_trill
[2]: https://en.wikipedia.org/wiki/Special:PermanentLink/1024721264

Modified: dictsource/qya_rules
Modified: dictsource/sjn_rules
Modified: tests/language-pronunciation.test


[espeak-ng:master] By Lucas Werkmeister <mail@...>:
2f77829172b4: Add Elvish ⟨hw⟩

This is “a voiceless w, as in English white (in northern pronunciation)”
according to Appendix E of The Lord of the Rings, and so we copy the
[[w#]] phoneme from the English phonemes. I can’t actually hear much of
a difference from the previous [[hw]] (I know what the difference
between [[w]] and [[w#]] should be, but [[hw]] already sounds like
[[w#]] to me), but at least this improves the --ipa output, changing it
from [hw] to [ʍ].

Modified: dictsource/qya_rules
Modified: dictsource/sjn_rules
Modified: phsource/ph_quenya
Modified: phsource/ph_sindarin
Modified: tests/language-pronunciation.test


[espeak-ng:master] By Lucas Werkmeister <mail@...>:
9a1bb4ccf98b: Add Quenya ⟨hy⟩

According to Appendix E of The Lord of the Rings, this has the same
relation to ⟨y⟩ ([j]) as ⟨hw⟩ ([ʍ]) does to ⟨w⟩ ([w]) – this probably
means the voiceless palatal fricative [ç], though Wikipedia says a
voicless palatal approximant (which would be closer to [j], the voiced
palatal approximant) is sometimes also posited.

We previously emitted [[hj]] for ⟨hy⟩, which sounds fairly close to [ç],
similar to how [[hw]] is fairly close to [ʍ] (see previous commit) –
however, translating it into [[C]] again means better --ipa output.

(In Sindarin, ⟨hy⟩ does not occur.)

Modified: dictsource/qya_rules
Modified: tests/language-pronunciation.test


[espeak-ng:master] By Lucas Werkmeister <mail@...>:
cc4b50f3f47a: Replace Elvish [[ui]]/[[uI]] diphthong

Previously, we used vdiph/ui_4 for [[ui]]; I think the main reason for
that was that I didn’t like how the most common ⟨ui⟩, vdiph/ui, seemed
to almost vanish in “Cuiviénen”. However, vdiph/ui_4 has the curious
property that in some positions, e.g. ⟨uia⟩ in “tuia” or ⟨uil⟩
“tuilindo”, it sounds (to me) more like /ul/ than /ui/. (This also
affects Finnish, which seems to be the only other language that uses
vdiph/ui_4 [a few other languages also use it for [[ui]] but don’t seem
to emit that phoneme in their rules files] – listen to eSpeak NG
pronounce Finnish ”luiun”, for instance.) I eventually found out that
this can be worked around by substantially lengthening the phoneme
(length 500 seems to work in all positions), but this extreme length
(the absolute maximum is just 511) becomes rather noticeable whenever
the ui is used, including in positions where it had sounded just fine
before. Meanwhile, the more standard vdiph/ui can be made to sound
reasonably well in “Cuiviénen” with a much smaller increment to its
length: 290 (as also in ph_lithuanian) instead of 240 (as in ph_base2)
is enough. In this version, [[uI]] sounds acceptable enough for Elvish
⟨ui⟩ in all positions, as far as I can tell.

Modified: dictsource/qya_rules
Modified: dictsource/sjn_rules
Modified: phsource/ph_quenya
Modified: phsource/ph_sindarin
Modified: tests/language-pronunciation.test


[espeak-ng:master] By Lucas Werkmeister <mail@...>:
4ed36b07ec24: Fix Elvish ⟨e⟩, ⟨é⟩, ⟨ê⟩ vowels

⟨e⟩ almost certainly always represents [ɛ], not [e]. Appendix E of The
Lord of the Rings describes it as the sound in English “were”, and I’m
not aware of any English dialect that pronounces “were” with an [e].

In Quenya, long ⟨é⟩ (and, presumably, ⟨ê⟩) is, according to Appendix E,
“tenser and ‘closer’”, which I assume means [e]. Several online sources
agree with this as well.

In Sindarin, Appendix E is quite clear that ⟨é⟩ has “the same quality”
as ⟨e⟩, only differring from it in length: I assume this must mean that
⟨é⟩ is [ɛː] in Sindarin. The online information on this is confusing and
sometimes contradictory even within the same page; several sources claim
that Sindarin has an [eː], but I have not seen this claim substantiated
with a source from Tolkien, and I suspect it’s simply a confusion with
Quenya. It scarcely matters, anyway: Sindarin words with ⟨é⟩ or ⟨ê⟩ seem
to be pretty rare. (I’m aware of a single word with an ⟨é⟩ – the name
Eluréd, son of Dior – and the Omikhleia Sindarin dictionary [1] features
some words with ⟨ê⟩, giving their pronunciation with [ɛː].)

The [[EI]] phoneme for Sindarin ⟨ei⟩ is copied from the base2 phonemes.

[1]: https://www.jrrvf.com/hisweloke/sindar/index.html

Modified: dictsource/qya_rules
Modified: dictsource/sjn_rules
Modified: phsource/ph_sindarin
Modified: tests/language-pronunciation.test


[espeak-ng:master] By Lucas Werkmeister <mail@...>:
3ad8114e4afe: Fix Elvish ⟨o⟩, ⟨ó⟩, ⟨ê⟩ vowels

⟨o⟩ almost certainly represents [ɔ] – Appendix E of The Lord of the
Rings describes it as the sound in English “for”. This means we should
use a phoneme [[O]], not [[o]]; we should also create our own phoneme
for this, since the one we inherit from Latin sounds much more like [o]
to me.

In Quenya, long ⟨ó⟩ (and, presumably, ⟨ô⟩) is, according to Appendix E,
“tenser and ‘closer’”, which presumably means [o]. (Online sources seem
to agree.) The Latin [[o:]] phoneme works well enough for this.

In Sindarin, ⟨ó⟩ has “the same quality” as ⟨o⟩ according to Appendix E,
so emit it as [[O:]] for [ɔː]. This sounds sensible enough te me.

I’m undecided whether “Lothlórien” should be in sjn_list, to pronounce
it with [oː] instead of [ɔː]. It’s composed of Sindarin “loth” and
Quenya “Lórien”, so that could potentially justify a pronunciation with
a Quenya ⟨ó⟩. But then again, maybe it should be a standard Sindarin
⟨ó⟩. For now, I’ve opted to not add it; in the film The Fellowship of
the Ring, Aragorn (Viggo Mortensen) says “Lothlórien” after the
Fellowship leave Moria, and to me his ⟨ó⟩ sounds more like [ɔː] than
[oː], so if this is wrong, at least it’s no more wrong than the famous
movie adaptation :)

Modified: dictsource/qya_rules
Modified: dictsource/sjn_rules
Modified: phsource/ph_quenya
Modified: phsource/ph_sindarin
Modified: tests/language-pronunciation.test


[espeak-ng:master] By Lucas Werkmeister <mail@...>:
95d74edd86a3: Fix Elvish double plosives

Consonants written twice always represent long consonants, not actual
repetation. eSpeak NG’s default behavior when speaking a doubled
consonant phoneme seems to work well enough for non-plosive consonants,
but for plosives, we need to tell it that the two input characters
correspond to one long phoneme, not a repeated regular one.

All three doubled voiceless plosives – ⟨tt⟩, ⟨pp⟩, ⟨cc⟩ – are regularly
found in Quenya, according to the Ambar Eldaron Quenya Dictionary [1].
Their voiced counterparts – ⟨dd⟩, ⟨bb⟩, ⟨gg⟩ – apparently don’t occur,
nor are any doubled plosives to be found in the Omikhleia Sindarin
Dictionary [2], voiced or not. But let’s define all six pairs in both
languages anyways, since it doesn’t cost us much to do so, and it seems
fairly clear that this is how these double consonants should be
pronounced, if they ever occurred.

[1]: https://ambar-eldaron.com/telechargements/quenya-engl-A4.pdf
[2]: https://www.jrrvf.com/hisweloke/sindar/index.html

Modified: dictsource/qya_rules
Modified: dictsource/sjn_rules
Modified: tests/language-pronunciation.test


[espeak-ng:master] By Lucas Werkmeister <mail@...>:
2dfc8ae66eb9: Add Elvish ⟨k⟩ as equivalent of ⟨c⟩

According to Appendix E of The Lord of the Rings, ⟨k⟩ is used with the
same value as ⟨c⟩ in names from non-Elvish languages (both representing
/k/). However, in the Silmarillion, ⟨k⟩ is also used in some Elvish
names, such as Tulkas and Kementári, as well as in some words in the
Appendix (Elements in Quenya and Sindarin Names), e.g. kir- as an
element or root in Calacirya, Cirth, and other words. And in earlier
versions of the language (when Quenya was called Qenya and Sindarin
Gnomish), ⟨k⟩ also often occurs. Therefore, let’s support it as an
alternative spelling of ⟨c⟩.

Currently, eSpeak NG doesn’t seem to do the two-step replacement of
⟨kh⟩→⟨ch⟩→⟨x⟩, which means that ⟨kh⟩ is ultimately pronounced as /kh/
(or /kʰ/?) rather than [χ]; according to Appendix E, this is correct in
Dwarvish, while in Orkish and Adûnaic ⟨kh⟩ should be equivalent to ⟨ch⟩.
Since we’re not really aiming for pronouncing any of these languages,
either way is fine.

Modified: dictsource/qya_rules
Modified: dictsource/sjn_rules
Modified: tests/language-pronunciation.test


[espeak-ng:master] By Lucas Werkmeister <mail@...>:
eb461b453a2e: Add Quenya ⟨q⟩ as equivalent of ⟨qu⟩

According to the Tolkien Gateway article on Qenya [1], Tolkien used ⟨q⟩
to represent [kʷ] before the writing of The Lord of the Rings (during
which he decided to use ⟨qu⟩ instead). Let’s support it, in case someone
wants to use eSpeak NG to pronounce names from the earlier volumes of
the History of Middle-earth.

[1]: http://tolkiengateway.net/wiki/Qenya

Modified: dictsource/qya_rules


[espeak-ng:master] By Lucas Werkmeister <mail@...>:
6dc3041e5726: Switch to Quenya when encountering ⟨q⟩ in Sindarin

In Sindarin, ⟨q⟩ or ⟨qu⟩ do not occur, so if we encounter it, the word
must actually be Quenya. Let’s be user-friendly and switch to Quenya in
that case (though I’m not sure how common it would be to encounter a
single Quenya word in a Sindarin text – I suspect it would be more
likely that the user chose the wrong language and really the entire text
is in Quenya).

Modified: dictsource/sjn_rules


[espeak-ng:master] By Lucas Werkmeister <mail@...>:
845162be4dde: Add Elvish unstressed words to list files

I went through the conjunctions and prepositions listed in the Ambar
Eldaron Quenya Dictionary [1] and the Omikhleia Sindarin Dictionary [2]
and added all the ones with a single light syllable to the list as
unstressed (with one exception). I think this improves the way some
texts are read a little bit (though I have to admit I find it hard to
tell the difference).

[1]: https://ambar-eldaron.com/telechargements/quenya-engl-A4.pdf
[2]: https://www.jrrvf.com/hisweloke/sindar/index.html

Modified: dictsource/qya_list
Modified: dictsource/sjn_list


[espeak-ng:master] By jaacoppi <jaacoppi@...>:
67ce80d56888: Merge pull request #981

qya: sjn: Add Tolkien’s Elvish languages Quenya and Sindarin

Added: dictsource/qya_list
Added: dictsource/qya_rules
Added: dictsource/sjn_list
Added: dictsource/sjn_rules
Added: espeak-ng-data/lang/art/qya
Added: espeak-ng-data/lang/art/sjn
Added: phsource/ph_quenya
Added: phsource/ph_sindarin
Modified: Makefile.am
Modified: phsource/phonemes
Modified: tests/language-pronunciation.test


1 New Commit:

[espeak-ng:master] By Juho Hiltunen <jaacoppi@...>:
76fbe50bd4f1: Update changelog

Modified: CHANGELOG.md


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

[espeak-ng:master] New Comment on Pull Request #981 Add Tolkien’s Elvish languages
By king-dahmanus:

thanks op for creating this request, and thanks, developer of espeak ng for murging it. I wish i learn out how to compile espeak ng manually and coppy the data of the new languages to nvda, i wish someone could help me. And this next thing is offtopic, i wish you would correct the pronounciation of klingon as it's 109% messed up. Thanks in advance


[espeak-ng:master] New Comment on Pull Request #981 Add Tolkien’s Elvish languages
By Flameborn:

@king-dahmanus Feel free to open an issue regarding Klingon, even if you are not sure how to implement fixes, someone might take it up and send a PR. Having an issue explaining what problems you're facing is definitely going to be helpful in the end.


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

7 New Commits:

[espeak-ng:master] By guest271314 <guest271314@...>:
33478d4d646f: Create README.md

Added: chromium_extension/README.md


[espeak-ng:master] By guest271314 <guest271314@...>:
55bfb0d15ca9: Add files via upload

Added: chromium_extension/AudioStream.js
Added: chromium_extension/background.js
Added: chromium_extension/index.php
Added: chromium_extension/local_server.sh
Added: chromium_extension/manifest.json
Added: chromium_extension/nativeTransferableStream.html
Added: chromium_extension/nativeTransferableStream.js
Added: chromium_extension/native_messaging_espeakng.json


[espeak-ng:master] By guest271314 <guest271314@...>:
cc22e509773a: Update README.md

Modified: chromium_extension/README.md


[espeak-ng:master] By guest271314 <guest271314@...>:
5703ea7ff7f5: Start reading audio data after 44 bytes of WAV

https://github.com/espeak-ng/espeak-ng/issues/832

Modified: chromium_extension/AudioStream.js


[espeak-ng:master] By Valdis Vitolins <valdis.vitolins@...>:
5aea69294ef0: Merge pull request #979

Added: chromium_extension/AudioStream.js
Added: chromium_extension/README.md
Added: chromium_extension/background.js
Added: chromium_extension/index.php
Added: chromium_extension/local_server.sh
Added: chromium_extension/manifest.json
Added: chromium_extension/nativeTransferableStream.html
Added: chromium_extension/nativeTransferableStream.js
Added: chromium_extension/native_messaging_espeakng.json


[espeak-ng:master] By Valdis Vitolins <valdis.vitolins@...>:
8dc2df33de33: Format changelog, use present form for comments

Modified: CHANGELOG.md


[espeak-ng:master] By Valdis Vitolins <valdis.vitolins@...>:
74068b91bcd5: Update changelog

Modified: CHANGELOG.md


[espeak-ng/espeak-ng] Pull request closed by valdisvi:

#979 Chromium/Chrome extension

PR for https://github.com/espeak-ng/espeak-ng/issues/972


[espeak-ng:master] New Comment on Issue #983 Tagalog for Espeak NG
By valdisvi:

Where did you hear that? Can you refer to it?


[espeak-ng:master] New Comment on Issue #983 Tagalog for Espeak NG
By valdisvi:

Where did you hear that? Can you refer to it? Only thing I can find is issue #581.


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

[espeak-ng:master] New Comment on Issue #857 New release of espeak
By seanbudd:

Hi again,

Over at nvaccess/nvda we have now started our 2021.3 release process, and we've updated the version of espeak-ng to 74068b91bcd578bd7030a7a6cde2085114b79b44 for testing on alpha. We would love it if we can use a new release of espeak when we finalise 2021.3.


[espeak-ng:master] New Comment on Issue #857 New release of espeak
By seanbudd:

Hi again,

Over at nvaccess/nvda we have now started our 2021.3 release process, and we've updated the version of espeak-ng to 74068b91bcd578bd7030a7a6cde2085114b79b44 for testing on alpha. We would love it if we can use a new release of espeak when we finalise 2021.3.

We are using ab11439b18238b7a08b965d1d5a6ef31cbb05cbb for 2021.2


[espeak-ng:master] New Comment on Issue #857 New release of espeak
By seanbudd:

Hi again,

Over at nvaccess/nvda we have now started our 2021.3 release process, and we're updating the version of espeak-ng to 74068b91bcd578bd7030a7a6cde2085114b79b44 for testing on alpha. We would love it if we can use a new release of espeak when we finalise 2021.3.

We are using ab11439b18238b7a08b965d1d5a6ef31cbb05cbb for 2021.2


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

[espeak-ng:master] New Comment on Issue #985 Thai language is not found in 1.49.2
By sakares:

Hi @jaacoppi It works now. Thanks!

> espeak-ng --version
eSpeak NG text-to-speech: 1.51-dev  Data at: /usr/share/espeak-ng-data

> espeak-ng --voices | grep Thai
 5  th              --/M      Thai               tai/th


[espeak-ng:master] Issue #985 Thai language is not found in 1.49.2 closed by sakares.


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

[espeak-ng:master] New Comment on Issue #987 Espeak Turkish has trouble pronouncing words with double apostrophies
By jaacoppi:

This has been fixed in the development version. Update to the version in git. I will close this issue. Continue the discussion in #875.

The current fix might not be perfect, Can you help? Use espeak-ng -x to see the output. Are these correct?

espeak-ng  -v tr "Kur'an'da" -x
ku*and'a

espeak-ng  -v tr "Celâ'led'din" -x
dZelalEdd'In 


[espeak-ng:master] Issue #987 Espeak Turkish has trouble pronouncing words with double apostrophies closed by burakyuksek.


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

[espeak-ng:master] New Comment on Issue #988 At what point does espeak output a multi-line IPA sequence ?
By valdisvi:

If text has commas, full stops or two linebreaks (empty lines), they are used as natural breaks of the text. If text doesn't have them, text is broken at the last word of 800 bytes buffer, defined in translate.h as N_TR_SOURCE. If text doesn't have even spaces, then it is broken at the end of the buffer. As far as I remember, details should be in readclause.c ReadClause function.


[espeak-ng:master] New Comment on Issue #988 At what point does espeak output a multi-line IPA sequence ?
By valdisvi:

If text has commas, full stops or two linebreaks (empty lines), they are used as natural breaks of the text and output has line break after it. If text doesn't have them, text is broken at the last word of 800 bytes buffer, defined in translate.h as N_TR_SOURCE. If text doesn't have even spaces, then it is broken at the end of the buffer. As far as I remember, details should be in readclause.c ReadClause function.


2 New Commits:

[espeak-ng:master] By Shadyar Khodayari <shadyar81@...>:
07e0b26af1cb: Underline character added to lines () [] {} «» to resolve the problem relevant to punctuations.

Modified: dictsource/fa_list
Modified: dictsource/fa_rules


[espeak-ng:master] By Valdis Vitolins <valdis.vitolins@...>:
6deadb9f5e2a: Merge pull request #989

Modified: dictsource/fa_list
Modified: dictsource/fa_rules


[espeak-ng/espeak-ng] Pull request closed by valdisvi:

#989 Underline character added to some punctuations

…m relevant to punctuations. Underline character added to lines () [] {} «» to resolve the problem.


2 New Commits:

[espeak-ng:master] By guest271314 <guest271314@...>:
386a0b705e23: Update AudioDataInit

Modified: chromium_extension/AudioStream.js


[espeak-ng:master] By Valdis Vitolins <valdis.vitolins@...>:
9ae762d4074d: Merge pull request #984

Modified: chromium_extension/AudioStream.js


[espeak-ng/espeak-ng] Pull request closed by valdisvi:

#984 Update AudioDataInit

https://www.w3.org/TR/webcodecs/#dictdef-audiodatainit