Преобразование текста в речь на французском языке с SI_VOX и на английском с FreeTTS

Преобразование текста в речь или преобразование текста в речь  (или TTS, Text-To-Speech) – это метод, позволяющий создать искусственную речь из текста. Он полагается на методы обработки языка для транскрибирования текста, включая обработку сигналов для генерации beeps из фонетической версии. Стивен Хокинг  использует эту технику для общения с другими.

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

SI_VOX — это французская библиотека и лучший API для преобразования текста в речь на французском языке в Java. Чтобы иметь возможность использовать его, выполните следующие действия
  1. Загрузите SI_VOX API:  http://users.polytech.unice.fr/~helen/SI_VOX-SRC.tar.gz
  2. После создания проекта импортируйте библиотеку 'SI_VOX.jar' в свой проект.
  3. Скопируйте и вставьте папку "data", которая находится   В сжатой папке в корне проекта этот файл содержит параметры voice.
  4. Импорт класса для чтения текста:
import t2s.son.TextReader;
  5.    Создание программы чтения текста:
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)

FreeTSS  es это не система преобразования текста в речь с открытым исходным кодом, она была создана на языке Java. FreeTTS — это реализация  Java Speech API.

Ссылка для скачивания библиотеки FreeTTS:
http://sourceforge.net/projects/freetts/files/FreeTTS/FreeTTS%201.2.2/freetts-1.2.2-bin.zip/download

Для получения дополнительной информации об API FreeTTS перейдите по этой ссылке. 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();
Следующий код является демонстрационным приложением; продемонстрировать использование синтезатора речи  ФриТТС . Эта программа показывает, как использовать FreeTTS  без необходимости использования API "JSAPI".

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Голос используется: " + VoiceName);

/* 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("Я программист");

/* unallocated
*/
voices.deallocate();
/*программа успешно завершена
*/
System.exit(0);
}
}