Commit Graph
4715 Commits
Author SHA1 Message Date
Ryan Schmidt 3fe500aebb Check more accurately if gradle exists
Previously, the configure script would only successfully determine that
gradle exists if the user specified an absolute path to the executable.
It would fail if the user specified only an executable name or if the
default value of "gradle" were used. Now it should succeed in either
situation.
2021-08-17 20:07:33 -05:00
Juho Hiltunen d80f1a80a2 Use ESPEAKNG_DEFAULT_VOICE instead of hard coded "en".
This will make it easier to set a default voice other than
English. This is important for cases when a language will fall back to
the default voice.

Some references to L('e', 'n') still need to be changed.
2021-08-10 19:57:53 +03:00
Juho Hiltunen 3038d40081 code cleanup: remove unnecessary #defines.
Found by parsing the results from this bash script:
for define in $(grep define *.h |  awk'{print $2}');
do if ! grep -q $define *.c
then
        echo "$define not found";
fi
done
2021-07-31 17:29:33 +03:00
Juho Hiltunen 923c779098 he: remove two lines that prevent compilation of the dictionary. 2021-07-31 17:01:45 +03:00
Valdis Vitolins b4589413d7 Fix bug in condition: 'test ...' should return false in this case 2021-07-31 16:27:44 +03:00
Valdis Vitolins d7a85b7972 Merge pull request #990 2021-07-31 16:01:49 +03:00
Valdis Vitolins 8d94d49502 Merge pull request #994 2021-07-31 15:58:21 +03:00
Omer I.S 5d97c58b69 he: add words to he_list 2021-07-31 11:49:18 +03:00
Valdis Vitolins 9425be8386 Allow several pipe delimited hash values for Klatt tests 2021-07-30 23:05:33 +03:00
Valdis Vitolins 9e3528e6a9 Merge pull request #991 2021-07-30 21:58:15 +03:00
Valdis Vitolins fda3504911 Android build doesn't work with gradle 7.0.1 2021-07-30 21:57:34 +03:00
Juho Hiltunen e91d0a5861 code cleanup: don't add a \0 to voices_language in LoadVoice().
This is unnecessary since the string is already null terminated in the
V_LANGUAGE switch case. sscanf creates a null terminated string in
language_name, which is then copied to voice_language by strcpy (keeping
the \0).
2021-07-30 17:18:47 +03:00
Valdis Vitolins aa992d8e5a Add Hebrew MBROLA voices to the list 2021-07-30 11:40:27 +03:00
jaacoppi d493a9dd37 Merge pull request #992
he: Add ךְ and ךָ
2021-07-30 08:39:04 +03:00
Omer I.S e1d9ae0e81 Add ךָ and ךְ 2021-07-30 02:05:27 +03:00
Valdis Vitolins 3b637450e9 Issue #825: add initial support for Hebrew MBROLA voices 2021-07-29 22:57:39 +03:00
Juho Hiltunen eae0665be5 code cleanup: move voices->width in LoadVoice()
It's probably unnecessary code and could be removed. However, it would
break tests. This is a temporary solution.

The solution is to do it once in VoiceReset() and then if the "formant"
keyword changes voice->width.
2021-07-28 22:11:47 +03:00
Juho Hiltunen c28412db78 Don't set stress_flags with language option "stressRule".
Language option "stressOpt" already handles separate flags instead of a
single integer. There's no reason to have two ways of setting the same
option.
2021-07-27 22:15:28 +03:00
Juho Hiltunen 4f5f1e8310 doc: add documentation for language option "stressOpt" 2021-07-27 22:15:28 +03:00
Juho Hiltunen 537617afc5 et: fi: move stressopt from tr_languages.c to language files
This is to make sure "stressopt" language option works. Current tests
would fail if it didn't.
2021-07-27 22:15:28 +03:00
Juho Hiltunen 602847371d rename language option stressopt to stressOpt 2021-07-27 22:15:28 +03:00
Juho Hiltunen a6abb1e89b code cleanup: use ReadNumbers() for language options "dictrules", "stressopt"
language option "numbers" could be changed to use the same function, but
it needs tests.
2021-07-27 22:15:28 +03:00
Juho Hiltunen fdc1afd407 code cleanup: new function ReadNumbers()
ReadNumbers8) parses an unknown number of numbers from language files.
Used mostly for setting flags.
Used mostly for setting flags.
2021-07-27 22:15:28 +03:00
Juho Hiltunen ac643ea5ad code cleanup: remove unnecessary call to SelectPhonemeTable()
It is called multiple times in LoadVoice().
2021-07-26 17:43:15 +03:00
Juho Hiltunen 80895db0a8 code cleanup: move SetSpeed() inside the switch case in LoadVoice()
SetSpeed is needed when "speed" keyword changes voice->speed_percent.
2021-07-26 17:07:42 +03:00
heidari78 4fce71a879 android version: updated voice variant list and Persian translation.
1: Added missing voice variants in the NVDA category including Iven 4, Steph, Steph 2 and Steph 3.
2: Completed the Persian translation.
2021-07-25 12:30:15 +04:30
guest271314 3ec8db404b Remove AudioBuffer use AudioData 2021-07-24 21:44:46 -07:00
guest271314 b148a7ad1f Update AudioStream.js 2021-07-24 21:02:03 -07:00
guest271314 6874f6e913 Use read().done to verify all bytes are written
Substitute using existing defined done of ReadableStreamDefaultReader.read() for value.length < this.channelDataLength &&
(await this.inputReader.read()).done to verify all input stream bytes are written
2021-07-24 20:03:03 -07:00
guest271314 0a06191497 Update AudioStream.js
- Verify last bytes of input stream are written to audio output stream before disconnecting audio nodes
- Start MediaRecorder before first AudioData is written to audio output stream
- Include error handling in disconnect() and abortHandler for abort() called immediately following start() for case of close() called on a closed stream
- Check if data set in recorder dataavailable event is defined before calling data.arrayBuffer()
2021-07-24 19:02:16 -07:00
Valdis Vitolins 9ae762d407 Merge pull request #984 2021-07-23 21:08:14 +03:00
Valdis Vitolins 6deadb9f5e Merge pull request #989 2021-07-23 21:05:47 +03:00
Shadyar Khodayari 07e0b26af1 Underline character added to lines () [] {} «» to resolve the problem relevant to punctuations. 2021-07-23 21:07:20 +04:30
Juho Hiltunen 01f094346d nb: fix regression for language options.
182aba4cc started calling Norwegian nb instead of no. The result is that
code in tr_languages.c was never run.
2021-07-23 18:32:33 +03:00
Juho Hiltunen 88cb55ee0f tests: add missing phoneme tests.
Added tests are copied from existing tests from the same language family
or English. The tested phonemes should be adapted for better test
coverage.
2021-07-23 16:57:36 +03:00
Juho Hiltunen ddde4b1060 tests: add a test to make sure each language has a phoneme test 2021-07-23 16:57:23 +03:00
Juho Hiltunen cb30653736 io: use capital for language name (Ido instead of ido). 2021-07-23 16:57:10 +03:00
guest271314 386a0b705e Update AudioDataInit 2021-07-20 23:14:36 -07:00
Valdis Vitolins 74068b91bc Update changelog 2021-07-20 17:30:55 +03:00
Valdis Vitolins 8dc2df33de Format changelog, use present form for comments 2021-07-20 17:29:47 +03:00
Valdis Vitolins 5aea69294e Merge pull request #979 2021-07-20 17:24:48 +03:00
Valdis Vitolins a4c8d7f1fe Update list of languages 2021-07-20 17:04:08 +03:00
Juho Hiltunen 76fbe50bd4 Update changelog 2021-07-19 16:32:49 +03:00
jaacoppi 67ce80d568 Merge pull request #981
qya: sjn: Add Tolkien’s Elvish languages Quenya and Sindarin
2021-07-19 16:30:39 +03:00
Lucas Werkmeister 845162be4d 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
2021-07-18 13:28:03 +02:00
Lucas Werkmeister 6dc3041e57 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).
2021-07-18 13:28:03 +02:00
Lucas Werkmeister eb461b453a 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
2021-07-18 13:28:03 +02:00
Lucas Werkmeister 2dfc8ae66e 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.
2021-07-18 13:28:03 +02:00
Lucas Werkmeister 95d74edd86 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
2021-07-18 13:28:03 +02:00
Lucas Werkmeister 3ad8114e4a 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 :)
2021-07-18 13:28:03 +02:00