聊天机器人
一, 语音识别
1, https://github.com/libai3 / https://github.com/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 安装:
其他语音识别的项目:(有很多项目, 如果 masr 无法达到效果进行尝试, masr 在 Windows 环境安装后没有导入语言模型可以运行, 但是音同字不同比较多)
二, 机器人聊天
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 仍然无法应用
参考链接:
在 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,Windows 和 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
./ 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 编码字符串.
正确执行的截图
来源: http://www.bubuko.com/infodetail-3164737.html