NO IMAGE

簡單“智慧”聊天機器人Python實現


簡介

各位看到這個標題先不要太期待這個聊天機器人能夠有多好的表現,智慧我是加了雙引號的哦。(不想看廢話的話直接跳,<0-0>)

現在人工智慧的發展不可謂之不快,於是出現了各種各樣智慧互動機器人,但是很多人和他們聊聊就知道是不是真的所謂的“智慧”。如果有一天,我們和一個聊天機器人聊天就像和人聊天一樣的話,不知道是該高興還是擔憂。突然想起了之前在圍棋界的人機大戰,當時有人就說“Alphago贏了,我們倒是不用擔心,值得擔心的是它會故意輸”。

好了廢話就一段,現在開始簡單的介紹一下,如何用python來實現一個簡單的聊天機器人。首先得裝個python是吧,然後得稍微會一點點python的語法是吧。……

當然我無法寫出能直接和人聊天的機器人,這裡的聊天機器人是呼叫了圖靈機器人的api介面 http://www.tuling123.com/

關於整個程式的思路就是:

  1. 輸入你的文字
  2. 呼叫圖靈機器人的api,獲取機器人的迴應
  3. 將回應中的文字,通過百度語音合成的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的語音識別功能,這樣就可以實現直接的人機對話。有興趣的朋友也可以試一下。