基于百度API+Flask实现网页版和图灵机器聊天
开发前准备
- 调用百度和图灵机器人相关的
- 参考链接:www.cnblogs.com/changtao/p/10596385.html
- 下载一个网页录音的js插件
- 链接:https://pan.baidu.com/s/1-dvlmwLlMzO3crZea35kiQ
- 提取码:qth0
前端开发:
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>我是玩具</title>
- </head>
- <body>
- <P><audio id="player" controls autoplay></audio></P>
- <button onclick="start_reco()">录音</button>
- <button onclick="stop_reco()">发送语音</button>
- <div id="content">
- </div>
- </body>
- <script type="text/javascript" src="/static/Recorder.js"></script>
- <script type="text/javascript" src="/static/jquery-3.3.1.min.js"></script>
- <script type="text/javascript">
- var serv = "服务器ip";
- var reco = null;
- var audio_context = new AudioContext();//音频内容对象
- navigator.getUserMedia = (navigator.getUserMedia ||
- navigator.webkitGetUserMedia ||
- navigator.mozGetUserMedia ||
- navigator.msGetUserMedia); // 做的一个兼容问题
- navigator.getUserMedia({audio: true}, create_stream, function (err) {
- console.log(err)
- });
- function create_stream(user_media) {
- var stream_input = audio_context.createMediaStreamSource(user_media);
- reco = new Recorder(stream_input);
- }
- function start_reco() {
- reco.record();
- }
- function stop_reco() {
- reco.stop();
- reco.exportWAV(function (wav_file) {
- console.log(wav_file);
- var formdata = new FormData(); // form 表单 {key:value}
- formdata.append("reco",wav_file); // form input type="file"
- $.ajax({
- url: serv + "/upload",
- type: 'post',
- processData: false,
- contentType: false,
- data: formdata,
- dataType: 'json',
- success: function (data) {
- console.log(data);
- if(data.code == 0){
- document.getElementById("player").src="拼接一个提交的地址"+data.filename;
- document.getElementById("content").innerText=data.content
- }
- }
- })
- });
- reco.clear(); // 每次执行完,清空reco容器
- }
- </script>
- </html>
提示:语音处理方法的地址:https://www.cnblogs.com/changtao/p/10596385.html
后端开发:
- from flask import Flask,request,redirect,render_template,jsonify,send_file
- from uuid import uuid4
- import audio2text
- app = Flask(__name__)
- @app.route('/')
- def index():
- return render_template('web_soon.html')
- @app.route('/upload',methods=['post'])
- def upload():
- fi = request.files.get('reco')
- fi_name = f"{uuid4()}.m4a"
- fi.save(fi_name)
- ret_sb = audio2text.speech_sb(fi_name) //语音识别的函数
- ret_npl = audio2text.my_npl(ret_sb.get('result'),'123') // 自然语言处理
- ret_hc_filename = audio2text.speech_hc(uuid4(),ret_npl) // 将自然语言处理的结果合成语音
- ret = {
- "filename":ret_hc_filename,
- "content":ret_npl,
- "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'),8600)
基于百度API+Flask实现网页版和图灵机器聊天的更多相关文章
- 百度地图热力图--批量地址转换应用(基于百度api)
需求:把外卖订餐地址做个用户分布热力图 思路分析:第一步去百度地图api开放平台找例子 http://lbsyun.baidu.com/jsdemo.htm#c1_15 首先从百度API的demo例子 ...
- WebRTC实现网页版多人视频聊天室
因为产品中要加入网页中网络会议的功能,这几天都在倒腾 WebRTC,现在分享下工作成果. 话说 WebRTC Real Time Communication 简称 RTC,是谷歌若干年前收购的一项技术 ...
- vue仿微信网页版|vue+web端聊天室|仿微信客户端vue版
一.项目介绍 基于Vue2.5.6+Vuex+vue-cli+vue-router+vue-gemini-scrollbar+swiper+elementUI等技术混合架构开发的仿微信web端聊天室— ...
- 基于百度语音识别API的Python语音识别小程序
一.功能概述 实现语音为文字,可以扩展到多种场景进行工作,这里只实现其基本的语言接收及转换功能. 在语言录入时,根据语言内容的多少与停顿时间,自动截取音频进行转换. 工作示例: 二.软件环境 操作系统 ...
- 基于.Net平台C#的微信网页版API
git上有很多类似的项目,但大多都是python和js的,为了便于.Net windows平台的使用,我重构了一个.Net版本的,已整理开源 https://github.com/leestar54/ ...
- 基于百度翻译API开发属于自己的翻译工具
你是否每天使用着网页翻译工具?你是否遇到过这种情况,上网过程中遇到一个很长的单词但是又不能复制,要开两个浏览器,一个打开百度翻译,照着另一个网页输入单词?你安装了各种翻译软件后,又删除,只因忍受不了那 ...
- 基于html5 canvas和js实现的水果忍者网页版
今天爱编程小编给大家分享一款基于html5 canvas和js实现的水果忍者网页版. <水果忍者>是一款非常受喜欢的手机游戏,刚看到新闻说<水果忍者>四周年新版要上线了.网页版 ...
- 利用百度API(JavaScript 版)实现在地图上绘制任一多边形,并判断给定经纬度是否在多边形范围内。以及两点间的测距功能
权声明:本文为博主原创文章,未经博主允许不得转载. 利用百度API(JavaScript 版)实现在地图上绘制任一多边形,并判断给定经纬度是否在多边形范围内.以及两点间的测距功能. 绘制多边形(蓝色) ...
- 微信号网页版api
Django Wechat Api djangowechatapi是基于wxpy和django制作的web应用 安装 使用pip pip install djangowechatapi 源码安装 gi ...
随机推荐
- SP11470 TTM - To the moon
嘟嘟嘟 主席树+区间修改. 以为是水题,写着写着发现区间修改标记下传会出问题,然后想了想发现以前做的只是单点修改. 那怎么办咧? 然后题解交了我标记永久化这个神奇的东西. 特别好理解,就是修改的时候直 ...
- 如何使用 IDEA 创建项目并且上传到 GitHub
在 GitHub中 注册创建账号 :https://github.com 下载安装 Git : https://git-scm.com 安装成功后打开 Git Bash,输入下列命令,设置 Git 全 ...
- P1577 切绳子
P1577 切绳子 题目描述 有N条绳子,它们的长度分别为Li.如果从它们中切割出K条长度相同的 绳子,这K条绳子每条最长能有多长?答案保留到小数点后2位. 输入输出格式 输入格式: 第一行两个整数N ...
- 软件工程(FZU2015) 赛季得分榜,第11回合(beta冲刺+SE总结)
SE_FZU目录:1 2 3 4 5 6 7 8 9 10 11 12 13 积分规则 积分制: 作业为10分制,练习为3分制:alpha30分:beta30分 团队项目分=团队得分+个人贡献分 个人 ...
- 动态链接库-Win32 DLL的说明
在实际编程时,我们可以把完成某种功能的函数放在一个动态链接库中,然后给其他程序调用. WinAPI中所有的函数都包含在3个最重要的DLL中. Kernel32.dll 它包含那些用于管理内存.进程和线 ...
- Kickstart 和 Cobbler ks.cfg文件详解
ks.cfg文件组成大致分为3段 命令段 键盘类型,语言,安装方式等系统的配置,有必选项和可选项,如果缺少某项必选项,安装时会中断并提示用户选择此项的选项 软件包段 %packages @groupn ...
- java基础3之IO
流 流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以是文件,内存,或是网络连接.类似的,当程序需要写入数据的时候,就会开启一个通向目的地的流. 流的种类 字符 ...
- python之数据类型补充、集合、深浅copy
一.内容回顾 代码块: 一个函数,一个模块,一个类,一个文件,交互模式下,每一行就是一个代码块. is == id id()查询对象的内存地址 == 比较的是两边的数值. is 比较的是两边的内存地址 ...
- python之常用模块二(hashlib logging configparser)
摘要:hashlib ***** logging ***** configparser * 一.hashlib模块 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 摘要算法 ...
- AutoMapper入门使用
AutoMapper入门使用 在应用开发的过程中,首先要了解整个系统中各个系统的组件的作用,然后了解系统的工作流(workflow),最后需要梳理一遍数据流(dataflow),而在整理数据流的过程中 ...