JLing
JLing是一个可以工作在Linux的自定义中文语音对话机器人
(csdn :https://blog.csdn.net/weixin_40490238)
(github: https://github.com/Kingzhoudk/JLing)
想看明白这块代码,先看看aiml的简介之类,推荐网址:https://www.yiibai.com/aiml/aiml_introduction.html
AIML是实现本项目自定义指令的主要技术
先看一个的xml文件:
<aiml version="0.9.1" encoding="UTF-8">
<category>
<pattern>你是谁</pattern>
<template>我是zhoudk创造的JLing管家机器人。</template>
</category>
<category>
<pattern>你叫什么</pattern>
<template>
<random>
<li>我叫精灵,你叫什么名字?</li>
<li>请叫我小精灵</li>
<li>你不知道么,我是精灵。</li>
</random>
</template>
</category>
<category>
<pattern>你有女朋友吗</pattern>
<template>我还小,师父不让找!</template>
</category>
<category>
<pattern>你真笨</pattern>
<template>我可是精灵呢,只不过是业务不熟,等我请教请教我师父。</template>
</category>
</aiml>
- 因为我已经在Speak.py中把所有的对话都去除标点处理,因此对话中不需要加标点
其次是JLing.xml:
<aiml version="0.9.1" encoding="UTF-8">
<!-- Category是一个自动的AIML单元 -->
<category>
<!-- Pattern用来匹配用户输入 -->
<!-- 如果用户输入 "LOAD AIML B" -->
<pattern>LOAD AIML B</pattern>
<!-- Template是模式的响应 -->
<!-- 这里学习一个aiml文件 -->
<template>
<learn>chat.aiml</learn>
<learn>zhoudk.aiml</learn>
<learn>corpus1000.aiml</learn>
<learn>learn.aiml</learn>
<learn>maimeng.aiml</learn>
<learn>property.aiml</learn>
<learn>rude.aiml</learn>
<learn>sex.aiml</learn>
<!-- 你可以在这里添加更多的aiml文件 -->
<!--<learn>chat.aiml</learn>-->
</template>
</category>
</aiml>
- 看注释就好
最后是加载形成大脑文件的demo.py:
import aiml
import sys
import os
kernel = aiml.Kernel()
if os.path.isfile("JLing_chat.brn"):
kernel.bootstrap(brainFile="JLing_chat.brn")
else:
kernel.bootstrap(learnFiles="JLing.xml", commands="load aiml b")
kernel.saveBrain("JLing.brn")
while True:
print(kernel.respond(input("Enter your message >> ")))
- 在命令行输入自己存的对话,测试是否成功形成大脑文件JLing_chat.brn