From 273b8e2a1f5441a1fb0c47aa174fde2a2c728849 Mon Sep 17 00:00:00 2001 From: "Reece H. Dunn" Date: Sat, 25 Aug 2018 19:53:01 +0100 Subject: [PATCH] en: support numbers upto a hundred nonillion --- dictsource/en_list | 6 ++++++ src/libespeak-ng/tr_languages.c | 1 + tests/language-numbers-cardinal.test | 2 +- tests/language-numbers-ordinal.test | 4 ++-- 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/dictsource/en_list b/dictsource/en_list index 549708f2..fe71f9e6 100644 --- a/dictsource/en_list +++ b/dictsource/en_list @@ -469,6 +469,12 @@ _0M1 T'aUz@nd _0M2 m'Ili@n _0M3 b'Ili@n _0M4 tr'Ili@n +_0M5 kw0dr'Ili@n +_0M6 kwInt'Ili@n +_0M7 sExt'Ili@n +_0M8 sEpt'Ili@n +_0M9 0kt'Ili@n +_0M10 n0n'Ili@n ?!3 _0and @n _dpt pOInt diff --git a/src/libespeak-ng/tr_languages.c b/src/libespeak-ng/tr_languages.c index b6a55f63..e4e4a8d4 100644 --- a/src/libespeak-ng/tr_languages.c +++ b/src/libespeak-ng/tr_languages.c @@ -632,6 +632,7 @@ Translator *SelectTranslator(const char *name) tr->langopts.stress_rule = STRESSPOSN_1L; tr->langopts.stress_flags = 0x08; tr->langopts.numbers = NUM_HUNDRED_AND | NUM_ROMAN | NUM_1900; + tr->langopts.max_digits = 33; tr->langopts.param[LOPT_COMBINE_WORDS] = 2; // allow "mc" to cmbine with the following word tr->langopts.suffix_add_e = 'e'; tr->langopts.param[LOPT_UNPRONOUNCABLE] = 2; // use en_rules for unpronouncable rules diff --git a/tests/language-numbers-cardinal.test b/tests/language-numbers-cardinal.test index 0b445df9..7cbb4d06 100755 --- a/tests/language-numbers-cardinal.test +++ b/tests/language-numbers-cardinal.test @@ -27,5 +27,5 @@ test_phonemes en "teens" "t'En Il'Ev@n tw'Elv T'3:ti:n f'o@ti:n f'Ifti:n s'Iksti test_phonemes en "tens" "t'En tw'Enti T'3:ti f'o@ti f'Ifti s'Iksti s'Ev@nti; 'eIti n'aInti" "10 20 30 40 50 60 70 80 90" test_phonemes en-GB "hundreds" "Tr'i:h'VndrI2d@n s'Iksti f'aIv" "365" test_phonemes en-US "hundreds" "Tr'i:h'VndrI2d s'Iksti f'aIv" "365" -test_phonemes en "large" "w'0nh'VndrI2d w'0n T'aUz@nd w'0n m'Ili@n w'0n b'Ili@n w'0n tr'Ili@n" "100 1000 1000000 1000000000 1000000000000" # 10^2 10^3 10^6 10^9 10^12 +test_phonemes en "large" "w'0nh'VndrI2d w'0n T'aUz@nd w'0n m'Ili@n w'0n b'Ili@n w'0n tr'Ili@n w'0n kw0dr'Ili@n w'0n kwInt'Ili@n w'0n sExt'Ili@n w'0n sEpt'Ili@n w'0n 0kt'Ili@n w'0n n0n'Ili@n" "100 1000 1000000 1000000000 1000000000000 1000000000000000 1000000000000000000 1000000000000000000000 1000000000000000000000000 1000000000000000000000000000 1000000000000000000000000000000" # 10^2 10^3 10^6 10^9 10^12 10^15 10^18 10^21 10^24 10^27 10^30 test_phonemes en "mixed" "f'aIv s'Iksti f'o@ w'0nh'VndrI2d@n tw'Enti Tr'i: f'o@ T'aUz@nd Tr'i:h'VndrI2d@n f'Ifti s'Ev@n f'o@ti:n T'aUz@nd_! s'Iksh'VndrI2d@n 'eIti Tr'i: s'Ev@nh'VndrI2d@n f'o@ti t'u: T'aUz@nd_! Tr'i:h'VndrI2d@n f'Ifti n'aIn s'Iks m'Ili@n_! f'o@h'VndrI2d@n s'Ev@nti f'aIv T'aUz@nd_! Tr'i:h'VndrI2d@n tw'Enti; 'eIt" "5 64 123 4357 14683 742359 6475328" diff --git a/tests/language-numbers-ordinal.test b/tests/language-numbers-ordinal.test index f0f3ff0b..69b73a27 100755 --- a/tests/language-numbers-ordinal.test +++ b/tests/language-numbers-ordinal.test @@ -22,11 +22,11 @@ test_phonemes() { ##### en (English) -- short scale -echo "~~~~~ en (English) ~~~~~" +echo "... en (English)" test_phonemes en "units" "z'i@roUT f'3:st s'Ek@nd T'3:d f'o@T f'IfT s'IksT s'Ev@nT 'eItT n'aInT" "0th 1st 2nd 3rd 4th 5th 6th 7th 8th 9th" test_phonemes en "teens" "t'EnT Il'Ev@nT tw'ElfT T'3:ti:nT f'o@ti:nT f'Ifti:nT s'Iksti:nT s'Ev@nt,i:nT 'eIti:nT n'aInti:nT" "10th 11th 12th 13th 14th 15th 16th 17th 18th 19th" test_phonemes en "tens" "t'EnT tw'Enti@T T'3:ti@T f'o@ti@T f'Ifti@T s'Iksti@T s'Ev@nt,i@T 'eIti@T n'aInti@T" "10th 20th 30th 40th 50th 60th 70th 80th 90th" test_phonemes en-GB "hundreds" "Tr'i:h'VndrI2d@n s'Iksti f'IfT" "365th" test_phonemes en-US "hundreds" "Tr'i:h'VndrI2d s'Iksti f'IfT" "365th" -test_phonemes en "large" "w'0nh'VndrI2d T w'0n T'aUz@nd T w'0n m'Ili@n T w'0n b'Ili@n T w'0n tr'Ili@n T" "100th 1000th 1000000th 1000000000th 1000000000000th" # 10^2 10^3 10^6 10^9 10^12 +test_phonemes en "large" "w'0nh'VndrI2d T w'0n T'aUz@nd T w'0n m'Ili@n T w'0n b'Ili@n T w'0n tr'Ili@n T w'0n kw0dr'Ili@n T w'0n kwInt'Ili@n T w'0n sExt'Ili@n T w'0n sEpt'Ili@n T w'0n 0kt'Ili@n T w'0n n0n'Ili@n T" "100th 1000th 1000000th 1000000000th 1000000000000th 1000000000000000th 1000000000000000000th 1000000000000000000000th 1000000000000000000000000th 1000000000000000000000000000th 1000000000000000000000000000000th" # 10^2 10^3 10^6 10^9 10^12 10^15 10^18 10^21 10^24 10^27 10^30 test_phonemes en "mixed" "f'IfT s'Iksti f'o@T w'0nh'VndrI2d@n tw'Enti T'3:d f'o@ T'aUz@nd Tr'i:h'VndrI2d@n f'Ifti s'Ev@nT f'o@ti:n T'aUz@nd_! s'Iksh'VndrI2d@n 'eIti T'3:d s'Ev@nh'VndrI2d@n f'o@ti t'u: T'aUz@nd_! Tr'i:h'VndrI2d@n f'Ifti n'aInT s'Iks m'Ili@n_! f'o@h'VndrI2d@n s'Ev@nti f'aIv T'aUz@nd_! Tr'i:h'VndrI2d@n tw'Enti; 'eItT" "5th 64th 123rd 4357th 14683rd 742359th 6475328th"