用Python3调用百度AI和图灵机器人实现一个智能(bushi)AI聊天机器人

题目看起来高大上,但其实这只是假象。关键是要理清思路和流程,掌握了这个之后,整个项目基本就简化成了“傻瓜”项目,对编程能力的要求较低。

思路及流程

一定要搞清这个流程,不要被绕晕。
在这里插入图片描述

完整代码

其中,第2步的百度AI语音识别API参数、第3步的图灵机器人参数必须修改成自己各自账号的,其他参数若想修改的话,先去百度AI开放平台和图灵机器人官网阅读技术文档。

from aip import AipSpeech
import requests
import json
import speech_recognition as sr
import win32com.client

# 1、人类说出问题,生成问题音频
speaker = win32com.client.Dispatch("SAPI.SpVoice")


def my_record(rate=16000):
    r = sr.Recognizer()
    with sr.Microphone(sample_rate=rate) as source:
        print("please say something")
        audio = r.listen(source)

    with open("voices.wav", "wb") as f:
        f.write(audio
  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
以下是一份基于树莓派的通过免驱动USB麦克风以及调用百度语音助手和图灵机器人回复的Python程序,注意正确的缩进: ```python import requests import json import time import wave import pyaudio import os # 百度语音识别API baidu_url = 'http://vop.baidu.com/server_api' # 百度语音识别API key baidu_api_key = 'YOUR_API_KEY' # 百度语音识别API secret baidu_secret_key = 'YOUR_SECRET_KEY' # 图灵机器人API key tuling_api_key = 'YOUR_API_KEY' # 录音参数 CHUNK = 1024 FORMAT = pyaudio.paInt16 CHANNELS = 1 RATE = 16000 RECORD_SECONDS = 5 # 初始化PyAudio audio = pyaudio.PyAudio() # 打开录音流 stream = audio.open(format=FORMAT, channels=CHANNELS, rate=RATE, input=True, frames_per_buffer=CHUNK) # 读取录音数据 def record_audio(): frames = [] for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)): data = stream.read(CHUNK) frames.append(data) return b''.join(frames) # 识别语音,返回文字结果 def speech_to_text(audio_data): # 配置请求头 headers = { 'Content-Type': 'audio/wav;rate=16000', 'Content-Length': len(audio_data) } # 配置请求参数 params = { 'format': 'wav', 'rate': 16000, 'dev_pid': 1536, 'cuid': 'baidu_speech_demo', 'token': 'baidu_token' } # 配置认证参数 token_url = 'https://openapi.baidu.com/oauth/2.0/token' token_data = { 'grant_type': 'client_credentials', 'client_id': baidu_api_key, 'client_secret': baidu_secret_key } # 获取access_token response = requests.post(token_url, data=token_data) token = json.loads(response.text)['access_token'] params['token'] = token # 发送识别请求 response = requests.post(baidu_url, headers=headers, params=params, data=audio_data) result = json.loads(response.text) # 解析结果 if 'result' in result.keys(): return result['result'][0] else: return '' # 图灵机器人自动回复 def tuling_reply(text): # 配置请求参数 data = { 'key': tuling_api_key, 'info': text, 'userid': '12345678' } # 发送请求 response = requests.post('http://www.tuling123.com/openapi/api', data=data) result = json.loads(response.text) # 解析结果 if result['code'] == 100000: return result['text'] else: return '对不起,我不知道该说什么' # 主程序 while True: # 开始录音 print('开始录音...') audio_data = record_audio() # 语音识别 print('识别中...') text = speech_to_text(audio_data) print('你说:', text) # 图灵机器人回复 reply = tuling_reply(text) print('机器人回复:', reply) # 播放回复 os.system('espeak -vzh "{}"'.format(reply)) # 等待一段时间 time.sleep(1) ``` 以上程序使用PyAudio库录制音频,调用百度语音识别API将音频转换为文字,然后调用图灵机器人API进行自动回复,并使用espeak库播放回复。注意需要在百度图灵机器人官网上注册并获取API key才能运行程序。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值