【Python语音对话机器人的实现】使用百度AI-API,图灵机器人API实现语音对话机器人的思路(附代码)

前言:人工智能,人机交互。越来越热门,人和机器之间的交互有多种方式,语音交流是海叔认为截止目前为止最简单,最有效,也最为成熟的一种方式。所以通过百度AI-API和图灵机器人的API简单的实现了人机对话交互。

工具:

1,百度AI-API(可在百度AI平台申请,其本质就是语音识别,语音合成API http://ai.baidu.com/

2,图灵机器人API(http://www.tuling123.com/

思路:录音——百度语音识别为文字——提交图灵机器人——图灵机器人返回文字——百度语音合成——播放合成文件

代码:

from aip import AipSpeech
import json
import requests as rq
import os
import playsound
import wave
from pyaudio import PyAudio,paInt16

“”” 你的 百度AI平台 APPID AK SK “””
APP_ID = ‘APP_ID’
API_KEY = ‘APP_KEY’
SECRET_KEY = ‘S_K ‘

client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
“””录音”””
framerate=16000
NUM_SAMPLES=2000
channels=1
sampwidth=2
TIME=2
def save_wave_file(filename,data):
‘’’save the date to the wavfile’’’
wf=wave.open(filename,’wb’)
wf.setnchannels(channels)
wf.setsampwidth(sampwidth)
wf.setframerate(framerate)
wf.writeframes(b””.join(data))
wf.close()

def my_record():
pa=PyAudio()
stream=pa.open(format = paInt16,channels=1,
rate=framerate,input=True,
frames_per_buffer=NUM_SAMPLES)
my_buf=[]
count=0
while count<TIME*15:#控制录音时间
string_audio_data = stream.read(NUM_SAMPLES)
my_buf.append(string_audio_data)
count+=1
print(‘.’)
os.system(‘cls’)
save_wave_file(‘01.wav’,my_buf)
stream.close()

“””录音”””
def luyin():
my_record()
print(‘over’)

“””调用百度语音识别”””

读取文件

def get_file_content(filePath):
with open(filePath, ‘rb’) as fp:
return fp.read()

识别本地文件

def shibie():
get=client.asr(get_file_content(‘01.wav’), ‘wav’, 16000, {‘lan’: ‘zh’,})
new=get[‘result’][0]
qs=new
return qs
“””图灵机器人API”””
def tuling(qs):
link=’图灵API前端’+qs+’&key=API的KEY’
get=rq.post(link)
p=get.json()
text=p[‘text’]
return text

“””调用百度语音合成”””
def hecheng(text):
result = client.synthesis(text, ‘zh’, 1, {‘vol’: 5,’per’: 4,’spd’: 4,’pit’: 6,})
if not isinstance(result, dict):
with open(‘auido.mp3’, ‘wb’) as f:
f.write(result)
def play():
filename=’auido.mp3’
playsound.playsound(filename,True)

def dell():
os.remove(‘auido.mp3’)
os.remove(‘01.wav’)

luyin()
qs=shibie()
text=tuling(qs)
hecheng(text)
play()
dell()

注意:百度相关API和图灵机器人API需要自行申请,但是图灵API每天的使用次数为1000次。百度的调用次数相对多一些。

开源地址:https://github.com/Pidbid/api-talk

参考:Python写一个录音小程序(CSDN:http://blog.csdn.net/yexiaohhjk/article/details/73132562

最让我感动的是这位作者在他的“原创声明”中这样写到:版权声明:朋友们,虽然这个世界日益浮躁起来,只要能够为了当时纯粹的梦想和感动坚持努力下去,不管其它人怎么样,我们也能够保持自己的本色走下去。

写在最后:这只是小小的练手程序,没有任何技术含量,高手勿喷。

最后,依旧奉上歌曲一首。永远年轻——海叔 2018年2月4日


【Python语音对话机器人的实现】使用百度AI-API,图灵机器人API实现语音对话机器人的思路(附代码)
https://www.wicos.me/jishu/388/
作者
Wicos
发布于
2018年2月4日
许可协议