python实现简单对话机器人_简单“智能”聊天机器人Python实现

简单“智能”聊天机器人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()

实现效果

sg_trans.gif

可以看出来,这个机器人能够实现一些简单的聊天

同时也可以获取一些小故事、笑话、查询一下天气什么的,具体的功能还是去其官网查看。

sg_trans.gif

我这里默认的是用网易云音乐播放声音

sg_trans.gif

当然这个程序是可以把机器人回复的信息播放出来的,如果在改进一下的话可以将我们的语音输入,调用百度AI的语音识别功能,这样就可以实现直接的人机对话。有兴趣的朋友也可以试一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值