volume 15

// IMPORTANT NOTE:
// This translation file is used by the mbrola voices BR1, BR2 and BR3.
// There are very small differences between the files `ptbr` and `ptbr4`.
// Use a diff tool to check the subtle differences between these 2 files.
// The voices of the Brazilian mbrola lack many unusual pairs of phonemes.
// The compilation will fail if you put more than 255 rules in this file.

// NAVIGATION HINT:
// This file is organized in sections and blocks. Some sections have blocks.
// If you want to go to the section that has rules for the consonants, press
// UP or DOWN keys until you hear "SECTION" "OF" "CONSONANTS", or use a search tool.
// If you wanna go to the block that has specific rules for the phoneme "x",
// press UP or DOWN buttons until you hear "block" "of" "x", or use a search tool.

// CONTROL NUMBERS:
//  1: skip the next phoneme
//  2: match this and previous phoneme (backwards)
//  4: match only at the start of a word
//  8: don't match two phonemes across a word boundary
//  9: skip the next phoneme and don't match two phonemes across a word boundary
// 64: match only at the end of a word


// SECTION OF CONSONANTS

// block of l^
0   l^  NULL   0   h	// yes, h

// block of n^
0   n^  NULL   0   nh

// block of h
0   h   j      0   rr
0   h   w      0   rr
0   h   VWL    0   rr
0   h   NULL   99  rr @

// block of x
0   x   j      0   rr
0   x   w      0   rr
0   x   VWL    0   rr
0   x   NULL   99  rr @

// block of r/
0   r/   s      95  r @
0   r/   y      0   r
0   r/   w      0   r
0   r/   VWL    0   r
0   r/   NULL   0   r2

// block of r
0   r   j      0   r
0   r   w      0   r
4   r   VWL    0   rr
0   r   VWL    0   r
0   r   NULL   0   r2

// block of *
0   *   @-     0   r2
0   *   j      0   r
0   *   w      0   r
4   *   VWL    0   rr
0   *   VWL    0   r
0   *   NULL   0   r2

// block of p
0   p    _      0   p
0   p    j      0   p
0   p    w      0   p
0   p    VWL    0   p
0   p    NULL   95  p y

// block of b
0   b    _      0   b
0   b    j      0   b
0   b    w      0   b
0   b    VWL    0   b
0   b    NULL   95  b y

// block of t
0   t    _      0   t
0   t    j      0   t
0   t    w      0   t
0   t    VWL    0   t
0   t    NULL   95  t y

// block of d
0   d    _      0   d
0   d    j      0   d
0   d    w      0   d
0   d    VWL    0   d
0   d    NULL   95  d y

// block of k
0   k    _      0   k
0   k    j      0   k
0   k    w      0   k
0   k    VWL    0   k
0   k    NULL   95  k y

// block of g
0   g    _      0   g
0   g    j      0   g
0   g    w      0   g
0   g    VWL    0   g
0   g    NULL   95  g y

// block of f
0   f    _      0   f
0   f    j      0   f
0   f    w      0   f
0   f    VWL    0   f
0   f    NULL   95  f y

// block of v
0   v    _      0   v
0   v    j      0   v
0   v    w      0   v
0   v    VWL    0   v
0   v    NULL   95  v y

// block of s
0   s   s      0   NULL
0   s   j      0   s
0   s   w      0   s
0   s   VWL    0   s
4   s   NULL   5   i s2
0   s   NULL   0   s2

// block of z
0   z   j      0   z
0   z   w      0   z
0   z   VWL    0   z
4   z   NULL   5   i s2
0   z   NULL   0   s2

// block of S
0   S   j      0   x
0   S   w      0   x
0   S   VWL    0   x
0   S   NULL   95  x y

// block of Z
0   Z   j      0   j
0   Z   w      0   j
0   Z   VWL    0   j
0   Z   NULL   95  j y

// block of tS
0   tS   i      95  t y	// fixes t-i in mb-br1 and mb-br2
0   tS   i~     95  t y
0   tS   i/     95  t y
0   tS   I      95  t y
0   tS   I/     95  t y
0   tS   j      95  t y
0   tS   y      95  t y
0   tS   iU     95  t y
64  tS   VWL    95  t y
0   tS   VWL    0   x
0   tS   NULL   95  t y

// block of dZ
0   dZ   i      0   d
0   dZ   i~     0   d
0   dZ   i/     0   d
0   dZ   I      0   d
0   dZ   I/     0   d
0   dZ   j      0   d
0   dZ   y      0   d
0   dZ   iU     0   d
64  dZ   VWL    95  d y
0   dZ   VWL    0   j
0   dZ   NULL   95  d y

// block of l
8   l    j      0   l
8   l    w      0   l
8   l    VWL    0   l
0   l    NULL   99  l @

// block of l/
8   l/   j      0   l
8   l/   w      0   l
8   l/   VWL    0   l
0   l/   NULL   99  l @

// block of l/2
8   l/2  j      0   l
8   l/2  w      0   l
8   l/2  VWL    0   l
0   l/2  NULL   99  l @

// block of m
8   m    j      0   m
8   m    w      0   m
8   m    VWL    0   m
0   m    NULL   99  m @

// block of n
8   n    j      0   n
8   n    w      0   n
8   n    VWL    0   n
0   n    NULL   99  n @


// SECTION OF NASAL MONOTHONGS

9   &~  N      0   am
9   &   N      0   am
9   a   N      0   am

9   e~  N      0   em
9   e   N      0   em
9   E   N      0   em

9   i~  N      0   im
9   i   N      0   im
9   I   N      0   im

9   o~  N      0   om
9   o   N      0   om
9   O   N      0   om

9   u~  N      0   um
9   u   N      0   um
9   U   N      0   um


// SECTION OF NASAL DIPHTHONGS

9   aI  N      60  a im
9   eI  N      60  e im
9   oI  N      60  o im
9   uI  N      60  u im

9   aU  N      60  a um
9   eU  N      60  e um
9   iU  N      60  i um
9   oU  N      60  o um


// SECTION OF GLIDES

// block of j
2   j   tS     0   i	// fixes t-i in mb-br1 and mb-br2 (complement)
2   j   N      0   i
2   j   w      0   i
2   j   w/     0   i
0   j   l/     0   i
0   j   r/     0   i
4   j   NULL   0   i
8   j   VWL    0   y
2   j   VWL    0   y
0   j   NULL   0   i

// block of w
2   w   N      0   u
2   w   j      0   u
2   w   j/     0   u
0   w   l/     0   u
0   w   r/     0   u
4   w   NULL   0   u
8   w   VWL    0   w
2   w   VWL    0   w
0   w   NULL   0   u

// block of j/
2   j/  &~     0   im
2   j/  e~     0   im
2   j/  o~     0   im
0   j/  NULL   0   y

// block of w/
0   w/  NULL   0   w


// SECTION OF MONOTHONGS

0   a/  NULL   0   a
0   A   NULL   0   a
0   &   NULL   0   @
0   &/  NULL   0   @
0   &~  VWL    0   @
0   &~  NULL   0   am
0   e   NULL   0   e
0   e~  NULL   0   em
0   E   NULL   0   ee
0   i   NULL   0   i
0   i/  NULL   0   i
0   i~  NULL   0   im
0   I   NULL   0   i
0   I/  NULL   0   i
0   y   NULL   0   i
0   o~  NULL   0   om
0   O   NULL   0   oo
0   u~  NULL   0   um
0   U   NULL   0   u


// SECTION OF DIPHTHONGS

0   aI  NULL  60   a  y
0   eI  NULL  60   e  y
0   EI  NULL  60   ee y
0   oI  NULL  60   o  y
0   oI~ NULL  60   om i
0   OI  NULL  60   oo y
0   uI  NULL  60   u  y
0   uI~ NULL  60   um i

0   aU  NULL  60   a  w
0   &U~ NULL  60   @  um
0   eU  NULL  60   e  w
0   EU  NULL  60   ee w
0   iU  NULL  60   i  w
0   oU  NULL  60   o  w


// SECTION OF OTHER PHONEMES

0   Q   NULL   0   g
0   B   NULL   0   b
0   C   NULL   0   h
0   ;   NULL   0   NULL
0   :   NULL   0   NULL
0   @-  NULL   0   NULL


// SECTION OF ENGLISH PHONEMES

0   T   NULL   0   t
0   D   NULL   0   d
0   0   NULL   0   oo
0   V   NULL   0   a
0   I2  NULL   0   i
0   A:  NULL   0   a
0   A@  NULL  60   a r2
0   o:  NULL   0   o
0   O:  NULL   0   oo
0   O@  NULL  60   oo r2
0   o@  NULL  60   o r2
0   i:  NULL   0   i
0   i@  NULL  60   i a
0   i@3 NULL  60   i r2
0   u:  NULL   0   u
0   U@  NULL  60   u r2
0   3   NULL  60   e r2
0   3:  NULL  60   e r2
0   @L  NULL  40   e l
0   a#  NULL   0   a
0   aa  NULL   0   a
0   e@  NULL   0   e r2
0   oU  NULL   0   o
0   OI  NULL  60   oo y
0   aI@ NULL  60   a e
0   aU@ NULL   0   a
0   t2  NULL   0   t
0   r-  NULL   0   r


// SECTION OF FRENCH PHONEMES

0   A~  NULL   0   @
0   E~  NULL   0   @
0   O~  NULL   0   om
0   W   NULL   0   ee
0   Y   NULL   0   e
0   r/2 NULL   0   r


// SECTION OF ITALIAN PHONEMES

0   e/  NULL   0   e
0   o/  NULL   0   o
0   dz  NULL   0   z
0   ts2 NULL   0   s
0   R   NULL   0   r
0   ss  NULL   0   s

