File: ph_portugal

package info (click to toggle)
espeakedit 1.48.03-5
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 14,208 kB
  • sloc: cpp: 41,098; ansic: 191; makefile: 40
file content (158 lines) | stat: -rwxr-xr-x 2,494 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158

//====================================================
//  Portuguese/Portugal  - based on Portuguese/Brazil
//====================================================



phoneme &
  vowel starttype #@ endtype #@
  length 180
  ipa ɐ
  FMT(vowel/a#_3)
  unstressed
endphoneme

phoneme &/       // Used for final "a" when next word starts with "a"
  vowel starttype #@ endtype #@
  length 180
  ipa ɐ
  IF nextPh(isVowel) THEN
    ChangePhoneme(NULL)
  ENDIF
  FMT(vowel/a#_3)
endphoneme

phoneme a
  vowel starttype #a endtype #a
  length 180
  ChangeIfNotStressed(&)
  FMT(vowel/a_2)
endphoneme

phoneme &~
  vowel  starttype #e endtype #@
  ipa ɐU+0303
  length 240
  FMT(vnasal/ee_n2)
endphoneme

phoneme &U~
  vowel  starttype #@ endtype #u
  ipa ɐU+0303ʊU+0303
  length 240
  FMT(vnasal/a#u_n)
endphoneme



phoneme E
  vowel starttype #e endtype #e
  length 180
  ChangeIfUnstressed(y)
  FMT(vowel/e_mid)
endphoneme

phoneme e
  vowel starttype #e endtype #e
  length 180
  ChangeIfUnstressed(y)
  FMT(vowel/e)
endphoneme

phoneme y
  vowel starttype #@ endtype #@
  length 130
  ipa ɨ
  FMT(vowel/i#_5)
endphoneme


phoneme i
  vowel starttype #i endtype #i
  length 170
  IfNextVowelAppend(;)
  FMT(vowel/i)
endphoneme


phoneme i/            // changes to NULL before a vowel
  vowel starttype #i endtype #i
  length 130
  ipa ɨ
  IF nextPh(isVowel) THEN
    ChangePhoneme(NULL)
  ENDIF
  IfNextVowelAppend(;)
  FMT(vowel/i#_5)
endphoneme


phoneme O
  vowel starttype #o endtype #o
  length 180
//  ChangeIfNotStressed(o)
  FMT(vowel/0_2)
endphoneme


phoneme o
  vowel starttype #o endtype #o
  length 180
  ChangeIfNotStressed(u)
  FMT(vowel/o)
endphoneme


phoneme u
  vowel starttype #u endtype #u
  length 180
  FMT(vowel/u_6)
endphoneme

phoneme U
  vowel starttype #u endtype #u
  length 130
  IF thisPh(isWordEnd) AND thisPh(isAfterStress) AND nextPh(isVowel) THEN
    ChangePhoneme(w)
  ENDIF
  FMT(vowel/u_6)
endphoneme


phoneme EU
  vowel starttype #e endtype #u
  length 230
  FMT(vdiph/eeu_2)
endphoneme



phoneme w
  import_phoneme base2/w2
endphoneme


phoneme x      // [r] for Portugal
  liquid
  trill
  ipa ʁ
  lengthmod 7
  Vowelin f1=0  f2=1500 -400 400  f3=-400 80
  IF nextPh(isNotVowel) THEN
    ChangePhoneme(r/)
  ENDIF
  FMT(vwl_fr/@R) addWav(r3/rx, 120)
endphoneme


phoneme R    // for Portugal this is same the as [r]
  import_phoneme pt/r
endphoneme


phoneme s#     // This is [s] for Brazil, [S] for Portugal
  CALL base/S
  ipa ʃ
endphoneme