Subscribe

Good news about MBROLA!

  1. 2005-01-27 10:44:33 PST
    MBROLA Team distributed their new dos version at http://tcts.fpms.ac.be/synthesis/mbrola/bin/pcdos/mbr301d.zip last year. Although it is still named mbr301d.zip, it contains a new MBROLA.exe compiled in last June. The new version can work with FreeTTS under windows now! However, the program should be renamed to "mbrola" in order to be invoked in FreeTTS.
  2. 2005-01-27 15:09:44 PST
    Woo woo! Congratulations! I'll update the docs for the next release of FreeTTS.

    Thanks for checking this out,

    Will
  3. 2005-01-28 13:59:37 PST
    Hello,

    Yes, the news is mentioned on the MBROLA site:
    http://tcts.fpms.ac.be/synthesis/mbrola/mbrnews.html

    "Mbrola-dos debugged and recompiled for FreeTTS, thanks to Jianmin Li"

    Dr. Li, could you please explain why the PC-DOS executable should be renamed from "MBROLA.exe" to "MBROLA"?

    In MbrolaCaller.java, in the line:
    process = Runtime.getRuntime().exec(cmd);

    the cmd parameter will be a full dos command concatenation. It seems to me on the Windows platform doing this would make it fail to execute?

    Best regards,
    Bert Szoghy
  4. 2005-01-28 16:19:00 PST
    At first, I believed that to run mbrola with freetts under windows, getMbrolaBinary() in MbrolaVoice.java must be revised to include ".exe" in the binany name. And I did so in my project. However, I found the above solution occasionally yesterday. With the code attached here, I find something very interesting.

    Firstly, rename an executable program (e.g. mbrola.exe) to remove its extension, i.e. "mbrola" in this case. Then "mbrola" under DOS prompt returns an error. And "java run mbrola" will return the following exception:
    java.io.IOException: CreateProcess: mbrola error=2
    at java.lang.Win32Process.create(Native Method)
    at java.lang.Win32Process.<init>(Unknown Source)
    at java.lang.Runtime.execInternal(Native Method)
    at java.lang.Runtime.exec(Unknown Source)
    at java.lang.Runtime.exec(Unknown Source)
    at java.lang.Runtime.exec(Unknown Source)
    at java.lang.Runtime.exec(Unknown Source)
    at run.main(run.java:9)

    However, if an absolute or relative path (even ".\") is included, "java run [path]mbrola" will be executed correctly.

    After reading the document of msdn, I find that it is a feature of the windows api, CreateProcess(). Visit http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/createprocess.asp for details. And according to the document, "java run [path]mbrola" is also ok. It is true.


    import java.io.*;

    public class run {
    public static void main(String[] args) {
    if (args.length == 0)
    System.out.println("Usage: java run application parameters");
    else {
    try {
    Process process = Runtime.getRuntime().exec(args);
    byte[] buf = new byte[1024];
    BufferedInputStream fromProcess
    = new BufferedInputStream(process.getInputStream());
    int nread = 0;
    while ((nread = fromProcess.read(buf)) != -1) {
    System.out.write(buf, 0, nread);
    }
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    }
    }
  5. 2005-01-28 16:39:16 PST
    I am sorry that I made a mistake just now. The last way should be "java run [path]mbrola." instead of "java run [path]mbrola".
    By the way, why is the indention in my code lost?

    Jianmin Li
  6. 2005-01-28 17:38:27 PST
    Hello,

    I confirm that using Dr.Li's code for run.java (above), using the following command line on Win 2000 will produce a WAV file that works fine:

    C:\mbrola>"C:\Program Files\Java\jdk1.5.0_01\bin\java.exe" run mbrola C:\mbrola\us1\us1 C:\mbrola\us1\TEST\alice.pho hello.wav

    I should mention that to get this far, you need 3 downloads:

    1) the Windows setup program mbrolatools311.exe which installs the 3 DLLs into the Windows system directory

    2) A voice database

    3) the PC-DOS Mbrola binary mbr301d.zip which contains the updated exe

    And yes, the database file is the one with the same name as its parent directory and without any filename extension.

    Will check this out. Thanks!

    Bert
  7. 2005-01-29 05:44:54 PST
    Hello Bert,

    1. About the command line in your message, C:\mbrola>"C:\Program Files\Java\jdk1.5.0_01\bin\java.exe" run mbrola C:\mbrola\us1\us1 C:\mbrola\us1\TEST\alice.pho hello.wav
    Is the executable module named mbrola or mbrola.exe? If it is named with extension, then it works as usual. However, if it is named without extension, it will not work, at least on my machine with win xp and java 1.4.2_04. On my platform, to get correct output, the following commands should be used:

    java run mbrola.
    java run .\mbrola
    java run C:\mbrola\mbrola

    2. I believe that the 3 dlls from mbrolatools311.exe are not necessary. In my opinion, the function of mbrola.dll and mbrola.exe are almost the same. And the other 2 dlls are the interface to make mbrola.dll to be used easily. In my initial solution, my code deals with the command line parameters, and then makes use of mbrola.dll to simulate mbrola.exe. But with the new version of mbrola.exe, mbrola.dll is in no use. In fact, if the mbrola.dll is used, there will be a dialog showing something like copyright when it is invoked at the first time.

    Jianmin Li
  8. 2005-01-30 16:12:59 PST
    Hello!

    It's a simple test:
    First I renamed the following files in theWINNT\system32 directory: mbrola.dll, mbrplay.dll and tctsaudio.dll

    Next I ran the command again, and get the same successful result. And yes, my executable is "mbrola.exe".

    So you are correct Sir, the DLLs look like they are not necessary at all for what we need.

    Best regards,
    Bert
  9. 2005-02-18 11:25:07 PST
    Hello,

    I tried to integrate mbrola into HelloWorld.java and it fails. Mbrola works fine by itself. I copied Dr.Li's code (run.java) and tried it and it works too. But when I try to run helloworld with mbrola it give the following error message:

    java -Dmbrola.base=./mbrola -jar bin/FreeTTSHelloWorld.jar mbrola_us2

    All voices available:
    alan (time domain)
    kevin (general domain)
    kevin16 (general domain)
    mbrola_us2 (general domain)

    Using voice: mbrola_us2
    Processing Utterance: com.sun.speech.freetts.ProcessException: Cannot start mbro
    la program: [Ljava.lang.String;@16f8cd0
    Processing Utterance: com.sun.speech.freetts.ProcessException: Cannot start mbro
    la program: [Ljava.lang.String;@16f8cd0

    It does not even exit. It gets stuck there. I tried it with mbrola.exe and mbrola (without the exe extension). They both did not work. Then I copied the file both with the exe extension and without the extension so that both files will be in the mbrola directory. Still did not work. I am runnning Win XP and using the newer version of mbrola (63 kb).

    Any help will be appreciated.

    Thank you very muhc,
    Kemal
  10. 2005-02-18 11:30:32 PST
    Hi again,

    I just tried realized that 63 kb file is the older one and the 88kb one is the new one. Now it works with the 88 kb mbrola.exe file compiled in June 2004. I just copied the file and removed the exe extension. It works :)

    My mistake. Sorry,
    Kemal
  11. 2005-02-21 17:29:35 PST
    Hello,

    I've assembled a working demo of this Hello World program running FreeTTS with an MBROLA text-to-speech voice on Windows.

    It comes complete with everything you need as well as an ANT build file which you can swipe to do your own variations at:
    http://www.quadmore.com/mbroquad/index.html

    Credits:
    The MBROLA bug fix was found by Dr. Jianmin Li.
    Thanks to Kemal Altintas for the correct DOS command.
    Special thanks to Dirk Schnelle for help with the ANT build.xml. Please visit Dirk's JVoiceXML
    project at http://jvoicexml.sourceforge.net

    Cheers,
    Bert Szoghy



  12. 2009-06-08 03:01:56 PDT
    Hi,

    I want install italian language for freeTTS, how can i do?

    Thanks and sorry for my english

    LS
  13. 2009-06-09 05:50:42 PDT
    Do you mean an italian voice of MBROLA?

    ~dirk
  14. 2009-06-09 05:56:18 PDT
    Sorry for my english.

    I want use freeTTS library for my application. I'm italian and i want use italian language. How can i do install italian voice?

    Thanks very much
  15. 2009-06-09 06:10:50 PDT
    I just asked because you posted under the MBROLA topic.

    Please read http://freetts.sourceforge.net/docs/index.php#How_do_I_add_support_for_a_voice_with

    ~dirk
  16. 2010-12-07 04:09:49 PST
    Hi, with the source code Jianmin Li provided us. Are we limited to using us1,us2,us3 voices only? or as i see it, it is mbrola is used as command line to generate a wave file then we can use any voice database? Thanks and Regards, Mihir Pandya
Jump To:
< Previous | 1 | Next >

Add a Reply

This forum does not allow anonymous participation.

Log in to add a reply. Not registered? Create an account to participate and receive email updates when replies are posted to this topic.