home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: Multimed / Multimed.zip / fest-141.zip / festival / mbrola.txt < prev    next >
Text File  |  1999-06-28  |  31KB  |  799 lines

  1. M     M  BBBB    RRRR      OOO    L        A
  2. MM   MM  B   B   R   R    O   O   L       A A
  3. M M M M  B   B   R   R   O     O  L      A   A
  4. M  M  M  BBBB    RRR     O     O  L     AAAAAAA
  5. M     M  B   B   R  R    O     O  L     A     A
  6. M     M  B    B  R   R    O   O   L     A     A
  7. M     M  BBBBB   R    R    OOO    LLLLL A     A
  8.  
  9. --------------------------------------------------------------
  10. Table of Contents
  11. --------------------------------------------------------------
  12.  
  13. 1.0 License
  14. 2.0 A brief description of the MBROLA software
  15. 3.0 Distribution
  16. 4.0 Installation, and Tests
  17. 5.0 Format of input and output files - Limitations
  18. 6.0 Joining the MBROLA project as a user
  19. 7.0 Joining the MBROLA project as database provider
  20. 8.0 Acknowledgments
  21. 9.0 Contacting the author
  22.  
  23. --------------------------------------------------------------
  24. 1.0 License
  25. --------------------------------------------------------------
  26.  
  27. This program and object code is being provided to "you", the licensee,
  28. by Thierry  Dutoit, the "author",  under  the following license, which
  29. applies to any  program, object code or other   work which contains  a
  30. notice placed  by  the copyright holder saying  it  may be distributed
  31. under the terms of this license.   The "program", below, refers to any
  32. such program, object code or work.
  33.  
  34. By obtaining,  using and/or copying  this program, you  agree that you
  35. have   read,  understood,  and   will  comply   with  these  terms and
  36. conditions:
  37.  
  38. Terms and conditions for the distribution of the program
  39. --------------------------------------------------------
  40.  
  41. This program may not be sold or incorporated into any product which is
  42. sold without prior permission from the author.
  43.  
  44. When no  charge is made, this  program  may be copied  and distributed
  45. freely, provided that   this notice  is  copied  and distributed  with
  46. it. Each time you redistribute  the program (or any  work based on the
  47. program), the recipient   automatically receives  a license from   the
  48. original  licensor to copy or distribute  the program subject to these
  49. terms and conditions.  You may  not impose any further restrictions on
  50. the recipients' exercise of   the rights granted  herein. You  are not
  51. responsible for enforcing compliance by third parties to this License.
  52.  
  53. If you wish to incorporate the program  into other free programs whose
  54. distribution conditions are different, write to  the author to ask for
  55. permission.
  56.  
  57. If, as   a consequence of a   court judgment  or  allegation of patent
  58. infringement or  for any other reason  (not limited to patent issues),
  59. conditions are imposed  on you (whether  by court order,  agreement or
  60. otherwise) that contradict the conditions of this license, they do not
  61. excuse   you from the   conditions  of this  license.    If you cannot
  62. distribute so as to satisfy simultaneously your obligations under this
  63. license and any other pertinent obligations, then as a consequence you
  64. may   not distribute the  program at  all.    For example, if a patent
  65. license would not permit royalty-free redistribution of the program by
  66. all those who receive copies directly or  indirectly through you, then
  67. the only way you  could satisfy both it and  this license would be  to
  68. refrain entirely from distribution of the program.
  69.  
  70. Terms and conditions on the use of the program
  71. ----------------------------------------------
  72.  
  73. Permission  is  granted   to use  this   software  for non-commercial,
  74. non-military purposes,  with and  only  with  the voice   and language
  75. databases  made available by  the author  from the  MBROLA project www
  76. homepage:
  77.  
  78.          http://tcts.fpms.ac.be/synthesis
  79.  
  80. In return, the author asks you to mention the MBROLA reference paper:
  81.  
  82. T. DUTOIT, V. PAGEL, N. PIERRET, F.  BATAILLE, O. VAN DER VRECKEN
  83. "The MBROLA Project: Towards a Set of High-Quality Speech
  84. Synthesizers Free of Use for Non-Commercial Purposes"
  85. Proc. ICSLP'96, Philadelphia, vol. 3, pp. 1393-1396.  
  86.  
  87. or,  for a more general  reference   to Text-To-Speech synthesis,  the
  88. book:
  89.  
  90. An Introduction to Text-To-Speech Synthesis,
  91. T. DUTOIT, Kluwer Academic Publishers, Dordrecht 
  92. Hardbound, ISBN 0-7923-4498-7
  93. April 1997, 312 pp. 
  94.  
  95. in any scientific publication referring to work for which this program
  96. has been used.
  97.  
  98. Disclaimer
  99. ----------
  100.  
  101. THIS  SOFTWARE CARRIES NO   WARRANTY, EXPRESSED OR IMPLIED.  THE  USER
  102. ASSUMES ALL RISKS, KNOWN OR UNKNOWN, DIRECT OR INDIRECT, WHICH INVOLVE
  103. THIS SOFTWARE IN ANY WAY. IN PARTICULAR, THE  AUTHOR DOES NOT TAKE ANY
  104. COMMITMENT IN VIEW OF ANY POSSIBLE THIRD PARTY RIGHTS.
  105.  
  106. --------------------------------------------------------------
  107. 2.0 A brief description of MBROLA
  108. --------------------------------------------------------------
  109.  
  110. MBROLA is a  speech synthesizer  based  on the concatenation  of
  111. diphones. It takes a list of phonemes as input, together with prosodic
  112. information  (duration of phonemes  and a piecewise linear description
  113. of  pitch), and produces  speech samples  on 16  bits (linear), at the
  114. sampling frequency of the diphone database. 
  115.  
  116. It is therefore NOT a Text-To-Speech  (TTS) synthesizer, since it does
  117. not accept raw text as input.  In  order to obtain  a full TTS system,
  118. you need to use this synthesizer in combination with a text processing
  119. system that produces phonetic and prosodic commands.
  120.  
  121. We maintain a web page with pointers to such freely available systems:
  122.  
  123. http://tcts.fpms.ac.be/synthesis/mbrtts.html
  124.  
  125. This software is the heart of the MBROLA project,  the aim of which is
  126. to   obtain  a set a   speech  synthesizers for as   many languages as
  127. possible, free of use for non-commercial applications.
  128.  
  129. The terms of this project can be summarized as follows :
  130.  
  131. After some official agreement between the  author of this software and
  132. the  owner of  a diphone database,   the database is  processed by the
  133. author and  adapted  to the mbrola format,  for  free.  The  resulting
  134. mbrola diphone database  is made available  for non-commercial  use as
  135. part of  the MBROLA project.  Commercial rights on the mbrola database
  136. remain with  the database provider, for exclusive  use with the mbrola
  137. software.
  138.  
  139. The ultimate goal of this project is to boost  up academic research on
  140. speech synthesis, and particularly on prosody generation, known as one
  141. of the biggest challenges taken  up by Text-To-Speech synthesizers for
  142. the years to come.  If you want to  provide  a database to  the mbrola
  143. project, write first to mbrola@tcts.fpms.ac.be
  144.  
  145. More details can be found at the MBROLA project homepage :
  146.  
  147. http://tcts.fpms.ac.be/synthesis
  148.  
  149. The synthesizer uses a synthesis method known itself as MBROLA.
  150.  
  151. --------------------------------------------------------------
  152. 3.0 Distribution
  153. --------------------------------------------------------------
  154.  
  155. This distribution of mbrola contains the following files :
  156.  
  157. mbrola.exe  or mbrola: An  executable  file of the synthesizer  itself
  158. (depends on the computer supposed to run it) 
  159. readme.txt : This file
  160.  
  161. As   such,  it  requires an  MBROLA    language/voice database  to run
  162. properly.  American English,   Arabic, Brazilian Portuguese,   Breton,
  163. British English,  Croatian,  Dutch, Estonian, French,   German, Greek,
  164. Mexican    Spanish,  Romanian, Spanish  and  Swedish   voices are made
  165. available. Additional languages and voices   will be available in  the
  166. context of the MBROLA project.
  167.  
  168. Please consult the MBROLA project homepage to get the voices:
  169.  
  170. http://tcts.fpms.ac.be/synthesis
  171.  
  172. --------------------------------------------------------------
  173. 4.0 Installation and Tests
  174. --------------------------------------------------------------
  175.  
  176. The following computers/OS are currently supported :
  177.  
  178. SUN Sparc 5/S5R4 (Solaris2.4)
  179. HPUX9.0 and HPUX10.0 
  180. VAX/VMS V6.2 (V5.5-2 won't work)
  181. DECALPHA(AXP)/VMS 6.2
  182. AlphaStation 200 4/233
  183. AlphaStation 200 4/166
  184. IBM RS6000 Aix 4.12
  185. PC486/DOS6 (but other PCs/DOSs should do, too)
  186. PC486/Windows 3.1
  187. PC486/Windows 95 
  188. PC-Pentium/Windows 98
  189. PC-Pentium/Windows NT
  190. PC/LINUX 1.2.11
  191. PCPentium120/Solaris2.4
  192. OS/2
  193. BeBox
  194. BeOs (PPC,i386)
  195. Macintosh
  196.  
  197. Please send acknowledgement when mbrola works  on a machine not listed
  198. here. A special  DLL version is  distributed for  PC/Windows to  allow
  199. direct audio output; check on the Mbrola site the Mbrolatools package.
  200.  
  201. See the MBROLA Homepage if your computer or OS is not supported yet.
  202.  
  203. Assuming you have  copied  the right .zip   file,  create a  directory
  204. mbrola (although this is not  critical), copy the mbrXXX.zip file into
  205. it (in which XXX stands for a version number), and unzip the file:
  206.  
  207. unzip mbrXXX.zip (or pkunzip on PC/DOS)
  208.  
  209. You are now ready to synthesize your first words....
  210.  
  211. First try: mbrola
  212.  
  213. to see the terms and conditions on the use of this software. 
  214.  
  215. Then try: mbrola -h 
  216.  
  217. to get some help on how to use the software:
  218.  
  219. > USAGE: ./synth [COMMAND LINE OPTIONS] database pho_file+ output_file
  220. >
  221. >A - instead of pho_file or output_file means stdin or stdout
  222. >Extension of output_file ( raw, au, wav, aiff ) tells the wanted audio format
  223. >
  224. > Options can be any of the following:
  225. > -i    = display the database information if any
  226. > -e    = IGNORE fatal errors on unkown diphone
  227. > -c CC = set COMMENT char (escape sequence in pho files)
  228. > -F FC = set FLUSH command name
  229. > -v VR = VOLUME ratio, float ratio applied to ouput samples
  230. > -f FR = FREQ ratio, float ratio applied to pitch points
  231. > -t TR = TIME ratio, float ratio applied to phone durations
  232. > -l VF = VOICE freq, target freq for voice quality
  233. > -R RL = Phoneme RENAME list of the form a A b B ...
  234. > -C CL = Phoneme CLONE list of the form a A b B ...
  235. > -I IF = Initialization file containing one command per line
  236. >         CLONE, RENAME, VOICE, TIME, FREQ, VOLUME, FLUSH, COMMENT,
  237. >         and IGNORE are available
  238.  
  239. Now  in order to go   further, you need to get  a version of an MBROLA
  240. language/voice database  from  the  MBROLA  project homepage.  Let  us
  241. assume  you   have  copied   the   FR1   database  and    referred  to
  242. the accompanying fr1.txt file for its installation. 
  243.  
  244. Then try: mbrola fr1/fr1 fr1/TEST/bonjour.pho bonjour.wav
  245.  
  246. it uses the format:
  247.  
  248. mbrola diphone_database command_file1 command_file2 ... output_file
  249.  
  250. and creates a sound file for the word 'bonjour' ( Hello !).
  251.  
  252. Basically the output file is composed of signed  integer numbers on 16
  253. bits, corresponding to samples at the sampling frequency of the MBROLA
  254. voice/language  database (16 kHz for  the diphone database supplied by
  255. the author of MBROLA : Fr1).  MBROLA  can produce different audio file
  256. formats:  .au, .wav, .aiff, .aif,  and   .raw files  depending  on the
  257. ouput_file extension. If the  extension is not recognized,  the format
  258. is RAW (no  header). We recommand  .wav for Windows,  and .au for Unix
  259. platforms.
  260.  
  261. To display information  about the phoneme  set  used by the  database,
  262. type:
  263.           mbrola -i fr1/fr1
  264.  
  265. It displays the phonetic  alphabet  as well as copyright   information
  266. about the database.
  267.  
  268. Option  -e makes  Mbrola  ignore  wrong or  missing  diphone sequences
  269. (replaced  by silence)  which can  be quite useful when debugging your
  270. TTS. Equivallent to "IGNORE" directive in the initialization file (N.B
  271. replace the obsolete ;;E=OFF , unsupported in .pho file).
  272.  
  273. Optional parameters let you shorten  or lengthen synthetic speech  and
  274. transpose it by providing optional time and frequency ratios:
  275.  
  276. mbrola -t 1.2 -f 0.8 fr1/fr1 TEST/bonjour.pho bonjour.wav
  277.  
  278. or its equivalent in the initialization file:
  279.  
  280. TIME 1.2
  281. FREQ 0.8
  282.  
  283. for instance,  will result in  a  RIFF Wav file  bonjour.wav 1.2 times
  284. longer than  the previous one (slower  rate), and containing speech in
  285. which all  fundamental frequency  values  have been multiplied  by 0.8
  286. (sounds lower).
  287.  
  288. You can also set  the values of these  coefficients directly in a .pho
  289. file by adding special escape sequences like : 
  290.  
  291. ;; F=0.8
  292. ;; T=1.2
  293.  
  294. You can change the voice characteristics with the -l parameter. If the
  295. sampling rate of your database   is 16000, indicating -l 18000  allows
  296. you to shorten the vocal tract by a ratio of 16/18 (children voice, or
  297. women voice  depending   on the voice you're   working  on).  With  -l
  298. 10000, you  can lengthen the vocal  tract by a  ratio of 16/10 (namely
  299. the voice  of  a Troll).  The  same command  in an initialization file
  300. becomes "VOICE 10000".
  301.  
  302. Option  "-v"  specifies a  VolumeRatio which   multiplies each  output
  303. sample. In  the example below, each sample  is multipliead by 0.7 (the
  304. loudness goes down). Warning: setting  VolumeRatio too high  generates
  305. saturation. 
  306.  
  307.          mbrola -v 0.7 fr1/fr1 TEST/bonjour.pho bonjour.wav
  308.  
  309.        or add "VOLUME 0.7" in an initialization file
  310.  
  311. The -c option lets you specify which symbol  will be used as an escape
  312. sequence for comments and commands in .pho files. The default value is
  313. the semi-colon ';', but  you may want  to change this if your phonetic
  314. alphabet uses this symbol, like in:
  315.  
  316. mbrola -c ! fr1/fr1 TEST/test1.pho test2.pho test.wav
  317.  
  318. equivalent to "COMMENT !" in an initialization file
  319.  
  320. The -F option lets you specify which symbol will be used to Flush the
  321. audio output. The default value is #, you may want to change the
  322. symbol like in:
  323.  
  324. mbrola -F FLUSH_COMMAND fr1/fr1 test.pho test.wav
  325.  
  326. equivalent to "FLUSH FLUSH_COMMAND" in the initialization file.
  327.  
  328.  
  329. Using Pipes
  330. -----------
  331.  
  332. A - instead  of command_file or  output_file means stdin or stdout. On
  333. multitasking machines, it is easy to run  the synthesizer in real time
  334. to obtain audio output from the audio device, by using pipes.
  335.  
  336. Renaming and Cloning phonemes
  337. -----------------------------
  338.  
  339. It may happen that the language  processing module connected to MBROLA
  340. doesn't use the same phonemic alphabet as the voice used. The Renaming
  341. and  Cloning mechanisms   help you  to   quickly solve  such  problems
  342. (without adding extra  CPU  load). The  only  limitation about phoneme
  343. names is that they can't contain blank characters.
  344.  
  345. If, for instance, phoneme  "a" in the mbrola voice  you use  is called
  346. "my_a"  in your alphabet,  and phoneme "b" is  called "my_b", then the
  347. following command solves the problem:
  348.  
  349. mbrola -R "a my_a   b my_b" fr1/fr1 test.pho test.wav
  350.  
  351. You can give as  many renaming pairs as  you want. Circular definition
  352. are  not a problem -> "a b  b c" will rename original [a] into [b] and
  353. original [b] into [c] independantly ([a] won't be renamed to [c]).
  354.  
  355. LIMITATION: you    can't rename a phoneme    into another that already
  356. exists.
  357.  
  358. The cloning  mechanism does  exactly the same  thing,  though the  old
  359. phoneme  still exists  after renaming. This  is usefull if  you have 2
  360. allophones in your alphabet, but the Mbrola voice only provides one.
  361.  
  362. Imagine  for  instance, that  you  make  the disctinction  between the
  363. voiced [r] and its unvoiced counterpart [r0] and that  you are using a
  364. syllabic version [r=]. If as a first approximation  using [r] for both
  365. is OK, then you may use an Mbrola voice that only provides one version
  366. of [r] by running:
  367.  
  368. mbrola -C "r r0  r r=" fr1/fr1 test.pho test.wav
  369.  
  370. which   tells  the synthesizer  that   [r0]  and [r=]   should be both
  371. synthesized as [r].  You  can write a  long  cloning list of   phoneme
  372. pairs to fit your needs. 
  373.  
  374. Renaming  and cloning eats CPU since  the  complete diphone hash table
  375. has to be rebuilt, but once the renaming or cloning has occurred there
  376. is  absolutely NO  RELATED  PERFORMANCE DROP.  So  using this  feature
  377. is more efficient   than  a  pre-processor, though   incompatibilities
  378. cannot always be solved by a simple phoneme mapping.
  379.  
  380. Before renaming anything as #, check paragraph 5.4
  381.  
  382. When you  have long cloning and  renaming lists, you  can conveniently
  383. write them into  an  initialization file  according to the   following 
  384. format:
  385.  
  386. RENAME a my_a
  387. RENAME b my_b
  388. CLONE  r r0
  389. CLONE  r r=
  390.  
  391. The obsolete ";; RENAME  a my_a" can't be  used in .pho file  anymore,
  392. but is correctly parsed in initialization files. 
  393.  
  394. Note to Festival and EN1 users: the consequence of the change above is
  395. that you must change the previous call format "mbrola en1 en1mrpa ..."  
  396. into "mbrola -I en1mrpa en1 ...".
  397.  
  398.  
  399. BELOW ARE A NUMBER OF MACHINE DEPENDANT HINTS FOR BEST USING MBROLA
  400.  
  401. On MSDOS/Windows or OS/2
  402. ------------------------
  403.  
  404. Type: mbrola fr1/fr1 TEST/bonjour.pho bonjour.wav
  405.  
  406. Then you can play the RIFF Wav file with windows sound utility On OS/2
  407. pipes may be used just like below.
  408.  
  409. REMARK: MbrolaTools provide an excellent DLL  and graphical pho player
  410. called Mbroli. We  advise you to  use them  instead of mbrola.exe  for
  411. Windows.
  412.  
  413. On modern Unix systems such as Solaris or HPUX or Linux
  414. -------------------------------------------------------
  415.  
  416. mbrola fr1/fr1 TEST/bonjour.pho -.au | audioplay
  417.  
  418. where  audioplay is your audio  file player (*  the name vary with the
  419. platform, e.g. splayer for HPUX *)
  420.  
  421. If  your audioplayer  has problems with sun .AU  files, try  with .raw
  422. Never use .wav format when you pipe the ouput (mbrola can't rewind the 
  423. file to write   the audio  size in   the header). Wav   format was not
  424. developped for Unix (on the contrary Au format let  you specify in the
  425. header "we're on a pipe, read until end of file").
  426.  
  427. NOTE FOR LINUX: you can use the GPL rawplay program provided at
  428.       ftp://tcts.fpms.ac.be/pub/mbrola/pclinux/
  429.  
  430. On Sun4 or with machines with an  old audio interface
  431. -----------------------------------------------------
  432.  
  433. Those machines are   now quite  old and  only   provide a mulaw   8Khz
  434. output. A hack is:
  435.  
  436. mbrola fr1/fr1 input.pho - | sox -t raw  -sw -r 16000  - -t raw -Ub -r 8000 - > /dev/audio
  437.  
  438. (providing you have the public domain sox utility developed by Ircam).
  439. You should  hear  'bonjour' without the   need  to create intermediate
  440. files. Note  that we strongly recommend  that you DON'T use SOX, since
  441. its resampling  method (linear interpolation) will  permanently damage
  442. the sound.
  443.  
  444. Other   solution:  The UTILITY.ZIP  file   available  from the  MBROLA
  445. homepage provides RAW2SUN which does this conversion.
  446.  
  447. On VAX or AXP workstations
  448. --------------------------
  449.  
  450. To  make it  easier for   users to find   MBROLA,  you should add  the
  451. following command to your system startup procedure:
  452.  
  453. $ DEFINE/SYSTEM/EXEC MBROLA_DIR disk:[dir]
  454.  
  455. where "disk:[dir]"  is the name  of the directory  you created for the
  456. MBROLA_DIR files.  You could also  add  the following command to  your
  457. system login command procedure:
  458.  
  459. $ MBROLA :== $MBROLA_DIR:MBROLA.EXE
  460. $ RAW2SUN :== $MBROLA_DIR:RAW2SUN.EXE
  461.  
  462. to use the decsound device:
  463.  
  464. $ MCR DECSOUND - volume 40 -play sound.au 
  465.  
  466. See also the MBR_OLA.COM batch file in  the UTILITY.ZIP file available
  467. from the MBROLA  Homepage if you cannot   play 16 bits sound files  on
  468. your machine.
  469.  
  470. --------------------------------------------------------------
  471. 5.0 Format of input and output files - Limitations
  472. --------------------------------------------------------------
  473.  
  474. 5.1 Phoneme commands
  475. --------------------
  476.  
  477. The input file bonjour.pho in the above example simply contains :
  478.  
  479. ; bonjour 
  480. _ 51 25 114
  481. b 62 
  482. o~ 127 48 170.42 
  483. Z 110 53.5 116 
  484. u 211 
  485. R 150 50 91 
  486. _ 91
  487.  
  488. This shows the format of the input data  required by MBROLA. Each line
  489. contains  a phoneme name, a duration  (in ms),  and a series (possibly
  490. none)  of pitch  targets  composed of  two   float numbers each  : the
  491. position  of  the  pitch target   within   the phoneme  (in  %  of its
  492. total duration), and the pitch value (in Hz) at this position.
  493.  
  494. In order to increase readability, it is also possible to enclose pitch
  495. target  in parentheses. Hence, the   first  line of bonjour.pho  could
  496. be written :
  497.  
  498. _ 51 (25,114)
  499.  
  500. it tells the synthesizer to produce a  silence of 51  ms, and to put a
  501. pitch target of  114  Hz at 25%  of  51  ms.  Pitch targets  define  a
  502. piecewise linear  pitch curve.  Notice  that the intonation curve they
  503. define  is continuous,  since  the  program automatically drops  pitch
  504. information when synthesizing unvoiced phones.
  505.  
  506. The  data on each  line  is  separated  by  blank characters or  tabs.
  507. Comments can optionally be introduced  in command files, starting with
  508. a  semi-colon ';'.  This default  can be  overrun  with the -c  option 
  509. of the command line.
  510.  
  511. Another  special  escape sequence ';;'   allows  the user to introduce
  512. commands in the middle of  .pho files as  described below. This escape 
  513. sequence is also affected by the -c option.
  514.  
  515. 5.2 Changing the Freq Ratio or Time Ratio
  516. -----------------------------------------
  517.  
  518. A command escape  sequence containing a  line like "T=xx" modifies the
  519. time  ratio to  xx,  the same result   is obtained on the  fundamental
  520. frequency by replacing T with F, like in:
  521.  
  522. ;; T = 1.2
  523. ;;F=0.8
  524.  
  525.  
  526. 5.3 Flush the output stream
  527. ---------------------------
  528.  
  529. Note, finally, that the synthesizer outputs chunks of synthetic speech
  530. determined as   sections of the piecewise   linear pitch curve. Phones
  531. inside a section of  this curve are synthesized  in one go.  The  last
  532. phone of each chunk, however, cannot be properly synthesized while the
  533. next phone is   not known (since the program   uses diphones  as  base
  534. speech   units). When  using    mbrola  with pipes,    this  may be  a
  535. problem. Imagine,  for instance,  that  mbrola is  used to   create  a
  536. pipe-based speaking clock on an HP:
  537.  
  538. speaking_clock | mbrola - -.au | splayer
  539.  
  540. which tells the time,  say, every 30 seconds.  The  last phone of each
  541. time announcement will only be synthesized  when the next announcement
  542. starts.    To bypass this problem,   mbrola accepts  a special command
  543. phone, which flushes the synthesis buffer : "#"
  544.  
  545. This default character can be replaced by another symbol thanks to the
  546. command:
  547.  
  548. ;; FLUSH new_flush_symbol
  549.  
  550. Another important issue with piping under  UNIX, is the possibility to
  551. prematurely end the audio output, if  for example the user presses the
  552. stop button   of  your application. Since release 3.01, Mbrola handles
  553. signals.
  554.  
  555. If in the  previous example the user wants  to  interrupt the speaking
  556. clock message, the application just needs to send the USR1 signal. You
  557. can send such a signal from the console with:
  558.  
  559.      kill -SIGUSR1 mbrola_process_number
  560.  
  561. Once mbrola catches  the signal,  it reads its  input stream  until it
  562. gets EOF or a FLUSH command (hence, surrounding sections with flush is
  563. a good habit).
  564.  
  565. Limitations of the program
  566. --------------------------
  567.  
  568. Phones can be synthesized with  a maximum duration which depends on
  569. the fundamental frequency with which they are produced. The higher the
  570. frequency, the lower  the duration.  For a  frequency  of 133  Hz, the
  571. maximum duration is 7.5 sec. For a frequency of 66.5 Hz, it is 15 sec.
  572. For a frequency of 266 Hz, it is 3.75 sec.
  573.  
  574. --------------------------------------------------------------
  575. 6.0 Joining the MBROLA project as a user 
  576. --------------------------------------------------------------
  577.  
  578. For convenience, we have defined two mailing lists :
  579.  
  580. * mbrola-interest@tcts.fpms.ac.be :  a forum for  MBROLA questions and
  581. issues. It is   used  by the   maintainers of  the mbrola  project  to
  582. announce new releases, bug fixes,  new voices and languages, and other
  583. information of interest to all MBROLA  users.  Users who want to share
  584. .pho files  or free applications running on  top of mbrola should send
  585. mail to mbrola-interest.
  586.  
  587. It  is your interest, as a  user,  to subscribe to the mbrola-interest
  588. mailing list, by sending an e-mail to :
  589.  
  590.           mbrola-interest-request@tcts.fpms.ac.be
  591.  
  592. with the word  'subscribe' in either the header  or the main  text. To
  593. unsubscribe, just send another mail with 'unsubscribe'.
  594.  
  595. BUGS
  596. ----
  597.  
  598. If you detect a bug, or if you find an input  for which the quality of
  599. the speech provided by mbrola is  not as good  as usual, first consult
  600. the  FAQ  file  from  the  MBROLA Project  homepage,   which will   be
  601. frequently updated.
  602.  
  603. If this is  of no help, send  a kind mail to mbrola@tcts.fpms.ac.be in
  604. which you include  the .pho file with  which  the problem  appears and
  605. mention your machine architecture.
  606.  
  607. NEW DATABASES
  608. -------------
  609.  
  610. If you want   to participate to  the  mbrola  project by  providing  a
  611. diphone database (i.e. a set of sample files  with one example of each
  612. diphone in your  language), refer to the mbrola  WWW homepage, or send
  613. an email to: mbrola@tcts.fpms.ac.be.
  614.  
  615. APPLICATIONS
  616. ------------
  617.  
  618. If  you have used mbrola   to build speaking apps  on  top of it (like
  619. talking  clocks,  talking    agendas, talking  tools   for handicapped
  620. persons, etc., and  want to  make it  available to  the community (for
  621. free, of course, and for non-commercial, non-military applications, as
  622. imposed by the mbrola license agreement), just make an announcement to
  623. the mbrola mailing list:
  624.  
  625.           mbrola-interest@tcts.fpms.ac.be. 
  626.  
  627. COMMERCIAL VERSION
  628. ------------------
  629.  
  630. If you are interested in the commercial version of mbrola (source code
  631. available), send an email to: mbrola@tcts.fpms.ac.be 
  632.  
  633. FEEDBACK
  634. --------
  635.  
  636. If you simply find  this initiative useful, please drop  us a note  at
  637. mbrola@tcts.fpms.ac.be. We have spent a lot of our time to provide you
  638. with this program, and we would like to get some feedback in return.
  639.  
  640. Don't forget, either, to mention the MBROLA reference paper :
  641.  
  642. T. DUTOIT, V. PAGEL, N. PIERRET, F. BATAILLE, O. VAN DER VRECKEN
  643. "The MBROLA Project: Towards a Set of High-Quality Speech
  644. Synthesizers Free of Use for Non-Commercial Purposes" 
  645. Proc. ICSLP 96, Philadelphia, vol. 3, pp. 1393-1396
  646.  
  647. or,  for  a more  general reference  to  Text-To-Speech synthesis, the
  648. book:
  649.  
  650. An Introduction to Text-To-Speech Synthesis,
  651. T. DUTOIT, Kluwer Academic Publishers, Dordrecht 
  652. Hardbound, ISBN 0-7923-4498-7
  653. April 1997, 312 pp. 
  654.  
  655. in any scientific publication referring to work for which this program
  656. has been used.
  657.  
  658. --------------------------------------------------------------
  659. 7.0 Joining the MBROLA project as a database provider
  660. --------------------------------------------------------------
  661.  
  662. One of the biggest interests of the MBROLA project (and definitely its
  663. most  original aspect) lies in its  ability to provide an ever growing
  664. set of languages/voices to users.
  665.  
  666. To achieve this goal, the MBROLA project has  itself been organized so
  667. as to incite  other research labs  or companies to share their diphone
  668. databases.
  669.  
  670. The terms of this sharing policy can be summarized as follows :
  671.  
  672. 1. We shall only  use your database to  adapt it to the mbrola format,
  673. and destroy the copy when this is done.
  674.  
  675. 2.   The resulting mbrola diphone  database will  be copyright Faculte
  676. Polytechnique de Mons.  Non-commercial   use  of the database in   the
  677. framework of  the MBROLA project    will be automatically  granted  to
  678. Internet users. In return, we shall send you a license agreement which
  679. will  transfer  all our  commercial  rights on  the  database  to you,
  680. provided the database is used with and only with the MBROLA program.
  681.  
  682. 3. All these  details will be fixed by  some official agreement before
  683. you send us anything.
  684.  
  685. If you want to create a database from scratch
  686. ---------------------------------------------
  687.  
  688. First, you should be aware that recording a  diphone database is not a
  689. trivial operation. If it is not performed carefully, the result can be
  690. deceiving. FR1, for  instance, required about  one month of  work, yet
  691. with the help of some efficient laboratory  tools for signal recording
  692. and  editing.  What is more,  some  phonetic knowledge of the targeted
  693. language is necessary to create the initial corpus.
  694.  
  695. So if you just  think of designing a new  diphone database as a  game,
  696. forget it.
  697.  
  698. If, on the contrary, you are willing to spend some time to provide the
  699. MBROLA community with a new language or voice, or  if you already have
  700. a diphone database and wish to share it  in mbrola format (and receive
  701. in return the rights  for  any commercial  exploitation of the  mbrola
  702. diphone database we will create for you), welcome here.
  703.  
  704. If you want to build a new diphone database, please contact the author
  705. first.  He will help   you as much  as  he can, by providing  phonetic
  706. information if available for instance.
  707.  
  708. In all cases, make a first dummy  trial : create  a small corpus for a
  709. few diphones, record them, segment them, equalize them if you can, and
  710. send the result directly to the author.  He will  test your data, tell
  711. you how good it is, and what should be done to make it better.
  712.  
  713. If you want to share an existing database 
  714. -----------------------------------------
  715.  
  716. contact the authors (see below).
  717.  
  718. --------------------------------------------------------------
  719. 8.0 Acknowledgments
  720. --------------------------------------------------------------
  721.  
  722. I  would like to thank   Vincent Pagel (Mons  / BE)  for his intensive
  723. programming, testing, and debugging of this program, and for all sorts
  724. of fruitful discussions. Vincent  also wrote MBRDICO a general purpose
  725. trainable phonetizer. Not to  forget  Nicolas Pierret and Olivier  Van
  726. der Vreken, for their contribution to the Mbrola coder.
  727.  
  728. Then let's greet  our  pioneer database  providers: 
  729.      Alejandro Barbosa  (MX1),
  730.       Aggelos Bletsas    (GR1), 
  731.       Marian Boldea        (RO1), 
  732.       G÷sta Bruce            (SW1), 
  733.       Alistair Conkie       (EN1 ES1), 
  734.       Denis Costa            (BR1), 
  735.       Arthur Dirksen        (NL1 NL2), 
  736.       Thierry Dutoit        (FR1), 
  737.       CΘline EgΘa            (FR2), 
  738.       Fred Englert           (DE1 DE2), 
  739.       Nikolaj Lazic        (CR1),
  740.       Mike Macon         (US3 MX1),
  741.       Einar Meister        (EE1), 
  742.       Yann-Ber Messager  (BZ1), 
  743.       Vincent Pagel        (FR3 FR4), 
  744.       Marcus Philipson    (SW1), 
  745.       George Sergiadis    (GR1), 
  746.       Nawfal Tounsi        (AR1), 
  747.       Raymond Veldhuis    (NL3), 
  748.       Gordon Tischer        (ES2),
  749.      Johan Wouters      (US3)
  750.       and the team at University Autonoma of Barcelona (ES1)!
  751.  
  752. May they be thanked for their work.
  753.  
  754. Sam  Przyswa (NEXT  Paris/FR),  Fred Englert (IBMRS600  Frankfurt/DE),
  755. Arnaud   Gaudinat (VAX-VMS    University   of  Geneva,  CH),   Cyrille
  756. Mastchenko (BeOS  Montreal/CA), Michael C.  Thornburgh (SCO-Unix USA),
  757. Bruno  Langlois (Java   port  Quebec/CA), Christophe M.   Vallat  (OS2
  758. Domerat/FR),   Cristiano Verondini  (Mac  Bologna/Italy), Gerald Kerma
  759. (Mac  G'K2  Vaugrigneuse/FR),  David  Woodman (SUN4 Berkshire/England)
  760. Gary Thomas   (Linux-PPC Grenoble/France), Thomas Fletcher (QNX-OS CA),
  761. Philippe Devallois (Mac DLL) and Thomas Agopian (BeOs) for their help
  762. in the compilation of MBROLA on many platforms.
  763.  
  764. Arnaud  Gaudinat (Lausanne/CH),  Thierry Gartiser (Nancy/France), Alec
  765. Epting  (Summer    Institure of  Linguistics/USA),   Michael  M. Cohen
  766. (University of California - Santa  Cruz), and Patrick Bouffer (France)
  767. have arranged mirror sites.
  768.  
  769. David Haubensack  has written a French  TTS in PERL, Stephen Isard and
  770. Alistair Conkie  have  provided the Freespeech  British  English TTS!! 
  771. Alan Black and Paul Taylor have supported  the Mbrola Project in their
  772. great Festival multilingual TTS Project. 
  773.  
  774. Fabrice Malfrere (Mons/BE)   who  has developped an  efficient  speech
  775. alignment program for Windows (distributed on the mbrola site).
  776.  
  777. Alain Ruelle  (Mons/BE) who  has developped the  MBRPlay  dll and  the 
  778. Mbroli interactive pho file player for Windows.
  779.  
  780. Nawfal Tounsi(Mons/BE) who has developped the W project aimed at
  781. helping disable people talk with the help of Mbrola. 
  782.  
  783. Last but not  least, I am  also greatly indebted to Francois  Bataille
  784. (Mons/BE) for having supported the creation of this internet project.
  785.  
  786. --------------------------------------------------------------
  787. 9.0 Contacting the author
  788. --------------------------------------------------------------
  789.  
  790. Dr Thierry Dutoit
  791.  
  792. Faculte Polytechnique de Mons, TCTS Lab,
  793. 31, bvd Dolez, B-7000 Mons, Belgium. 
  794. tel : /32/65/374133
  795. fax : /32/65/374129
  796. e-mail: mbrola@tcts.fpms.ac.be, for general information, 
  797. questions on the installation of software and databases.
  798.