Web 录音
所需文件下载地址
链接:https://pan.baidu.com/s/1Dzbv8gPUZJ3T8Fe02hOJvg
提取码:zbgt
py文件
from flask import Flask, jsonify,send_file
from flask import render_template
from flask import request
from uuid import uuid4
from other import audio2text, text2audio, my_nlp app = Flask(__name__) @app.route("/")
def index():
return render_template("WebToy.html") @app.route("/upload", methods=["POST"])
def upload():
fi = request.files.get("reco")
fi_name = f"{uuid4()}.wav"
fi.save(fi_name)
text = audio2text(fi_name)
new_test = my_nlp(text)
filename = text2audio(new_test)
ret = {
"filename": filename,
"content":new_test,
"code": 0,
} return jsonify(ret)
@app.route("/get_file/<filename>")
def get_file(filename):
return send_file(filename) if __name__ == '__main__':
app.run('0.0.0.0', 9527, debug=True)
app.py
from aip import AipNlp
from aip import AipSpeech
from uuid import uuid4
import requests
import os APP_ID = ''
API_KEY = 'gBsfoHWw4pOh9n3sNhwoB853'
SECRET_KEY = '4e0WXxlTo5lMgFu45lLnO490SnnpLQLN' client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
nlp_client = AipNlp(APP_ID, API_KEY, SECRET_KEY) def get_file_content(filePath):
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):
ret = client.asr(get_file_content(filePath), 'pcm', 16000, {
'dev_pid': 1536,
}) text = ret.get("result")[0]
return text def to_tuling(text, uid):
data = {
"perception": {
"inputText": {
"text": "北京"
},
},
"userInfo": {
"apiKey": "934b6f5ee4c44370bd2daf71ed7b0b77",
"userId": ""
}
}
data["perception"]["inputText"]["text"] = text
data["userInfo"]["userId"] = uid
res = requests.post("http://openapi.tuling123.com/openapi/api/v2", json=data)
text = res.json().get('results')[0].get('values').get('text')
return text def my_nlp(text):
if nlp_client.simnet(text, "你叫什么名字").get('score') >= 0.58:
a = '我叫人工智障'
return a if nlp_client.simnet(text, "你今年几岁了").get('score') >= 0.75:
a = '永远18岁'
return a
a = to_tuling(text, 'open123')
return a def text2audio(text):
result = client.synthesis(text, 'zh', 1, {
'vol': 5,
'spd': 4,
'pit': 7,
'per': 4,
})
filename = f"{uuid4()}.mp3"
# 识别正确返回语音二进制 错误则返回dict 参照下面错误码
if not isinstance(result, dict):
with open(filename, 'wb') as f:
f.write(result)
return filename
other.py
Web 录音的更多相关文章
- python 全栈开发,Day123(图灵机器人,web录音实现自动化交互问答)
昨日内容回顾 . 百度ai开放平台 . AipSpeech技术,语言合成,语言识别 . Nlp技术,短文本相似度 . 实现一个简单的问答机器人 . 语言识别 ffmpeg (目前所有音乐,视频领域,这 ...
- 图灵机器人,web录音实现自动化交互问答
一.图灵机器人 介绍 图灵机器人 是以语义技术为核心驱动力的人工智能公司,致力于“让机器理解世界”,产品服务包括机器人开放平台.机器人OS和场景方案. 官方地址为: http://www.tuling ...
- web录音——上传录音文件
捕获麦克风 一. 前言 公司项目需要实现web录音,刚刚好接手此功能,由于之前未接触过,在网上找了些资料做对比 ) https://www.cnblogs.com/starcrm/p/51 ...
- HTML5网页录音和压缩,边猜边做..(附源码)
宣传一下自己的qq群: (暗号:C#交流) 欢迎喜欢C#,热爱C#,正在学习C#,准备学习C#的朋友来这里互相学习交流,共同进步 群刚建,人不多,但是都是真正热爱C#的 我也是热爱C#的 希望大家可以 ...
- pc客户端网页录音和压缩
web录音的功能,也就是怎么使用 getUserMedia 音频上传 栗子中最后返回的是Blob数据 return new Blob([dataview], { type: type }) 因为对ht ...
- 人工智能初识(百度ai)
目前的人工智能做了什么? 语音识别:小米的小爱同学,苹果的siri,微软的Cortana语音合成:小米的小爱同学,苹果的siri,微软的Cortana图像识别:交通摄像头拍违章,刷脸解锁手机等视频识别 ...
- python全栈开发day115、116-websocket、websocket原理、websocket加解密、简单问答机器人实现
1.websocket 1.websocket 与轮询 轮询: 不断向服务器发起询问,服务器还不断的回复 浪费带宽,浪费前后端资源 保证数据的实时性 长轮询: 1.客户端向服务器发起消息,服务端轮询, ...
- 巨蟒python全栈开发flask9 项目开始1
1.项目需求分析 立项:Javis&&taisen(三个月全部,先模拟出一个玩具,硬件需要周期长一些) 想法 --- 需求分析: .通过玩具与孩子实时进行沟通 .希望玩具的知识渊博 . ...
- 巨蟒python全栈开发flask7 语音识别升级版&&mongoDB
1.web简陋版玩具 首先,复制上一节课的内容,将其中的语音文件删除掉, 放入三个文件,然后,我们需要在app写入下面的内容 下图是需要修改的地方: Recorder_ok.js是一个web录音的工具 ...
随机推荐
- 解决js复制在安卓和ios兼容问题
var clipboard = new ClipboardJS('.fr', { // target: function() { // return document.querySelector('d ...
- JS学习笔记Day16
一.匀速运动 保证速度不让用户提供,将速度写到函数中 speed = target-obj.offsetLeft>0 ? 正速度 :负速度 二.缓冲运动 var speed=(target-ob ...
- vue---组件间通信
vue中比较重要的就是组件了.而组件随处可复用的特性,使得组件通信非常重要.那么组件之间通讯方式有哪些呢? 第一种:父子组件通讯: 如果是 html页面 中全局注册的组件 和 实例中局部注册的组件 H ...
- 网页三剑客之JS
1.javascrapt介绍 js概述 JavaScript是运行在浏览器端的脚步语言,JavaScript主要解决的是前端与用户交互的问题,包括使用交互与数据交互. JavaScript是浏览器解释 ...
- sprin源码解析之属性编辑器propertyEditor
目录 异常信息 造成此异常的原因 bean 配置文件 调用代码 特别说明: 异常解决 注册springt自带的属性编辑器 CustomDateEditor 控制台输出 属性编辑器是何时并如何被注册到s ...
- Kafka实战分析(一)- 设计、部署规划及其调优
1. Kafka概要设计 kafka在设计之初就需要考虑以下4个方面的问题: 吞吐量/延时 消息持久化 负载均衡和故障转移 伸缩性 1.1 吞吐量/延时 对于任何一个消息引擎而言,吞吐量都是至关重要的 ...
- Collections.unmodifiableMap(Map map)
public static <K,V> Map<K,V> unmodifiableMap(Map<? extends K,? extends V> m)返回指定映射 ...
- sql 发送邮件
一.启用Database Mail XPs功能. 查看Database Mail XPs功能是否打开,从返回结果来看,value为0说明没有打开,注意SQL Mail XPs是SQL Server早期 ...
- (二)校园信息通微信小程序从后台获取首页的数据笔记
在从后台获取数据之前,需要先搭建好本地服务器的环境. 确保Apache,MySql处于开启状态.下图为Apache,MySql处于开启时状态 然后进入后台管理平台进行字段和列表的定义 然后在后台添加数 ...
- 利用pyinstaller 打包Python文件
1.下载安装pyinstaller模块 cmd 命令: pip install pyinstaller cmd命令: pip list 查看自己安装的模块 2.建议把要大包的Python文件单独放到新 ...