There is no fr-CA language dialect dialect file, nor has there been in the espeak/espeak-ng history. The fr-CA phoneme table defined the additional phonemes [U], [y"], [E:], and [A]. The fr-FR phoneme table mapped these to [u], [y], [E], and [a] respectively. This meant to describe the phonemes that have not been merged in fr-CA, but have merged in fr-FR, as described in https://en.wikipedia.org/wiki/Quebec_French_phonology. The only use of these phonemes in the French dictionary was with the word "tramway" using [E:]. This has been replaced with [E] to match the rest of the dictionary file transcriptions, and those phonemes for fr-CA have been removed. If fr-CA is supported in the future, the French dictionary would need to be modified to reverse the merger of the phonemes that are not merged in fr-CA, with the merge logic being performed in the fr-FR phoneme table like in the code being removed in this commit.master
phsource/ph_farsi \ | phsource/ph_farsi \ | ||||
phsource/ph_finnish \ | phsource/ph_finnish \ | ||||
phsource/ph_french \ | phsource/ph_french \ | ||||
phsource/ph_french_ca \ | |||||
phsource/ph_georgian \ | phsource/ph_georgian \ | ||||
phsource/ph_german \ | phsource/ph_german \ | ||||
phsource/ph_greek \ | phsource/ph_greek \ |
thierry tjEri | thierry tjEri | ||||
those _^_en | those _^_en | ||||
to tu $u+ | to tu $u+ | ||||
tramway tramwE: | |||||
tramway tramwE | |||||
tuttiquanti tutikw'anti | tuttiquanti tutikw'anti | ||||
vaut $u+ | vaut $u+ | ||||
vaux $u+ | vaux $u+ |
phoneme : // Lengthen previous vowel by "length" | phoneme : // Lengthen previous vowel by "length" | ||||
virtual | virtual | ||||
length 40 // shorter than for fr-ca | |||||
length 40 | |||||
endphoneme | endphoneme | ||||
phoneme #cFR virtual | phoneme #cFR virtual | ||||
// These vowels map to others in fr-fr, but are distinct in fr-ca | |||||
phoneme U // same as [u] | |||||
import_phoneme fr/u | |||||
endphoneme | |||||
phoneme y" // same as [y] | |||||
import_phoneme fr/y | |||||
endphoneme | |||||
phoneme E: // slightly longer than [E] | |||||
import_phoneme E | |||||
endphoneme | |||||
phoneme A // same as [a] | |||||
import_phoneme a | |||||
endphoneme | |||||
// CONSONANTS | // CONSONANTS | ||||
//=========== | //=========== | ||||
// uses the consonants in file "phonemes", unless overridden here | // uses the consonants in file "phonemes", unless overridden here |
//==================================================== | |||||
// French - Canadian | |||||
//==================================================== | |||||
// Based on French. | |||||
// This file redefines phonemes which differ from those in ph_french | |||||
phoneme : // Lengthen previous vowel by "length" | |||||
virtual | |||||
length 70 | |||||
endphoneme | |||||
phoneme E | |||||
vwl starttype #e endtype #e | |||||
length 164 | |||||
FMT(vowel/e_mid) | |||||
endphoneme | |||||
phoneme u | |||||
vwl starttype #u endtype #u | |||||
length 174 | |||||
FMT(vowel/u_bck) | |||||
endphoneme | |||||
phoneme E~ | |||||
vwl starttype #e endtype #e | |||||
length 192 | |||||
FMT(vnasal/ee_n) | |||||
endphoneme | |||||
phoneme I | |||||
vwl starttype #i endtype #i | |||||
length 158 | |||||
IfNextVowelAppend(;) | |||||
FMT(vowel/ii) | |||||
endphoneme | |||||
phoneme U | |||||
vwl starttype #u endtype #u | |||||
length 150 | |||||
FMT(vowel/uu_bck) | |||||
endphoneme | |||||
phoneme y" | |||||
vwl starttype #u endtype #u | |||||
length 140 | |||||
FMT(vowel/yy) // was sv_y2 | |||||
endphoneme | |||||
phoneme E: // [ae] diphthong | |||||
vwl starttype #@ endtype #e | |||||
length 230 | |||||
FMT(vdiph/ae) | |||||
endphoneme | |||||
phoneme A | |||||
vwl starttype #a endtype #a | |||||
length 166 | |||||
FMT(vowel/aa) | |||||
endphoneme | |||||
// CONSONANTS | |||||
//=========== | |||||
// uses the consonants in file "phonemes", unless overridden here | |||||
phoneme R | |||||
liquid trl | |||||
lengthmod 7 | |||||
Vowelin f1=0 f2=1500 -400 400 f3=-400 80 | |||||
IF nextPh(isNotVowel) THEN | |||||
ChangePhoneme(r/) | |||||
ENDIF | |||||
FMT(vwl_fr/@R2) addWav(r3/rx, 120) | |||||
endphoneme |
phonemetable fr base1 | phonemetable fr base1 | ||||
include ph_french | include ph_french | ||||
phonemetable fr-ca fr | |||||
include ph_french_ca | |||||
phonemetable hak base1 | phonemetable hak base1 | ||||
include ph_hakka | include ph_hakka | ||||
test_lang fa d2bdd62b68a21cea12d095b5032c7eb19759c133 "ma na Na pa ba ta da ka ga qa ?a fa va sa za Sa Za xa Qa ha tSa dZa Ra la ja _:_ mA mi mu ma me mo meI moU" | test_lang fa d2bdd62b68a21cea12d095b5032c7eb19759c133 "ma na Na pa ba ta da ka ga qa ?a fa va sa za Sa Za xa Qa ha tSa dZa Ra la ja _:_ mA mi mu ma me mo meI moU" | ||||
test_lang fa-Latn d2bdd62b68a21cea12d095b5032c7eb19759c133 "ma na Na pa ba ta da ka ga qa ?a fa va sa za Sa Za xa Qa ha tSa dZa Ra la ja _:_ mA mi mu ma me mo meI moU" | test_lang fa-Latn d2bdd62b68a21cea12d095b5032c7eb19759c133 "ma na Na pa ba ta da ka ga qa ?a fa va sa za Sa Za xa Qa ha tSa dZa Ra la ja _:_ mA mi mu ma me mo meI moU" | ||||
test_lang "fi" 38e641b031af4f2d39ee150ca3f26f4bc84d9aa0 "ma na Na pa ba ta da ka ga ?a fa sa Sa ha va la ja Ra R2a s2a _:_ mi mI me m& ma ma2 mo mY mu mu1 mU my mai m&i moi mei mYi mui myi mau mou meu miu m&y mey mYy miy muo mie myY" | test_lang "fi" 38e641b031af4f2d39ee150ca3f26f4bc84d9aa0 "ma na Na pa ba ta da ka ga ?a fa sa Sa ha va la ja Ra R2a s2a _:_ mi mI me m& ma ma2 mo mY mu mu1 mU my mai m&i moi mei mYi mui myi mau mou meu miu m&y mey mYy miy muo mie myY" | ||||
test_lang fr 3e2bddf8ddae0be8779df7691b44707eaf3f2aa0 "ma na n^a Na pa ta ka ba da ga fa sa Sa va za Za la ja ra Ra wa r2a r/a r/2a l/a l/2a w/a n2a p2a t2a t3a z2a z3a _:_ m@ m@- ma ma- me me- mE mE- mi mj/ mo mO moU mu mu: my my- mW mY mA~ mE~ mO~ mW~ mU my\" mE: mA _:_ ma# mI mI2 mW2 mV" | |||||
test_lang fr-BE 3e2bddf8ddae0be8779df7691b44707eaf3f2aa0 "ma na n^a Na pa ta ka ba da ga fa sa Sa va za Za la ja ra Ra wa r2a r/a r/2a l/a l/2a w/a n2a p2a t2a t3a z2a z3a _:_ m@ m@- ma ma- me me- mE mE- mi mj/ mo mO moU mu mu: my my- mW mY mA~ mE~ mO~ mW~ mU my\" mE: mA _:_ ma# mI mI2 mW2 mV" | |||||
test_lang fr-CH 3e2bddf8ddae0be8779df7691b44707eaf3f2aa0 "ma na n^a Na pa ta ka ba da ga fa sa Sa va za Za la ja ra Ra wa r2a r/a r/2a l/a l/2a w/a n2a p2a t2a t3a z2a z3a _:_ m@ m@- ma ma- me me- mE mE- mi mj/ mo mO moU mu mu: my my- mW mY mA~ mE~ mO~ mW~ mU my\" mE: mA _:_ ma# mI mI2 mW2 mV" | |||||
test_lang fr 4e312a224c8976da90a7faec8edabbc2fe311310 "ma na n^a Na pa ta ka ba da ga fa sa Sa va za Za la ja ra Ra wa r2a r/a r/2a l/a l/2a w/a n2a p2a t2a t3a z2a z3a _:_ m@ m@- ma ma- me me- mE mE- mi mj/ mo mO moU mu mu: my my- mW mY mA~ mE~ mO~ mW~ _:_ ma# mI mI2 mW2 mV" | |||||
test_lang fr-BE 4e312a224c8976da90a7faec8edabbc2fe311310 "ma na n^a Na pa ta ka ba da ga fa sa Sa va za Za la ja ra Ra wa r2a r/a r/2a l/a l/2a w/a n2a p2a t2a t3a z2a z3a _:_ m@ m@- ma ma- me me- mE mE- mi mj/ mo mO moU mu mu: my my- mW mY mA~ mE~ mO~ mW~ _:_ ma# mI mI2 mW2 mV" | |||||
test_lang fr-CH 4e312a224c8976da90a7faec8edabbc2fe311310 "ma na n^a Na pa ta ka ba da ga fa sa Sa va za Za la ja ra Ra wa r2a r/a r/2a l/a l/2a w/a n2a p2a t2a t3a z2a z3a _:_ m@ m@- ma ma- me me- mE mE- mi mj/ mo mO moU mu mu: my my- mW mY mA~ mE~ mO~ mW~ _:_ ma# mI mI2 mW2 mV" |