离线聊天机器人

聊天机器人

一、语音识别

1、libai3/masr

MASR是一个基于端到端的深度神经网络开箱即用中文普通话语音识别工具。

1.1使用docker安装

docker使用起来就像虚拟机一样,同时有着原生的性能。使用docker来运行masr非常方便。

在虚拟机中docker部署时产生了一系列的问题,内存不足,failed language path,于是安装在了服务器上。

已经pull了libai3/masr-env:latest,也上传了masr文件夹,其中的lm(百度的语言模型),pretrained(预训练模型),test.wav(测试音频,内容是你好很高兴认识你),均已经上传(tips:weather.wav是另一个测试,内容是北京的天气情况,在windows测试时安装了依赖requirement.txt,运行需要torch,所以要在conda环境运行);

 

 

 

 

 

 

参考链接:

Github项目:https://github.com/libai3/masr

ctcdecode安装:

https://blog.csdn.net/u011550545/article/details/87926995

其他语音识别的项目:(有很多项目,如果masr无法达到效果进行尝试,masr在windows环境安装后没有导入语言模型可以运行,但是音同字不同比较多)

https://www.csdn.net/gather_2d/MtTaggxsMDIzNy1ibG9n.html

 

 

 

 

 

 

二、机器人聊天

1.chatterbot

一个未经训练的ChatterBot机器人,并没有与用户交谈所需的知识。每当用户输入一句话,机器人将存下它,同时也存下答复的句子。 随着机器人接受的输入的增加,它能够回答的问题的数量和准确度都会相应提升.程序是如何响应用户输入的呢?首先从已知句子中匹配出与用户输入最相近的句子(如何衡量相近, 大家可以想想),之后找到最有可能的回复,那么如何得出最有可能的回复呢?由所有和机器交流过的人们,对这个输入问题(匹配过的)的各个回答的频率决定

2安装

pip install chatterbot

pip install --index-url https://pypi.douban.com/simple chatterbot

使用豆瓣源进行加速

刚开始在虚拟机安装,解决其他错误后用以上方法安装最后killed,内存不够。所以选择安装到服务器,在服务器10.0.180.255安装成功,但是服务器环境为anaconda下的python3.7,pip查看安装成功,conda下的python3.7仍然无法应用

参考链接:

https://blog.just4fun.site/create-a-smart-chat-bot.html

 

在windows环境安装测,出现

ModuleNotFoundError: No module named 'chatterbot_corpus'

Pip install chatterbot corpus可以解决这个问题

当运行chatbot.set_trainer(ChatterBotCorpusTrainer)时

AttributeError: 'ChatBot' object has no attribute 'set_trainer'

没有解决

之后发现是参考版本落后,现在是1.0版本,参考github的chatterbot项目例子:

https://github.com/gunthercox/ChatterBot

 

 

解决win10环境下python3无法下载nltk_data的问题

https://www.jianshu.com/p/bc8209efdce8

 

最后windows下可以运行,中英文都可以,linux环境应该也可以,pip的环境和conda的环境要区分,还没想到方法,conda似乎无法下载chatterbot,pip下载后不在conda环境里

成功对话的截图

 

 

 

 

三、语音合成

1.ekho

TTS技术,TTS是Text To Speech的缩写,即“从文本到语音”。它将计算机自己产生的、或外部输入的文字信息转变为可以听得懂的、流利的汉语口语(或者其他语言语音)输出的技术,隶属于语音合成(SpeechSynthesis)。

 Ekho(余音)是一个免费、开源的中文语音合成(TTS)软件。它目前支持粤语、普通话(国语)、广东台山话、诏安客语、藏语、雅言(中国古代通用语)和韩语(试验中),英语则通过eSpeak或Festival(可以英文发音)间接实现。Ekho支持Linux、Window和Android平台。

2.ekho安装

xz -d ekho-7.5.tar.xz (xz解压缩)

tar -xvf ekho-7.5.tar(再用tar解压缩)

apt-get install libespeak-dev

apt-get install pulseaudio

apt-get install libpulse-ocaml-dev(安装依赖,我安装后编译仍有报错)

./configure

Make

make install

测试默认普通话

 ekho "你好"

参考链接:

https://www.cnblogs.com/yoyotl/p/8145273.html

https://www.cnblogs.com/subo_peng/p/5195478.html

https://blog.csdn.net/u014470361/article/details/84771720

 

./ configure之前总是报错,安装了上述3个包还缺少依赖,直接安装提示E:找不到包地址,最后解决办法是第三个链接的安装依赖:

sudo apt-get install libespeak-dev libsndfile1-dev libpulse-dev libncurses5-dev libestools-dev festival-dev libvorbis-dev libmp3lame-dev libdotconf-dev texinfo

 

之后便可以正常执行,经测试可以中文发音,语速较慢,在服务器部署无法发音可以选择生成音频文件,音频还可以读为二进制再转化为base64编码字符串。

正确执行的截图

 

posted @ 2019-08-21 19:22  青月杰星  阅读(2112)  评论(0编辑  收藏  举报