Je cherche à mettre en place un interpréteur de texte-à-parole pour rendre nos défis CAPTCHA conformes ADA. Nous sommes un magasin ColdFusion, et Ray Camden a déjà fait la preuve de concept pour cette année. J'ai utilisé son blog ici - http://www.coldfusionjedi.com/index.cfm/2009/5/29/Generating-Speech-with-ColdFusion-and-Java - comme une ressource.FreeTTS suspendu dans ColdFusion 8/Java
Tout fonctionne parfaitement ... sauf pour la partie où FreeTTS est censé fonctionner. J'ai le code suivant:
<cfset jardir = expandPath("freetts-1.2.2-bin/freetts-1.2/lib") />
<cfset jars = [] />
<cfdirectory name="jarList" directory="#jardir#" />
<cfloop query="jarList">
<cfset ArrayAppend(jars, jardir & "/" & name) />
</cfloop>
<cfset loader = createObject("component", "javaloader.JavaLoader").init(jars) />
<cfset voiceManager = loader.create("com.sun.speech.freetts.VoiceManager") />
<cfset vm = voiceManager.getInstance() />
<cfset voice = vm.getVoice("kevin16") />
<cfset voice.allocate() />
<!--- <cfset voice.speak("Hi.") /> --->
<cfset voice.deallocate() />
Comme cela est, il fonctionne très bien et je peux cfdump l'objet voix après la deallocate (ou même après l'allocation). Donc, à partir de là, vous savez que les dépendances sont au bon endroit et ColdFusion instancie tout correctement. Mais dès que je décommente l'appel à speak(), le script de test va se bloquer sur cette méthode. Les signes pointent vers un problème de configuration du serveur, mais pour la vie de moi, je ne peux pas penser à ce que ce serait. (Nous utilisons ColdFusion 8.01, d'ici là.) Si quelqu'un pouvait donner un aperçu supplémentaire de la raison pour laquelle FreeTTS se conduirait mal comme ça, je serais très reconnaissant.
Mise à jour: Cela semble être un problème Java plus général. Le journal JRUN de ColdFusion montre l'erreur suivante étant lancée que le serveur commence à accrocher:
Exception in thread "Thread-667" java.lang.IllegalArgumentException: No line matching interface SourceDataLine supporting format PCM_SIGNED 8000.0 Hz, 16 bit, mono, 2 bytes/frame, big-endian is supported.
De plus, si je tente d'exécuter FreeTTSHelloWorld.jar hors de la boîte de la ligne de commande (java -jar bin/FreeTTSHelloWorld.jar
), Java se bloque et nous devrons forcer la fermeture avec^C.
http://www.google.com/recaptcha ne fonctionne pas pour vous? – Henry
Est-ce que FreeTTs envoie une erreur dans cfserver.log (ou partout où stdout est connecté sur votre installation)? –
@Edward M Smith - Négatif. Aucun des journaux mis à jour aujourd'hui ne contient de commentaires pertinents. –