2012-04-17 3 views
5

Ich mache gerade ein Projekt für die Schule, wo ich ein Programm machen werde, das Kindern beibringt, wie man liest. Meine Grundidee für das Programm war, den Satz zu produzieren und dann Windows Anna dazu zu bringen, es zu sagen. Meine Frage an Sie ist, wie kann ich auf Winodws Anna über Java zugreifen? und gibt es einen besseren Weg, dies zu tun?Java Phonetik oder Sprachaussprache

Dank

+0

Meinst du das von Java-Api für Sound: http://java.sun.com/products/java-media/speech/index.jsp? – Weeman

+0

Eigentlich [gibt es eine Lösung] [1] zum Aufrufen von Windows Synthetizer schon da. [1]: http://stackoverflow.com/questions/1040655/ms-speech-from-command-line – npe

+0

Ich habe eine Frage: ist dieses Programm erlaubt das Internet zugreifen? – Xyene

Antwort

3

Wenn das Programm Zugang Internet ist akzeptabel, dann könnten Sie iSpeech verwenden.

Sie können ihre API verwenden, aber das Problem damit ist, dass es auf 200 Anwendungen/Tag beschränkt ist.

iSpeech hat anständig Stimmen, in der Regel polierter als andere TTS-Motoren Ich habe müde wie espeak oder FreeTTS, weil es tatsächlich die Wörter flüssiger ausspricht. Sicher, es könnte "Wind", der sich auf Luft bezieht, als "Wind" bezeichnen, was sich auf Verdrehen bezieht, aber ansonsten spricht es recht gut.

Auch, während ich keine vorherige Erfahrung damit hatte, fand ich einen Artikel, der Ihnen zeigt, wie man auf MS Speech mit der Befehlszeile zugreifen kann (was natürlich über Java befohlen werden kann [wenn Sie nicht wissen, wie hier ist eine gute article]). Es befindet sich here. In Befehlszeile ist, alles, was Sie tun, geben Sie ‚SayDynamic.exe * den Text, den Sie sprechen wollen.“

* Oder SayStatic, der anderen Download zur Verfügung auf der Seite.

Diese Methode scheint besser zu sein in Begriffe der Geschwindigkeit und nicht auf Internet-Zugang, aber es spricht definitiv nicht Dinge sowie iSpeech.Ich denke, die ideale Sache für Ihr Programm zu haben wäre, iSpeech verwenden, wenn online, und verwenden Sie die Say * .exe, wenn offline.

Die Site stellt auch den Quellcode des Programms zur Verfügung.Wie Sie vielleicht bemerken, ist es NICHT Microsoft Annas Stimme, aber Sie können das in der Quelle angeben und es neu kompilieren ..

Ich hoffe, ich half!

+0

Ja, dieses Programm kann auf das Internet zugreifen. –

+0

OK. Hat meine Antwort geholfen? – Xyene

+0

Hallo, ich bin nicht in der Lage, Sie Link zu öffnen, wo es zeigt, wie MS-Sprache zu verwenden. –

1

Sie können Befehlszeile utiity NirCmd verwenden, die Text-to-Speech-API unter Windows installiert verwendet.

Also, liefern Sie dieses Dienstprogramm zusammen mit Ihrer Java-Anwendung und führen Sie es mit der entsprechenden Befehlszeile.

+0

Dieses Programm sagt nicht den gesamten Text. Hast du eine Alternative dazu? –

0

Sie können versuchen FreeTTS: ein Sprachsynthesizer in Java geschrieben.

Sie können versuchen, die Microsoft Speech API (SAPI) aufzurufen, aber ich weiß nicht, wie man es in Java macht.

Können Sie uns sagen, wie Sie NirCmd aufrufen? Alternativativ zu NirCmd können Sie in C# ein eigenes Tool erstellen, das den Text liest. Der Text könnte innerhalb eines txt liegen und Ihr Tool würde mit dem Pfad zu diesem txt als Argument aufgerufen. http://www.codeproject.com/Articles/19334/Text-to-Speech-using-Windows-SAPI

+0

Sorry für die verzögerte Antwort, aber ich habe NirCmd mit Runtime.exec() aufgerufen, gibt es eine alternative Methode? –

+0

Ich spreche über die Argumente. Versuchen Sie es mit den Argumenten "Datei sprechen". – Guillaume

Verwandte Themen