当前位置: 首页 > 工具软件 > FreeTTS > 使用案例 >

FreeTTS实现语音合成-----将IRC消息转换成听得见的语音

拓拔泉
2023-12-01

本文将展示如何建立一个跨平台的IRC机器人(一个自动化的客户端),它使用FreeTTS Java语音合成库来将IRC消息转换成听得见的语音。  FreeTTS库可以在freetts.sourceforge.net下载。为了连接到 IRC服务器上,你需要在www.jibble.org/pircbot.php下载PircBot Java IRC API。  当你下载了所需的两个库之后,建立一个lib目录,然后将下列.jar文件拷贝到里面。  ·cmu_time_awb.jar

  ·cmu_us_kal.jar

  ·cmulex.jar

  ·cmutimelex.jar

  ·en_us.jar

  ·freetts.jar

  ·pircbot.jar   现在,写IRC机器人已经变成了一个简单的任务,因为这些库将为你完成多数的困难工作。建立一个名为SpeechBot.java的文件:

  import org.jibble.pircbot.*;

  import com.sun.speech.freetts.*;

  import com.sun.speech.freetts.audio.*;

  import javax.sound.sampled.*;

  import java.io.File;

public class SpeechBot {

      private Voice voice;

  public  SpeechBot(String say) {

  //setName(name); // Choose the voice for the speech synthesizer.

  // 选择语音合成器的话音

  String voiceName = "kevin16";

  VoiceManager voiceManager = VoiceManager.getInstance();

  voice = voiceManager.getVoice(voiceName);

    if (voice == null) {

  System.out.println("Voice not found.");

  System.exit(1);

  }

     voice.allocate(); // Set up the output format. 分配资源
  // 设置输出格式
  AudioPlayer voicePlayer = new JavaClipAudioPlayer();

  voicePlayer.setAudioFormat(new AudioFormat(8000, 16, 1, false, true));

  voice.setAudioPlayer(voicePlayer); 


        float wpm = 120f;//设置语速
       voice.setRate(wpm);
       voice.setPitch(85f);
       voice.setPitchRange(10f);
       //合成语音
       voice.startBatch();
       voice.speak(say);
       voice.endBatch();


      //在这里可以获得合成语音文件     

 
       //释放资源
       voice.deallocate();
  }

  public void onMessage(String channel, String sender,

  String login, String hostname, String message) {

  // Send all IRC messages to the voice

  synthesizer.

  // 发送所有的IRC消息到语音合成器

  message = message.trim();

  String input = sender + " on " + channel + "

  says: " + message;

  voice.speak(input);

  }

public static void main(String[] args) throws Exception {


  SpeechBot bot = new SpeechBot("SpeechBot");
 
  }}

 

 类似资料: