这是一个可以回答游戏《三国志11》著名mod《血色衣冠》中人物、城池、势力等情况的对话机器人。其基于Rasa,并辅以paddlespeech。实现可语音与机器人沟通。 目前,这个机器人刚刚出生,其很多功能不全,且有些问题回答不了,一步步完善。
这是一个暂未充分训练,但却相对完整的对话机器人:
-
其主本基于Rasa 3.0,Rasa可实现任务型(Task Oriented)对话。
-
此对话机器人可以实现基KG的KBQA形式的对话系系统。即血色衣冠中的人物、城池、势力等属性与关系信息,经处理存储于图数据库neo4j中。
-
闲聊实现基于CDial-GPT。
-
对话机器人,需要听、说,即机器人可与人交流, 此处主要基于paddlespeech 实现, paddlespeecq负责语音识别(Automatic Speech Recognition, ASR) 与语音生成(Text To Speech,TTS),另外也基于pyaudio与auditok实现语音端点检测(Voice Activity Detection, VAD)。
- rasa 3.0
- transformers
- paddlespeech (最好源码安装或hard模式)
- 其他requirements.txt要求模块
尝试与此机器人交流,首先需要训练rasa模型,数据已经做处理, 可以直接训练。
rasa train
模型训练结束后,需要将数据放进neo4j当中(此步不依赖于上步训练,故可以提前执行)。
sudo neo4j start #如果启动不了,加sudo试下
python process_raw_data/process_forces.py # 将处理好的数插入neo4j中
rasa run --enable-api --debug #--debug 表调试模型
用于处理定制的机器人动作。
rasa run actions
paddlespeech_server start --config_file ./conf/tts_online_application.yaml
paddlespeech_server start --config_file conf/ws_conformer_application.yaml
paddlespeech_server start --config_file conf/punc_application.yaml
python interact.py
注: 以上最好者分别在当前目录下启动新的terminal 窗口。
以下功能基本上实现了图谱查询功能,bot可回答一些简单的问题,但暂不能回答关系性问题如“比较”,“双条件查询”等。
- 查询武将、城池与势力等单体的属性,总体情况
- 武将各属性: 如诸葛亮的出生地在哪,张飞的武力是多少, 陈宫的智力有80吗, 关于的枪兵能力怎么样, 刘备的特技是什么等
- 城池各属性: 洛阳的武将都有谁, 开封有多少钱, 与长安相邻的城市有哪些等
- 势力各属性: 李渊势力有多少武将, 刘邦的军师是谁,赵匡胤有多少个城池
- 查询总体情况:
- 姓刘的都有谁
- 成吉思汗哪个属性最弱
- 司马懿的哪个兵种最强
- 金钱超过8000的都有哪些城市、势力
- 武力超过80的都有谁
- 当前还有几个势力
- 哪个势力钱最多
- 哪个城市最富有
- 哪里马最多
- 长安是谁的势力范围
- 双条件查询:
- 曹操手下姓张的有谁
- 朱元璋手下政治最高的是谁
- 谁的统帅与武力都超过80?
- 出生在洛阳的人中,谁的智力最高
- 秦的城池中,哪个最穷?
- 比较:
- 关羽与赵云谁的武力高;
- 徐达的枪兵有李世民的厉害吗
- 洛阳与寿春比,谁的马匹更多
- 刘备与刘邦比谁的城多?
- 梓潼相邻城的数量有没有江夏的多
- 最短路径:
- 从襄阳到柴桑需要经过几个城市