准备以下模块中的函数

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 实现的网站语音智能问答的更多相关文章

  1. 基于百度AI开放平台的人脸识别及语音合成

    基于百度AI的人脸识别及语音合成课题 课题需求 (1)人脸识别 在Web界面上传人的照片,后台使用Java技术接收图片,然后对图片进行解码,调用云平台接口识别人脸特征,接收平台返回的人员年龄.性别.颜 ...

  2. python基于百度AI开发文字识别

    很多场景都会用到文字识别,比如app或者网站里都会上传身份证等证件以及财务系统识别报销证件等等 第一步,你需要去百度AI里去注册一个账号,然后新建一个文字识别的应用 然后你将得到一个API Key 和 ...

  3. 使用百度ai接口加图灵机器人完成简单web版语音对话

    app文件 from flask import Flask, request, render_template, jsonify, send_file from uuid import uuid4 i ...

  4. Python人工智能-基于百度AI接口

    参考百度AI官网:http://ai.baidu.com/ 准备工作: 支持Python版本:2.7.+ ,3.+ 安装使用Python SDK有如下方式 >如果已经安装了pip,执行 pip ...

  5. 基于百度AI人脸识别技术的Demo

    编写demo之前首先浏览官方API:http://ai.baidu.com/docs#/Face-API/top 下面是源码: package com.examsafety.test; import ...

  6. 基于百度AI实现 车牌识别

    前言 目前百度的AI接口相对完善,对于文字识别类的操作还需要开发者一一去尝试,去评估这效果到底是怎么的. 文字识别的接口相对简单,官方提供的SDK也集成很好,笔者只是在这上面做了一些前期性的功能数据校 ...

  7. 基于Flask和百度AI实现与机器人对话

    实现对话机器人主要有个步骤 : 一.前端收集语音传入后端 二.后端基于百度AI接口进行语音识别,转换成文字 三.对文字进行自定义验证或通过图灵端口进行处理,生成回复内容 四.将文字通过百度AI接口合成 ...

  8. 基于百度API+Flask实现网页版和图灵机器聊天

    开发前准备 调用百度和图灵机器人相关的 参考链接:www.cnblogs.com/changtao/p/10596385.html 下载一个网页录音的js插件 链接:https://pan.baidu ...

  9. Flask&&人工智能AI -- 6 人工智能初识,百度AI,图灵机器人

    一.人工智能初识,百度AI的创建与应用 参考连接:https://www.cnblogs.com/xiao987334176/p/9620113.html 1. 百度ai开放平台 2. AipSpee ...

随机推荐

  1. winform datagridview不显示滚动条

    datagridview 数据行数已经超出表格显示范围了,为什么右侧没有滚动条呢? 这个其实不是DataGridView的问题,实际上滚动条是出现了的,但被其他东西挡住了.如果网格是放在panel上的 ...

  2. 防雪崩利器:熔断器 Hystrix 的原理与使用(转)

    https://segmentfault.com/a/1190000005988895 前言 分布式系统中经常会出现某个基础服务不可用造成整个系统不可用的情况, 这种现象被称为服务雪崩效应. 为了应对 ...

  3. phaser小游戏框架学习(一)

    这两天由于项目的需要,所以简单学了一下phaser框架. 官网:http://phaser.io/ 还有一个phaser小站,是中文的网站,但是内容不如英文文档全,大家也可以去看这个网站,需要查阅AP ...

  4. 关于如何在Windows下测交互题

    这里的交互题指的NOI风格的交互题,即交互库 codeforces风格的交互题...只能自己实现评测插件了 使用Cena,Lemon没有附加文件功能不能评测交互题 在编译选项g++编译命令源文件中加入 ...

  5. Centos7安装MySQL8.0

    请到这个地址看:https://www.cnblogs.com/kevingrace/p/10482469.html Centos7安装MySQL8.0 - 操作手册 一.yum安装方式: 卸载之前版 ...

  6. Winscp使用密钥登录

    Winscp使用密钥登录 背景:通常我们使用winscp通过密码认证去连接服务器进行文件的ftp操作,但是为了安全,我们服务器上经常会禁止使用密码连接,而改用密钥认证.而且服务器上经常会禁止root用 ...

  7. 求(3+开根5) N次方的整数部分最后3位

    求(3+开根5) N次方的整数部分最后3位,请补足前导零 . 分析:首先(1)=(3+开根5) N次方的展开为 an + bn * 根号5 的形式   . 同时也有 (2)=(3-开根5) N次方 = ...

  8. Ubuntu14上安装Mongo3.2

    1. 安装 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys D68FA50FEA312927 echo "deb ...

  9. python模块之HTMLParser简介

    html.parser是一个非常简单和实用的库,它的核心是HTMLParser类. 工作的流程是:当你feed给它一个类似HTML格式的字符串时,它会调用goahead方法向前迭代各个标签,并调用对应 ...

  10. Python练习六十:网页分析,找出里面的正文与链接

    网页分析,找出里面的正文与链接 代码如下: from urllib import request from bs4 import BeautifulSoup request = request.url ...