·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 extends PircBot { private Voice voice;
public SpeechBot(String name) {
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);
}
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 {
if (args.length < 2) {
System.out.println("Usage: java SpeechBot
");
System.exit(1);
}
SpeechBot bot = new SpeechBot("SpeechBot");
bot.connect(args[0]);
bot.joinChannel(args[1]);
}}
现在可以编译IRC机器人了。要确定在类路径中包含了必需的.jar文件: javac -classpath .;./lib/pircbot.jar;./lib/freetts.jar SpeechBot.java 注意这种指定类路径的方式只在Windows系统下有效。在Unix/Linux系统上,你需要使用冒号(:)而不是分号(;)来作为分隔符。在运行IRC机器人的时候你也需要指定类路径。 当运行机器人的时候,你需要提供两个命令行参数来告诉它连接哪个IRC服务器以及加入哪个IRC频道: java -classpath .;./lib/pircbot.jar;./lib/freetts.jar SpeechBot irc.freenode.net #irchacks 注意:确定你的目录名不包含任何空格,因为该版本的FreeTTS在从含有空格的路径中读取自身代码时似乎存在问题。 当你启动了机器人之后,它将立刻加入指定的IRC频道(范例中是在freenode IRC网络上的#irchacks)。现在你可以向频道中发送一条消息来测试机器人了。如果一切都设置正确,你就会听见机器人对你说:
"Jibbler on #irchacks says: Hello, world!" 现在你可以在收听IRC的同时继续努力工作了! Paul Mutton是PircBot IRC框架及另外一些Java程序的作者,这些程序可以在他的网站上找到。 在2004年7月,O'Reilly Media出版了IRC Hacks。
版权声明:任何获得Matrix授权的网站,转载时请务必保留以下作者信息和链接
原文:http://www.javaworld.com/
译文:http://www.matrix.org.cn/