调用图灵机器人api2.0

json提取数据 https://blog.youkuaiyun.com/qq_37581708/article/details/72367803




通过post方法请求

package robot;

import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;

import org.apache.http.HttpEntity;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ByteArrayEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.CharArrayBuffer;
import org.apache.http.util.EntityUtils;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class HttpRobot {

	/**
	 * 
以下是一份基于树莓派的通过免驱动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、付费专栏及课程。

余额充值