⚠申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址。 全文共计6243字,阅读大概需要3分钟
🌈更多学习内容, 欢迎👏关注👀【文末】我的个人微信公众号:不懂开发的程序猿
个人网站:https://jerry-jy.co/❗❗❗知识付费,🈲止白嫖,有需要请后台私信或【文末】个人微信公众号联系我
搭建一个简易对话机器人🤖
搭建一个简易对话机器人🤖
一、任务需求
创建一个简单的对话机器人,当检测到我们说出特定语句时,机器人会回应预设的语句。
我们希望机器人能实现以下功能:
- 当我们说’见到你很高兴’时,机器人会说’我也很高兴’
- 当我们说’我爱你’时,机器人会说’我也爱你呀’
- 当机器人没有检测到特定语句时,会说’对不起,我没有听清楚’
要求:创建一个能实现简单对话的机器人。
二、任务目标
1、我们输入一段语音
2、机器人获取语音,将其做为输入
3、机器人做语音识别,将语音转化为文字
4、机器人检测到特定句子时,会返回特定文字
5、机器人将返回文字合成为语音
三、任务环境
1、jupyter开发环境
2、python3.6
3、tensorflow2.4
四、任务实施过程
1、创建对话库(字典)
首先创建语句字典,用于存储机器人要检测的语句
chatbox = {‘很高兴见到你’:‘谢谢,我也很高兴’,‘我爱你’:‘我也爱你呀’}
当机器人检测到特定语句时,可以通过如下方式返回输出值
chatbox.get(‘我爱你’,‘对不起,我没有听清楚’)
‘我也爱你呀’
这样,当机器人检测不到特定语句时,可以返回’对不起,我没有听清楚’
‘对不起,我没有听清楚’
2、实现文本转语音(TTS)
为了避免硬件设备的问题(例如没有声卡),这里我们封装了一个自定义的语音合成工具tf_tts
。
自定义TTS的优点是合成效果较好,不依赖于声卡,缺点就是速度较慢。
如果有硬件设备支持,可以使用gtts等工具进行语音合成,速度较快
我们将该工具存放在'/home/jovyan/dependences/'
目录下的utils.py
中
因此首先需要将该路径添加到系统变量当中,这样utils
才能被顺利import
进来
import sys
sys.path.append('/home/jovyan/dependences/')
from utils import tf_tts
尝试转换两个语句试试,首先转换一段中文
import warnings
warnings.filterwarnings('ignore')
test_audio = tf_tts('你爱我,我爱你,蜜雪冰城甜蜜蜜')
phoneme seq: sil n i3 #0 ^ ai4 #0 ^ uo3 #0 ^ uo3 #0 ^ ai4 #0 n i3 #0 m i4 #0 x ve3 #0 b ing1 #0 ch eng2 #0 t ian2 #0 m i4 #0 m i4 sil
播放出来听一听
import IPython.display as ipd
ipd.Audio(test_audio, rate=24000)
再转换一段英文试试