网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>JAVA>>新手入门>>基础入门>查看文档  
  用java实现irc文本到语音转换     
  文章作者:未知  文章来源:水木森林  
  查看:77次  录入:管理员--2007-11-17  
 
  由于irc是一个完全实时的聊天系统,所以你将很难从中受益,除非你能密切关注聊天时对话产生的顺序。不幸的是,这将会导致生产力的低下,这就是为什么很多雇主不赞成使用irc的原因。然而,如果irc得到了恰当的使用,它能够使雇员与远程的同事们一起高效地工作,不管他们是位于地球的另一端,或者只是在隔壁的大厦。像irc这样的实时群组聊天系统使组织会议(甚至可以实现视频会议)、提问问题或是商量去哪里吃午餐这样的小事都变得更加容易。

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

  理想的解决方案是设计一种无需经常查看是否有新消息就可以明了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/

 
 
上一篇: java入门——对effectivejava的评价    下一篇: javaants-1.0(网络蚂蚁java版)
  相关文档
aop和spring事务处理 11-16
开发实体ejb 增强的性能和开发 11-17
sun 发布 jaxp 1.3 维护文档草案 11-17
jsp与asp.net之间的session值共享 11-17
最新消息:hibernate 3.1发布 11-17
在java中使用枚举 11-17
java编译器对于string常量表达式的优化 11-16
.net事务处理并发性处理的意义 11-17
applet的参数化--对数组进行初始化 11-17
使用 java servlets 2.4 来执行过滤 11-17
java工具之javadoc和jar浅学 11-17
spring multiaction的简单示例 11-17
脚本问题解答 11-16
java指南之使用图形:概览 11-17
silverstream 应用服务器 11-17
当前java软件开发中几种认识误区 11-17
javamail邮件主题乱码的解决方法 11-17
java开发框架:关于ssh架构的简单总结 05-08
java编程进阶 关于java编程中的jdbc的介绍 04-14
.net 事务处理并发性处理的意义 11-17
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
技术电话:13616026886
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息