带有 SI_VOX 的法语文本转语音和带有 FreeTTS 的英语文本转语音

文本转语音或文本转语音 (或 TTS,文本转语音) 是一种允许您从文本创建人工语音的方法。它依靠语言处理技术来转录文本,包括信号处理以从语音版本生成beeps. 斯蒂芬·霍金  使用此技术与他人通信。

1 - Text-to-speech in French (with SI_VOX)

SI_VOX 是一个法语库,也是 Java 中法语文本转语音的最佳 API。为了能够使用它,请按照下列步骤操作
  1. 下载SI_VOX API: http://users.polytech.unice.fr/~helen/SI_VOX-SRC.tar.gz
  2. 创建项目后,将库 'SI_VOX.jar' 导入到您的项目中。
  3. 复制并粘贴位于  在项目根目录下的压缩文件夹中,此文件包含 voice.
  4. 导入类读取文本:
 5.  创建文本阅读器:
导入 t2s.son.TextReader;
ReaderTextReader = new ReaderText(你好”);
 6.阅读正文: 
player.playAll();
 7.  编辑文本: 
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 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);
}
}