자바 용 netbeans에서 TTS를 사용하려고합니다. 나는 JSAPI 파일의 압축을 해제하고 라이브러리java netbeans에서 TTS (Text To Speech)를 사용하려면 어떻게해야합니까?
- cmu_us_kal.jar
- cmulex.jar
- en_us.jar
- freetts.jar
- cmulex.jar
- 에 다음 항아리를 추가 한 jsapi.jar
다음 코드를 실행할 때 :
내가 그렇게 같은 주요 방법을 변경하는 경우**run:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at demofreetts2.Demofreetts2.main(Demofreetts2.java:46)
Java Result: 1
BUILD SUCCESSFUL (total time: 1 second)**
:
**run:
java.lang.NullPointerException
BUILD SUCCESSFUL (total time: 1 second)**
사람이 알고 있나요 :
public static void main (String[]args)
{
Demofreetts2 obj = new Demofreetts2();
obj.doSpeak("hello","kevin16");
}
나는이 메시지가
package demofreetts2;
import javax.speech.*;
import java.util.*;
import javax.speech.synthesis.*;
public class Demofreetts2 {
String speaktext ="";
public void doSpeak(String speak, String voicename)
{
speaktext = speak;
String voiceName = voicename;
try
{
SynthesizerModeDesc desc = new SynthesizerModeDesc(null, "general", Locale.US, null, null);
Synthesizer synthesizer = Central.createSynthesizer(desc);
synthesizer.allocate();
synthesizer.resume();
desc = (SynthesizerModeDesc)synthesizer.getEngineModeDesc();
Voice[] voices = desc.getVoices();
Voice voice = null;
for(int i = 0; i< voices. length; i++)
{
if(voices[i].getName().equals(voiceName))
{
voice = voices[i];
break;
}
}
synthesizer.getSynthesizerProperties().setVoice(voice);
synthesizer.speakPlainText(speaktext, null);
synthesizer.waitEngineState(Synthesizer.QUEUE_EMPTY);
synthesizer.deallocate();
}
catch (Exception e)
{
String message = "missing speech properties in " + System.getProperty("user.home") + "\n";
System.out.println (""+e);
}
}
public static void main (String[]args)
{
Demofreetts2 obj = new Demofreetts2();
obj.doSpeak(args[0],"kevin16");
}
}
나는 다음과 같은 메시지가 이거 작동시킬 수 있니?
필자는 문자열을 음성으로 변환하는 프로그램을 소개합니다.
내가 다음과 같은 메시지가 나온 것처럼 error2를 조정했을 때 ------------------------------- ------------------------------------- 실행 : java.lang.NullPointerException \t at demofreetts2.Demofreetts2.main (Demofreetts2.java:46) BUILD SUCCESSFUL에서 demofreetts2.Demofreetts2.doSpeak (Demofreetts2.java:19) \t (총 시간 : 1 초) ----------- -------------------------------------------------- --- 음성이 null 값이기 때문에 이것은 무엇입니까? – user1870404
'Demofreetts2'의 19 행은 무엇입니까? 이 줄의 변수 중 하나는 'null'입니다. –
synthesizer.allocate(); – user1870404