⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 the speaktext.java file.txt

📁 Creating a Voice Synthesizer Application
💻 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 + -