Text-to-Speech auf Französisch mit SI_VOX und auf Englisch mit FreeTTS

Text-to-Speech oder Text-to-Speech  (oder TTS, Text-to-Speech) ist eine Methode, mit der Sie aus dem Text künstliche Sprache erstellen können. Es stützt sich auf Sprachverarbeitungstechniken, um den Text zu transkribieren, einschließlich der Signalverarbeitung, um beeps aus einer phonetischen Version zu generieren. Stephen Hawking  verwendet diese Technik, um mit anderen zu kommunizieren.

1 - Text-to-Speech auf Französisch (mit SI_VOX)

SI_VOX ist eine französische Bibliothek und die beste API für Text-to-Speech auf Französisch in Java. Um es verwenden zu können, gehen Sie folgendermaßen vor
  1. Laden Sie die SI_VOX-API herunter:  http://users.polytech.unice.fr/~helen/SI_VOX-SRC.tar.gz
  2. Nachdem Sie das Projekt erstellt haben, importieren Sie die Bibliothek 'SI_VOX.jar' in Ihr Projekt.
  3. Kopieren Sie den Ordner "data", der sich   Im komprimierten Ordner im Stammverzeichnis des Projekts enthält diese Datei die Parameter der Stimme.
  4. Klasse importieren, um Text zu lesen:
import t2s.son.TextReader;
  5.    Erstellen Sie einen Textleser:
ReaderTextReader = new ReaderText("Hallo");
 6. Lesen Sie den Text: 
spieler.playAll();
 7.    Text bearbeiten: 
reader.setText("Ich bin ein Text-to-Speech-Programm");

import t2s.son.TextReader; 

public class Synthese_Vocale{
public static void main(String[] args) {
ReaderTextReader = new ReaderText("hello");
player.playAll();
reader.setText("Ich bin ein Sprachsynthesizer, wer bist du?");
player.playAll();
}
}

2- Englische Text-to-Speech (mit FreeTTS)

FreeTSS  es kein Open-Source-Text-to-Speech-System, sondern wurde mit der Sprache Java erstellt. FreeTTS ist eine Implementierung von  Java Speech API.


Für weitere Informationen über die FreeTTS-API klicken Sie auf diesen Link  http://freetts.sourceforge.net/docs/index.php#what_is_freetts

Um Text in Sprache umzuwandeln, benötigen Sie die Benutzeroberfläche  FreeTTSSpeakable , das den Text in ein FreeTTSSpeakable-Objekt umwandelt.

Voice: ist der zentrale Punkt von FreeTTS, es nimmt ein FreeTTSSpeakable als Eingabe und übersetzt den zugehörigen Text in eine Sprache und gibt dann das entsprechende Audio aus.

VoiceManager: ist das Lager der Stimmen von FreeTTS. So wählen Sie eine Stimme aus:
VoiceManager voiceManager = VoiceManager.getInstance();
// Erstelle eine Liste von Stimmen
Voice[] voice = voiceManager.getVoices();

//Jede Stimme hat Eigenschaften, Sie können die Liste durchsuchen, um die Stimme nach Bedarf zu finden.
// Ressourcen für diese Stimme zuweisen

voice [x].allocate();
Der folgende Code ist eine Demonstrationsanwendung. um die Verwendung von Synthesizer-Sprache zu demonstrieren  FreeTTS . Dieses Programm zeigt, wie man FreeTTS benutzt  ohne die "JSAPI"-API.

import com.sun.speech.freetts.Voice; 
import com.sun.speech.freetts.VoiceManager;

public class Synthese_Vocale {
/**
* So zeigen Sie alle Stimmen an
*/
public static void voicelist() {
System.out.println("Alle verfügbaren Stimmen:");
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) {

/*Methode, die die Anzeige aller verfügbaren Stimmen ermöglicht*/
voicelist();

Zeichenkette VoiceName = "kevin";
System.out.println("\nVerwendete Stimme: " + VoiceName);

/* Der VoiceManager verwaltet alle Stimmen für FreeTTS
*/
VoiceManager voiceManager = VoiceManager.getInstance();
/*Stimme laden
*/
Stimme = voiceManager.getVoice(VoiceName);

/*Wenn der Sprachname nicht vorhanden ist, dann error
*/
if (voice == null) {
System.err.println(
"Die Stimme "
+ voicename +". nicht erkannt wird, bitte versuchen Sie es mit einem anderen Namen.");
System.exit(1);
}

/* Ressourcen laden, deren Stimme verwendet
*/
voice.allocate();

/* Sprache synthetisieren
*/
voice.speak("Hallo Welt");
voice.speak("Wie geht es dir heute");
voice.speak("Ich bin Programmierer");

/* Zuweisung aufheben
*/
voices.deallocate();
/*Programm erfolgreich abgeschlossen
*/
System.exit(0);
}
}