简单“智能”聊天机器人Python实现
简介
各位看到这个标题先不要太期待这个聊天机器人能够有多好的表现,智能我是加了双引号的哦。(不想看废话的话直接跳,<0-0>)
现在人工智能的发展不可谓之不快,于是出现了各种各样智能交互机器人,但是很多人和他们聊聊就知道是不是真的所谓的“智能”。如果有一天,我们和一个聊天机器人聊天就像和人聊天一样的话,不知道是该高兴还是担忧。突然想起了之前在围棋界的人机大战,当时有人就说“Alphago赢了,我们倒是不用担心,值得担心的是它会故意输”。
好了废话就一段,现在开始简单的介绍一下,如何用python来实现一个简单的聊天机器人。首先得装个python是吧,然后得稍微会一点点python的语法是吧。……
当然我无法写出能直接和人聊天的机器人,这里的聊天机器人是调用了图灵机器人的api接口 http://www.tuling123.com/
关于整个程序的思路就是:
- 输入你的文字
- 调用图灵机器人的api,获取机器人的回应
- 将回应中的文字,通过百度语音合成的api合成语音
Python_Code
#!/usr/bin/env python
# _*_ coding:utf-8 _*_
#
# @Version : 1.0
# @Time : 2018/3/22
# @Author : 圈圈烃
# @File : TRobot.py
#
import requests
import json
import os
from aip import AipSpeech
def communication(info):
"""图灵机器人接入"""
key = 'yourkey' # 这里的yourkey需要去图灵机器人官网免费申请
api = 'http://www.tuling123.com/openapi/api?key='+key+'&info='+info
res = requests.get(api)
dict_json = json.loads(res.text)
if dict_json['code'] == 100000: # 100000为图灵机器人api返回的参数
return (dict_json["text"])
elif dict_json['code'] == 200000:
return (dict_json["text"] + dict_json['url'])
def Robot_Speech(data):
""" 百度AI语音合成"""
APP_ID = 'your'
API_KEY = 'your'
SECRET_KEY = 'your '
# 上面三个参数则需要去百度AI官网免费申请
client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
# 合成语音类型参数,详见百度AI
result = client.synthesis(data, 'zh', 1, {
'vol': 10, 'spd':4, 'per':'4'
})
# 识别正确返回语音二进制
if not isinstance(result, dict):
with open('auido.mp3', 'wb') as f:
f.write(result)
def main():
while True:
data = input('我:')
if data == 'quit':
print('牛皮哄哄:好了,我不和你聊了')q
break
else:
voice = communication(data)
print('牛皮哄哄:'+voice)
Robot_Speech(voice)
os.system('auido.mp3') #这里的语音则是使用系统默认的播放器播放
if __name__ == '__main__':
main()
实现效果
可以看出来,这个机器人能够实现一些简单的聊天
同时也可以获取一些小故事、笑话、查询一下天气什么的,具体的功能还是去其官网查看。
我这里默认的是用网易云音乐播放声音
当然这个程序是可以把机器人回复的信息播放出来的,如果在改进一下的话可以将我们的语音输入,调用百度AI的语音识别功能,这样就可以实现直接的人机对话。有兴趣的朋友也可以试一下。