?? the speaktext.java file.txt
字號:
/* Import required io classes */
import java.io.File;
/* Import required util classes */
import java.util.Locale;
import java.util.Vector;
import javax.speech.synthesis.SynthesizerAdapter;
import javax.speech.synthesis.SynthesizerEvent;
/* Import required speech classes */
import javax.speech.Central;
import javax.speech.Engine;
import javax.speech.EngineList;
import javax.speech.synthesis.Synthesizer;
import javax.speech.synthesis.SynthesizerModeDesc;
import javax.speech.synthesis.SynthesizerProperties;
import javax.speech.synthesis.Voice;
/*
Class: SpeakText - Speaks the text
Fields:
voiceName:Represents the voice selected by the end user.
synthesizer:Represents an object of Synthesizer class.
Methods:
speakSelText():Uses the object of Synthesizer class to speak the text.
closeSynthesizer():Closes the synthesizer and stops the speaking operation.
pauseSynthesizer():Pauses the synthesizer.
resumeSynthesizer():Resumes the paused speaking operation of the synthesizer.
*/
public class SpeakText extends SynthesizerAdapter
{
/* Declare variables */
String l;
String voiceName;
SynthesizerModeDesc desc;
Synthesizer synthesizer;
TextPad txtpad;
/*
SpeakText:
Parameters:
k:String representing the text that the synthesizer speaks.
selvoice: String representing the voice selected by the end user.
Return Type:NA
*/
public SpeakText(String k,String selvoice)
{
/*
Set the value of l to the text that the synthesizer speaks
*/
l=k;
/*
Set the value of voiceName to the voice selected by the user
*/
txtpad=new TextPad();
voiceName = selvoice;
System.out.println("Using voice: " + voiceName);
try
{
/*
Initialize an object of SynthesizerModeDesc class
*/
desc = new SynthesizerModeDesc(
null,
"general",
Locale.US,
null,
null);
synthesizer = Central.createSynthesizer(desc);
/*
Prints the message if no synthesizer is available
*/
if (synthesizer == null)
{
String message = "\nCan't find synthesizer.\n"
+ "Make sure that there is a \"speech.properties\" file "
+ "at either of these locations: \n";
message += "user.home : "
+ System.getProperty("user.home") + "\n";
message += "java.home/lib: " + System.getProperty("java.home")
+ File.separator + "lib\n";
System.err.println(message);
System.exit(1);
}
/*
Allocate a synthesizer to speak text.
*/
synthesizer.allocate();
synthesizer.resume();
desc = (SynthesizerModeDesc) synthesizer.getEngineModeDesc();
/*
Retrieve all the available voices in an array
*/
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;
}
}
/*
Print error message if selected voice is not available
*/
if (voice == null)
{
System.err.println("Synthesizer does not have a voice named "
+ voiceName + ".");
System.exit(1);
}
/*
Set the selected voice for the synthesizer
*/
synthesizer.getSynthesizerProperties().setVoice(voice);
}
catch(Exception e)
{
System.out.println(e);
}
}
/*
speakSelText():Speaks the text
Parameters:NA
Return Value:NA
*/
public void speakSelText(TextPad st)
{
try
{
txtpad=st;
/*
Invoke speakPlainText() method to speak the text.
*/
synthesizer.cancelAll();
synthesizer.speakPlainText(l, null);
System.out.println("Speaking Text");
}
catch (Exception e)
{
e.printStackTrace();
}
try
{
/*
Invoke waitEngineState() method to wait end of speech.
*/
synthesizer.waitEngineState(Synthes zer.QUEUE_EMPTY);
txtpad.stopText.setEnabled(false);
txtpad.speakText.setEnabled(true);
txtpad.pause.setEnabled(false);
txtpad.resume.setEnabled(false);
txtpad.stop.setEnabled(false);
}
catch(Exception e)
{
}
}
/*
closeSynthesizer():Close the synthesizer and stop the speaking operation.
Parameters:NA
Return Type:NA
*/
public void closeSynthesizer()
{
try
{
/*
Stop the synthesizer and cancel the speaking operation
*/
synthesizer.cancelAll();
system.out.println("Speaking Operation Cancelled");
}
catch (Exception e)
{
e.printStackTrace();
}
}
/*
pauseSynthesizer():Pause the synthesizer. This pauses the text that the synthesizer is
currently speaking.
Parameters:NA
Return Value:NA
*/
public void pauseSynthesizer()
{
try
{
/*
Pause the synthesizer
*/
synthesizer.pause();
System.out.println("Speaking Operation Paused");
}
catch(Exception e)
{
e.printStackTrace();
}
}
/*
resumeSynthesizer():Resumes the speaking operation that is paused by the end user.
Parameters:NA
Return Value:NA
*/
public void resumeSynthesizer()
{
try
{
/*
Resume the synthesizer that speaks the text.
*/
synthesizer.resume();
System.out.println("Speaking Operation Resumed");
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -