自然语言交流系统 phxnet团队 创新实训 项目博客 (十四)

项目技术借鉴报告:

一、服务器端(Server)

1、分词

分词使用的是庖丁分词。使用盘古分词词库和词素作为辅助。其中包括下载Jar包并且使用。

2、人工神经网络

以网上已有的初级网络为蓝图,结合机器学习的书籍对其隐藏层到输出层的权值修正算法进行改进。

3、情感词汇

使用台湾大学的(中文情感极性词典 NTUSD)情感词汇进行训练。作为判断情感的依据。

4、中文聊天机器人原型系统的设计.(参考自百度文库:http://wenku.baidu.com/link?url=QIAQg6yw4854FgDDJJh8MoNcwhFHRXxTgpwvL60BQ6jJhOwnIkj9jT-LgTjOf6FjRfhFDplD1zVTkg5Arb_U_dmXuPqrGm8qmKkwNGwwxXq)

[4] 《机器学习》,(美)Tom M. Mitchel著。

[5] 《心智、语言和机器》,徐英瑾著。

[6]BP神经网络的Java实现(http://fantasticinblur.iteye.com/blog/1465497)

[7]庖丁分词(http://www.oschina.net/p/paoding/)

二、服务器端(Client)

1、UNITY

以unity3d的书(Unity3D\2D手机游戏的开发)为基础,包括参考本书实例的素材文件和源代码,结合在网上的查询,在地势、动画调用、响应事件、组件使用方面进行学习。

参考文献:Unity3D\2D手机游戏开发 第2版 金玺曾 著

2、NGUI插件

在网上查询NGUI的使用方法,其中包括unitypackage包的下载、导入和使用。

NGUI3.5.4版本的下载地址:

http://download.csdn.net/detail/fucun1984686003/7091745

3、天空盒子

使用网上已有的天空盒子,下载地址:http://download.csdn.net/detail/zs502502/4663345

4、Android

参考文献:疯狂Android讲义 李刚 著

三、语音文本转换

我们使用了科大讯飞的在线语音转换,涉及的有文本传给云端服务器的文字转换成语音和本地的语音上传给服务器转换成文字。

涉及的相关的代码有:

private void showReconigizerDialog() {

//setEngine(String engine,String params,String grammar);

/**

* 识别引擎选择,目前支持以下五种

“sms”:普通文本转写

“poi”:地名搜索

“vsearch”:热词搜索

“vsearch”:热词搜索

“video”:视频音乐搜索

“asr”:命令词识别

params 引擎参数配置列表

附加参数列表,每项中间以逗号分隔,如在地图搜索时可指定搜索区域:“area=安徽省合肥市”,无附加参数传null

*/

rd.setEngine("sms", null, null);

//设置采样频率,默认是16k,android手机一般只支持8k、16k.为了更好的识别,直接弄成16k即可。

rd.setSampleRate(RATE.rate16k);

final StringBuilder sb = new StringBuilder();

Log.i(TAG, "识别准备开始.............");

//设置识别后的回调结果

rd.setListener(new RecognizerDialogListener() {

@Override

public void onResults(ArrayList<RecognizerResult> result, boolean isLast) {

for (RecognizerResult recognizerResult : result) {

sb.append(recognizerResult.text);

Log.i(TAG, "识别一条结果为::"+recognizerResult.text);

}

}

@Override

public void onEnd(SpeechError error) {

Log.i(TAG, "识别完成.............");

txt_result.setText(sb.toString());

Log.i(TAG, "识别完成:"+txt_result.getText().toString());

}

});

txt_result.setText(""); //先设置为空,等识别完成后设置内容

rd.show();

}

}

借鉴使用了科大讯飞的语音包,使用了科大讯飞的在线语音转换。

四、3DMAX

主要是借鉴了网上的无骨骼人物模型。

如果您愿意花几块钱请我喝杯茶的话,可以用手机扫描下方的二维码,通过 支付宝 捐赠。我会努力写出更好的文章。 
(捐赠不显示捐赠者的个人信息,如需要,请注明您的联系方式) 
Thank you for your kindly donation!!

时间: 2024-08-08 10:24:43

自然语言交流系统 phxnet团队 创新实训 项目博客 (十四)的相关文章

自然语言交流系统 phxnet团队 创新实训 项目博客 (五)

3DMax方面所涉及的专业知识:                       (1)一下的关于3DMax中对于人物的设计和操作均需要在对3DMax基础知识熟练掌握的情况下进行的. (2)骨骼架设:首先对导入到3DMax中的人物模型进行架设骨骼,首先,先加载一个人,锁定住,别让他乱动.用biped工具建立一个基本骨骼--可以从脚部位置往上拖拽鼠标来建立.在运动命令面板,点biped卷展栏的 figure mode在各视图中,使用旋转缩放位移的方式,调整骨骼的位置与模型的位置,让二者对齐. PS: 

自然语言交流系统 phxnet团队 创新实训 项目博客 (十二)

关于情感词典的学习总结: 情感倾向可认为是主体对某一客体主观存在的内心喜恶,内在评价的一种倾向.它由两个方面来衡量:一个情感倾向方向,一个是情感倾向度. 情感倾向方向也称为情感极性.在微博中,可以理解为用户对某客体表达自身观点所持的态度是支持.反对.中立,即通常所指的正面情感.负面情感.中性情感.例如"赞美"与"表扬"同为褒义词,表达正面情感,而"龌龊"与"丑陋"就是贬义词,表达负面情感. 情感倾向度是指主体对客体表达正面情感

自然语言交流系统 phxnet团队 创新实训 项目博客 (十三)

对我们项目中的关键技术实现进行总结: 一.3DMax关键技术实现 1.一下的关于3DMax中对于人物的设计和操作均需要在对3DMax基础知识熟练掌握的情况下进行的. 2. 骨骼架设:首先对导入到3DMax中的人物模型进行架设骨骼,首先,先加载一个人,锁定住,别让他乱动.用biped工具建立一个基本骨骼--可以从脚部位置往上拖拽鼠标来建立.在运动命令面板,点biped卷展栏的 figure mode在各视图中,使用旋转缩放位移的方式,调整骨骼的位置与模型的位置,让二者对齐. PS: 1双击骨骼,可

自然语言交流系统 phxnet团队 创新实训 项目博客 (六)

从你进入软件开始,你就建立了和服务器的联系.这是一段和服务器的长连接,直到你退出此软件. 2D文字聊天界面大致实现了文字输入.发送消息.接收消息.你可以通过点击按钮让机器人开启聊天模式或者学习模式.又或是进入3D语音聊天界面或者退出.在assets文件夹下导入NGUI(使用的是3.6.8版本的.unitypackage)包,点击按钮时有声音和透明度.阴影的变化,通过给按钮添加声音.....这样的组件,使得用户体验得到提高,每当点击发送按钮实例化一个prefab呈现在聊天对话框中,你可以看见你发送

自然语言交流系统 phxnet团队 创新实训 项目博客 (九)

项目技术总结: VoiceToText的具体使用方法: 语音转文本部分是调用的科大讯飞的在线语音,它的激发方式是按键,通过按钮触发开启安卓设备的录音,此部分需要在源码中写入关于安卓权限的要求,来调用安卓的录音权限,当按钮被激发,则开始进入语音录制阶段,将麦克风所录下的语音实时的传给云端的科大讯飞服务器.. 从声音之中得到文本: public void GetWordFromVoice() { boolean isShowDialog = mSharedPreferences.getBoolean

自然语言交流系统 phxnet团队 创新实训 项目博客 (七)

在本项目中使用到的"语音转文本"的技术总结: 语音转文本部分是调用的科大讯飞的在线语音,它的激发方式是按键,通过按钮触发开启安卓设备的录音,此部分需要在源码中写入关于安卓权限的要求,来调用安卓的录音权限,当按钮被激发,则开始进入语音录制阶段,将麦克风所录下的语音实时的传给云端的科大讯飞服务器.. 从声音之中得到文本: public void GetWordFromVoice() { boolean isShowDialog = mSharedPreferences.getBoolean

自然语言交流系统 phxnet团队 创新实训 项目博客 (八)

在本项目中使用到的"文本转语音"的技术总结: 文本转语音,使用的是科大讯飞的接口,因为此作品之中语音包不是重点,所以语音包的转换我们统一调用的科大讯飞的语音包接口,依旧是在线的文字转语音,客户端将来自智能自然语音识别的服务器的text文本以文字的形式发送给科大讯飞的云端服务器,科大讯飞的云端服务器完成将文字转化为语音的步骤,再将语音实时的传送回来,由客户端将语音读出,此处需要申请客户端(安卓)的扬声器的权限,由扬声器将传回的语音读出. 有关的安卓的权限的要求: <!-- 讯飞语音

自然语言交流系统 phxnet团队 创新实训 项目博客 (十一)

神经网络的计算过程 神经网络结构如下图所示,最左边的是输入层,最右边的是输出层,中间是多个隐含层,隐含层和输出层的每个神经节点,都是由上一层节点乘以其权重累加得到,标上"+1"的圆圈为截距项b,对输入层外每个节点:Y=w0*x0+w1*x1+-+wn*xn+b,由此我们可以知道神经网络相当于一个多层逻辑回归的结构. (图片来自UFLDL Tutorial) 算法计算过程:输入层开始,从左往右计算,逐层往前直到输出层产生结果.如果结果值和目标值有差距,再从右往左算,逐层向后计算每个节点的

自然语言交流系统 phxnet团队 创新实训 项目博客 (十)

关于本项目中使用到的庖丁分词的总结: Paoding 详细介绍 庖丁中文分词库是一个使用Java开发的,可结合到Lucene应用中的,为互联网.企业内部网使用的中文搜索引擎分词组件.Paoding填补了国内中文分词方面开源组件的空白,致力于此并希翼成为互联网网站首选的中文分词开源组件. Paoding中文分词追求分词的高效率和用户良好体验. Paoding's Knives 中文分词具有极 高效率 和 高扩展性 .引入隐喻,采用完全的面向对象设计,构思先进. 高效率:在PIII 1G内存个人机器