上記の質問への回答:
1. どのファイルをダウンロードする必要がありますか?
- すべてのライブラリを含むFreeTTS (freeTTS 1.2.2-bin) -ここからダウンロード
- MBROLA zip フォルダーmbr301d.zip
- MBROLAのウェブサイトで見つけられる声
1.1 FreeTTSライブラリ(freetts-1.2.2-bin/freetts-1.2/lib にあります) :
- cmu_time_awb.jar
- cmu_us_kal.jar
- cmudict04.jar
- cmulex.jar
- cmutimelex.jar
- en_us.jar
- freetts.jar
- freetts-jsapi10.jar
- mbrola.jar
1.2 MBROLA zip フォルダーには以下が含まれます。
- mbrola.exe
- mbr302a (フォルダー)
- readme.txt
1.3ボイスは、' us1 ' または ' af1 ' などの名前の単一のフォルダーを含む圧縮フォルダーです。
2. これらをプログラムに組み込む手順は?
注: MBROLA Toolkitもコンピューターにインストールしましたが、プログラムに影響があるかどうかはわかりませんが、影響はないと思われます。編集: FreeTTS と一緒に MBROLA を実行するために MBROLA ツールキットが必要かどうかをテストしたところ、不要であることがわかりました。
- freetts-1.2.2-bin を解凍します
- ライブラリをプロジェクトにコピーし、ビルド パスに含めます
- mbr301d.zip フォルダーを解凍します。
- 「mbr301d」の名前を「mbrola」に変更します
- 「mbrola」という名前のフォルダーに音声を解凍します
これが完了すると、mbrola フォルダーは次のようになります。
- [mbr302a] -フォルダー
- [us1] -フォルダー (名前はダウンロードした言語によって異なります)
- mbrola.exe -ファイル
- readme.txt -ファイル
すべての言語をこのフォルダーに配置すると、Java プログラムから呼び出されるだけです。
3. MBROLA 音声を使用した簡単な FreeTTS の例?
多くの人がこのエラーを受け取るのを見てきました:
System property "mbrola.base" is undefined. Will not use MBROLA voices.
はmbrola.base
mbrola ファイルがコンピューター上のどこにあるかを示しており、プロパティが正しい場所を指していないと、このエラーが発生します。
このエラーが発生した MBROLA 以外のユーザーへ: FreeTTS のみを使用している場合は、参照されているライブラリから mbrola.jar を削除するだけです。
mbrola.base
プロパティを設定するには、次を使用します。
System.setProperty("mbrola.base", "C:/Path/to/your/mbrola")
以下は、FreeTTS プログラムで MBROLA ボイスを使用する簡単な例です。これが機能する前に、上記の手順を実行する必要があることに注意してください。ベースが設定されていないと、単にボイスの名前を「mbrola_us1」に変更しても機能しません。
package com.madmob.test;
import com.sun.speech.freetts.Voice;
import com.sun.speech.freetts.VoiceManager;
public class TestTTS {
VoiceManager freettsVM;
Voice freettsVoice;
public TestTTS(String words) {
// Most important part!
System.setProperty("mbrola.base", "C:/mbrola");
freettsVM = VoiceManager.getInstance();
// Simply change to MBROLA voice
freettsVoice = freettsVM.getVoice("mbrola_us1");
// Allocate your chosen voice
freettsVoice.allocate();
sayWords(words);
}
public void sayWords(String words) {
// Make her speak!
freettsVoice.speak(words);
}
public static void main(String [] args) {
new TestTTS("Hello there! Now M BROLA and Free T T S work together!");
}
}
MBROLA と FreeTTS が連携するようになりました! このコードは私のコンピューターから直接コピーされ、ここに置く前にテストされています。