基于百度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 ...
随机推荐
- loj#6363. 「地底蔷薇」(拉格朗日反演+多项式全家桶)
题面 传送门 题解 肝了一个下午--我老是忘了拉格朗日反演计算的时候多项式要除以一个\(x\)--结果看它推倒简直一脸懵逼-- 做这题首先你得知道拉格朗日反演是个什么东西->这里 请坐稳,接下来 ...
- VS报错:DEBUG Assertion Failed!
使用vs2010时,遇到如下错误 然后点击继续后: 点击终止: 观察变量: 根据提示发现,有可能是断点问题,于是猜想可能是指针的错误. google发现,这种错误可能是由于指针的释放跨越了模块.比如我 ...
- [Oracle入门级]知识概况
oracle各个版本间的主要技术更新 oracle 增加数据库创建和存储对象 oracle 8i 整体性能提升 oracle9i 实施应用集群 oracle 10g 支持网格计算 oracle 11g ...
- node mysql问题:Client does not support authentication protocol requested by server; consider upgrading MySQL client!
node后台 mysql处理模块(版本:2.16.0) 执行connect方法时报错: Client does not support authentication protocol requeste ...
- kuangbin专题十六 KMP&&扩展KMP POJ2752 Seek the Name, Seek the Fame
The little cat is so famous, that many couples tramp over hill and dale to Byteland, and asked the l ...
- kuangbin专题七 POJ3264 Balanced Lineup (线段树最大最小)
For the daily milking, Farmer John's N cows (1 ≤ N ≤ 50,000) always line up in the same order. One d ...
- python 中文路径问题
Python直接读取中文路径的文件时失败,可做如下处理: inpath = 'D:/work/yuanxx/在线导航/驾车导航/walk_log/20130619_172355.txt' uipath ...
- git push fatal: HttpRequestException encountered
原因: github禁用了TLS1.0/1.1协议 截至2018年2月22日,GitHub禁用了对弱加密的支持,这意味着许多用户会突然发现自己无法使用Git for Windows进行身份验证(影响版 ...
- P1110 [ZJOI2007]报表统计 (multiset)
[题目链接] https://www.luogu.org/problemnew/show/P1110 有以下三种操作: INSERT i k:在原数列的第i个元素后面添加一个新元素k:如果原数列的第i ...
- git学习中遇到的疑难杂症
GIT仓库如何恢复到前一次提交 一.通过使用Git版本恢复命令reset,可以回退版本 reset命令有3种方式: 1.git reset –mixed:此为默认方式,不带任何参数的git r ...