分享
 
 
 

用Java实现IRC文本到语音转换

王朝java/jsp·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

由于IRC是一个完全实时的聊天系统,所以你将很难从中受益,除非你能密切关注聊天时对话产生的顺序。不幸的是,这将会导致生产力的低下,这就是为什么很多雇主不赞成使用IRC的原因。然而,如果IRC得到了恰当的使用,它能够使雇员与远程的同事们一起高效地工作,不管他们是位于地球的另一端,或者只是在隔壁的大厦。像IRC这样的实时群组聊天系统使组织会议(甚至可以实现视频会议)、提问问题或是商量去哪里吃午餐这样的小事都变得更加容易。

很多老板也许会争辩说,在工作场所提高生产力的最显而易见的方法是完全避免使用IRC。在某些情况下这也许是正确的,但是在很多场合IRC可以是非常有用的。当你使用IRC进行交流时――即使是跟同一办公室中的某个人――在别处的同事将能够看到你们两个谈话的内容。当你不在办公桌旁的时候,你也可以了解同事们在讨论什么。这是电话或常规的点对点聊天系统所不容易实现的两个重要方面。

理想的解决方案是设计一种无需经常查看是否有新消息就可以明了IRC对话的方法。只要你的IRC频道不是很繁忙,那么一个文本语音转换系统将会提供给你优秀的解方案。它会将新消息自动朗读出来,这样你就可以继续工作,只在有绝对必要的时候才转移注意力到IRC上面来。

本文将展示如何建立一个跨平台的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 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/

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有