Exception avec Freetts lors de l'utilisation de kevin ou de mbrola
Je suis en train de lancer un programme à l'aide freetts. Je suis en mesure de compiler le programme mais je ne suis pas en mesure d'utiliser kevin ou mbrola voix-je obtenir le prédécesseur de message de sortie à la fin
Système de la propriété "mbrola.de base" n'est pas défini. Ne pas utiliser MBROLA voix.
LIGNE INDISPONIBLE: Format pcm_signed 16000.0 Hz 16 bits 1 canal big endian
import javax.speech.*;
import javax.speech.synthesis.*;
import java.util.*;
class freetts {
public static void main(String[] args) {
try{
Calendar calendar = new GregorianCalendar();
String sayTime = "It is " + calendar.get(Calendar.HOUR) + " " + calendar.get(Calendar.MINUTE) + " " + (calendar.get(Calendar.AM_PM)==0 ? "AM":"PM");
Synthesizer synth = Central.createSynthesizer(null);
synth.allocate();
synth.resume();
synth.speakPlainText(sayTime, null);
synth.waitEngineState(Synthesizer.QUEUE_EMPTY);
synth.deallocate();
}
catch(Exception e){
e.printStackTrace();
}
}
}
Je n'ai pas utilisé cela dans un temps long. Mais, avez-vous mis tout ce dont vous avez besoin dans votre chemin de classe? Aussi de ce que je me souviens il y a quelque chose que vous avez à mettre dans votre répertoire home (c'était une version plus ancienne), qui pourrait être une autre raison pour un problème (si vous avez encore besoin de faire cela). Aussi, il peut y avoir d'autres variables d'environnement que vous avez besoin de définir, à l'instar de n'avoir à régler une MBROLA_HOME variable. Aussi Avez-vous été en mesure d'exécuter l'un des exemples de programmes qui est venu avec elle? Im désolé de poser des questions, mais ils peuvent aider à cerner le problème.
désolé, un couple de plus, la ligne indisponible exception peut être lancée lorsque vous essayez de jouer des sons en même temps, en fonction de ce que vous avez fait pour lire les fichiers. Pouvez-vous montrer le code que vous utilisez pour jouer la voix.
Nous avons besoin de la copie de la parole.propriétés je l'ai déjà fait. Cependant, je ne suis pas en mesure de lier la voix mbrola interfaces withmy programme, ni le défaut kevin haut-parleur cependant, j'ai inclus le kevin utilisateur dans mon programme 'classpath
désolé, un couple de plus, la ligne indisponible exception peut être lancée lorsque vous essayez de jouer des sons en même temps, en fonction de ce que vous avez fait pour lire les fichiers. Pouvez-vous montrer le code que vous utilisez pour jouer la voix.
Nous avons besoin de la copie de la parole.propriétés je l'ai déjà fait. Cependant, je ne suis pas en mesure de lier la voix mbrola interfaces withmy programme, ni le défaut kevin haut-parleur cependant, j'ai inclus le kevin utilisateur dans mon programme 'classpath
OriginalL'auteur manugupt1 | 2010-03-21
Vous devez vous connecter pour publier un commentaire.
Il semble que "Pour activer FreeTTS soutien pour MBROLA, copiez simplement mbrola/mbrola.jar pour lib/mbrola.jar. Ensuite, chaque fois que vous exécutez un FreeTTS application, de préciser les "mbrola.la base de" répertoire d'un système de propriété:
J'ai trouvé ceci:
http://freetts.sourceforge.net/mbrola/README.html
OriginalL'auteur John Kane
http://workorhobby.blogspot.com/2011/02/java-audio-freetts-line-unavailable.html
Un grand merci à l'auteur.
Un programme basé sur la FreeTTS, le free text-to-speech engine pour Java, a été d'obtenir des erreurs occasionnelles
S'avère qu'il y est aucune Exception Java ou d'autres mécanismes pour détecter cette erreur qui se produit à l'intérieur de la FreeTTS de la bibliothèque. Tout ce que vous obtenez est le message du Système.dehors, alors il n'y a pas de bonne façon de réagir par programmation.
Solution: Configurez le FreeTTS lecteur audio pour tenter d'accéder à l'appareil audio plus d'une fois jusqu'à ce qu'il réussisse. Dans cet exemple, un court délai de 0,1 secondes est utilisé pour ne pas rater une occasion pour s'emparer de l'appareil audio; nous continuer à essayer pendant 30 secondes:
Si le périphérique audio est utilisée en permanence par un autre programme, il n'y a évidemment aucun moyen d'obtenir l'accès. Sous Linux, cette commande affiche l'ID du processus, qui tient actuellement le périphérique audio, de sorte que vous pouvez ensuite essayer de se débarrasser de la délinquance programme:
OriginalL'auteur Ondra Žižka
La deuxième phrase n'a rien à voir avec mbrola, mais avec un horrible java linux sound bug qui n'est toujours pas résolu.
Vérifiez le troisième poste ici:
https://forums.oracle.com/forums/thread.jspa?threadID=2206163
Qui se passe parce que freetts "approuve" le sourcedataline, au lieu de faire la solution de contournement sur ce poste. Le bug est dans le jdk, mais peut être contourné en trouver un dans freetts qui se passe et de l'insertion de la solution de contournement & recompiler.
Ici est un cas de test
Ou, le patch/solution de contournement lui-même.
SI la solution a été d'ouvrir le dataline (avec try catch enfin fermer). Ceci est nécessaire parce que certaines lignes de données de rapport qu'ils prennent en charge un format, mais lorsque vous essayez de les ouvrir à ce qu'ils soufflent. Ce suce bien sûr.
vissé lien du forum était probablement déplacé à forums.oracle.com/forums/thread.jspa?threadID=2206163
OriginalL'auteur i30817
Je sais que je publie peu en retard, mais cela peut aider quelqu'un. J'ai essayé avec les deux kevin et mbrola, et il a travaillé pour moi. Vous trouverez le code ci-dessous.
Et ajouter ci-dessous les dépendances de votre pom.xml fichier.
Espère que ce sera utile.
OriginalL'auteur Manindar