2010-07-28 3 views
2

Я изучаю настройку интерпретатора текста в речь, чтобы наши возможности CAPTCHA соответствовали требованиям ADA. Мы магазин ColdFusion, и Рэй Камден уже доказал концепцию в этом году. Я использовал свой блог здесь - http://www.coldfusionjedi.com/index.cfm/2009/5/29/Generating-Speech-with-ColdFusion-and-Java - в качестве ресурса.FreeTTS, висящий в ColdFusion 8/Java

Все, что работает отлично ... кроме той части, где предполагается работать FreeTTS. У меня есть следующий код:

<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() /> 

Как это, она работает хорошо, и я могу cfdump голосовой объект после DEALLOCATE (или даже после выделения). Итак, из этого вы знаете, что зависимости находятся в правильном месте, а ColdFusion создает все правильно. Но как только я раскомментирую вызов для вызова(), тестовый скрипт будет висеть на этом методе.

Знаки указывают на то, что проблема с конфигурацией сервера является виновником здесь, но для жизни меня я не могу придумать, что бы это было. (Мы используем ColdFusion 8.01 by by.) Если кто-то может дать некоторое дополнительное представление о том, почему FreeTTS будет плохо себя вести, я бы очень благодарен.

Обновление: Это, по-видимому, более общая проблема Java. Журнал Jrun ColdFusion в показывает следующее сообщение об ошибке бросает, как сервер начинает зависать:

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. 

Далее, если я пытаюсь запустить FreeTTSHelloWorld.jar из коробки из командной строки (java -jar bin/FreeTTSHelloWorld.jar), Java будет висеть и нам придется принудительно выйти с помощью^C.

+1

http://www.google.com/recaptcha не работает для вас? – Henry

+0

Является ли FreeTTs какой-либо ошибкой в ​​cfserver.log (или везде, где stdout регистрируется при вашей установке)? –

+0

@Edward M Смит - отрицательный. Ни один из обновленных журналов не содержит никакой обратной связи. –

ответ

0

У вас есть звуковая карта? Попробуйте (из той же записи из луча) записать файл на диск.