基于百度ai,图灵机器人,Flask 实现的网站语音智能问答
准备以下模块中的函数
from aip import AipSpeech
import time
import os
import requests
APP_ID = '15420654'
API_KEY = 'lHlfGfZyH3pDXqKxQnjZtyBl'
SECRET_KEY = 'CLWhR7yoALWV8dFHNWaKGbuyH1cRgQpq'
client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
def get_file_content(filePath):
# 将文件转换为百度ai接口需要的pcm格式, 使用ffmpeg格式工厂
os.system(f"ffmpeg -y -i {filePath} -acodec pcm_s16le -f s16le -ac 1 -ar 16000 {filePath}.pcm")
with open(f"{filePath}.pcm", 'rb') as fp:
return fp.read()
def audio2text(filePath):
# 识别本地文件
res = client.asr(get_file_content(filePath), 'pcm', 16000, {
'dev_pid':1536,
})
return res.get('result')[0]
def text2audio(text):
# 将文本语音合成音频
filename = f"{time.time()}.mp3"
result = client.synthesis(text, 'zh', 1, {
'vol': 5,
'spd': 3,
'pit': 7,
'per': 4
})
if not isinstance(result, dict):
with open(filename, 'wb') as f:
f.write(result)
return filename
def to_tuling(text):
# 向图灵机器人接口发送转换好的文本
url = 'http://openapi.tuling123.com/openapi/api/v2'
data = {
"reqType": 0,
"perception": {
"inputText": {
"text": text
},
},
"userInfo": {
"apiKey": "8931057699874d7994145e6d8b0bab1a",
"userId": "1"
}
}
res = requests.post(url, json=data)
text = res.json().get('results')[0].get('values').get('text')
return text
Flask app############################################################
from flask import Flask, render_template, request, send_file, jsonify
import ai4
from uuid import uuid4
app = Flask(name)
@app.route('/')
def index():
return render_template('index.html')
@app.route('/ai', methods=['POST'])
def ai():
# 接收前端传送的二进制流
audio = request.files.get('record')
filename = f"{uuid4()}.wav"
audio.save(filename)
# 将二进制流音频文件,转换为text
q_text = ai4.audio2text(filename)
# 将q_text发送给图灵机器人进行回答
a_text = ai4.to_tuling(q_text)
# 将a_text答案发送给百度合成音频文件
a_file = ai4.text2audio(a_text)
return jsonify({'filename': a_file})
@app.route('/get_audio/')
def send_audio(filename):
return send_file(filename)
if name == 'main':
app.run(host='0.0.0.0', port=9527, debug=True)
基于百度ai,图灵机器人,Flask 实现的网站语音智能问答的更多相关文章
- 基于百度AI开放平台的人脸识别及语音合成
基于百度AI的人脸识别及语音合成课题 课题需求 (1)人脸识别 在Web界面上传人的照片,后台使用Java技术接收图片,然后对图片进行解码,调用云平台接口识别人脸特征,接收平台返回的人员年龄.性别.颜 ...
- python基于百度AI开发文字识别
很多场景都会用到文字识别,比如app或者网站里都会上传身份证等证件以及财务系统识别报销证件等等 第一步,你需要去百度AI里去注册一个账号,然后新建一个文字识别的应用 然后你将得到一个API Key 和 ...
- 使用百度ai接口加图灵机器人完成简单web版语音对话
app文件 from flask import Flask, request, render_template, jsonify, send_file from uuid import uuid4 i ...
- Python人工智能-基于百度AI接口
参考百度AI官网:http://ai.baidu.com/ 准备工作: 支持Python版本:2.7.+ ,3.+ 安装使用Python SDK有如下方式 >如果已经安装了pip,执行 pip ...
- 基于百度AI人脸识别技术的Demo
编写demo之前首先浏览官方API:http://ai.baidu.com/docs#/Face-API/top 下面是源码: package com.examsafety.test; import ...
- 基于百度AI实现 车牌识别
前言 目前百度的AI接口相对完善,对于文字识别类的操作还需要开发者一一去尝试,去评估这效果到底是怎么的. 文字识别的接口相对简单,官方提供的SDK也集成很好,笔者只是在这上面做了一些前期性的功能数据校 ...
- 基于Flask和百度AI实现与机器人对话
实现对话机器人主要有个步骤 : 一.前端收集语音传入后端 二.后端基于百度AI接口进行语音识别,转换成文字 三.对文字进行自定义验证或通过图灵端口进行处理,生成回复内容 四.将文字通过百度AI接口合成 ...
- 基于百度API+Flask实现网页版和图灵机器聊天
开发前准备 调用百度和图灵机器人相关的 参考链接:www.cnblogs.com/changtao/p/10596385.html 下载一个网页录音的js插件 链接:https://pan.baidu ...
- Flask&&人工智能AI -- 6 人工智能初识,百度AI,图灵机器人
一.人工智能初识,百度AI的创建与应用 参考连接:https://www.cnblogs.com/xiao987334176/p/9620113.html 1. 百度ai开放平台 2. AipSpee ...
随机推荐
- B君的第九题
B君的第九题 对于一个排列\(a_1, a_2,\dots,a_n\),如果对于一个i满足\(a_{i-1}<a_i>a_i+1\)则称i是一个极大值.我们认为\(a_0=a_{n+1}= ...
- Oracle练习(2)
有如下三张表: 销售表:SALE_FACT 工号 年月 城市 客户 销售额 C00001 201601 上海 A 1000 C00001 201601 上海 B 5000 C000 ...
- DP【洛谷P2134】 百日旅行
[洛谷P2134] 百日旅行 题目背景 重要的不是去哪里,而是和你在一起.--小红 对小明和小红来说,2014年7月29日是一个美好的日子.这一天是他们相识100天的纪念日. (小明:小红,感谢你2场 ...
- 关于如何在Windows下测交互题
这里的交互题指的NOI风格的交互题,即交互库 codeforces风格的交互题...只能自己实现评测插件了 使用Cena,Lemon没有附加文件功能不能评测交互题 在编译选项g++编译命令源文件中加入 ...
- 关于NSFetchedResultsController的一些用法
如何在iPhone等设备持久保存数据,需要用到Core Data,它能帮你快速而有效率的完成数据储存,Core Data 编程经常用到 NSFetchedResultsController这个类,刚开 ...
- 通过div实现arcgis自定义infowindow
通过给地图绑定缩放,单击和平移命令,实现在地图附加div标签,实现infowindow效果: /* *作者 扰扰 *自定义esri弹窗 *paramter Map地图对象 *paramter x *p ...
- Django forum
Django是比较有名的Python Web框架,很多著名的网站如Instagram就是用的Django.V2EX是一个界面简洁,功能丰富的论坛,最新源码尚未开源.网络上有很多模仿V2EX外观使用其它 ...
- 记录下自己安装cuda以及cudnn
之前已经装过一次了,不过没有做记录,现在又要翻一堆博客安装,长点记性,自己记录下. 环境 ubuntu16.04 python2.7 商家送过来时候已经装好了显卡驱动,所以省去了一大麻烦. 剩下的就是 ...
- 百度地图 js 调用
百度地图key 的获取 进入 http://lbsyun.baidu.com/i 登录你的账号 点击进入控制台,复制 ak 的值 <!doctype html> <html> ...
- Codeforces Beta Round #87 (Div. 2 Only)-Party(DFS找树的深度)
A company has n employees numbered from 1 to n. Each employee either has no immediate manager or exa ...