带有 SI_VOX 的法语文本转语音和带有 FreeTTS 的英语文本转语音
1 - Text-to-speech in French (with SI_VOX)
SI_VOX 是一个法语库,也是 Java 中法语文本转语音的最佳 API。为了能够使用它,请按照下列步骤操作- 下载SI_VOX API: http://users.polytech.unice.fr/~helen/SI_VOX-SRC.tar.gz
- 创建项目后,将库 'SI_VOX.jar' 导入到您的项目中。
- 复制并粘贴位于 在项目根目录下的压缩文件夹中,此文件包含 voice.
- 导入类读取文本:
导入 t2s.son.TextReader;跨度> |
ReaderTextReader = new ReaderText(你好”); |
player.playAll(); |
reader.setText(我是一个文本转语音程序); |
import t2s.son.TextReader;
public class Synthese_Vocale{
public static void main(String[] args) {
ReaderTextReader = new ReaderText(hello”);
player.playAll();
reader.setText(我是语音合成器,你是谁?”);
player.playAll();
}
}
2- 英语文本转语音(带 FreeTTS)
免费TSS es开源文本转语音系统,它是用 Java 语言创建的。FreeTTS是 Java 语音 API.FreeTTS库下载链接:
http://sourceforge.net/projects/freetts/files/FreeTTS/FreeTTS%201.2.2/freetts-1.2.2-bin.zip/download
http://sourceforge.net/projects/freetts/files/FreeTTS/FreeTTS%201.2.2/freetts-1.2.2-bin.zip/download
有关FreeTTS API的更多信息,请单击此链接 http://freetts.sourceforge.net/docs/index.php#what_is_freetts
要将文本转换为语音,您需要界面 FreeTTSSpeakable 将文本转换为 FreeTTSSpeakable 对象。
Voice:是FreeTTS的中心点,它以FreeTTSSpeakable作为输入,将关联的文本翻译成语音,然后输出相应的audio.
VoiceManager: 是FreeTTS声音的仓库。选择语音的方法如下:
VoiceManager voiceManager = VoiceManager.getInstance(); // 创建语音列表 Voice[] voice = voiceManager.getVoices(); //每个语音都有属性,您可以根据需要浏览列表查找语音。 // 为此语音分配资源 voice [x].allocate(); |
以下代码是一个演示性应用程序;演示合成器语音的使用 免费TTS。该程序显示如何使用 FreeTTS 不需要JSAPI”API.
import com.sun.speech.freetts.Voice;
import com.sun.speech.freetts.VoiceManager;
public class Synthese_Vocale {
/**
* 如何显示所有语音
*/
public static void voicelist() {
System.out.println(所有可用语音:”);
VoiceManager voiceManager = VoiceManager.getInstance();
voice[] voice = voiceManager.getVoices();
for (int i = 0; i < voice.length; i++) {
System.out.println( ” + voice[i].getName()
+ (” + voice[i].getDomain() + domain)”);
}
}
public static void main(String[] args) {
/*允许显示所有可用语音的方法*/
voicelist();
字符串 VoiceName = kevin”;
System.out.println(\n使用的语音:” + 语音名称);
/* VoiceManager 管理 FreeTTS
*/
VoiceManager voiceManager = VoiceManager.getInstance();
/*加载 voice
*/
voice = voiceManager.getVoice(VoiceName);
/*如果语音名称不存在,则 error
*/
if (voice == null) {
System.err.println(
语音 ”
+ voicename +。无法识别,请尝试其他名称。
System.exit(1);
}
/* 加载语音使用的资源
*/
voice.allocate();
/* 合成语音
*/
voice.speak(hello world”);
voice.speak(你今天好吗”);
voice.speak(我是程序员”);
/* 取消分配
*/
voices.deallocate();
/*程序成功完成
*/
System.exit(0);
}
}