python实现网页录音效果


Posted in Python onOctober 26, 2020

本文实例为大家分享了python实现网页录音效果的具体代码,供大家参考,具体内容如下

服务器:tornado

语言:python,JS,html

效果:(将录好的音放在指定位置)

python实现网页录音效果

实现逻辑:

python实现网页录音效果

部分实现代码:

web:

<button type="submit" class="btn btn-primary mb-2 record_start">开始录音</button>
<button type="submit" class="btn btn-primary mb-2 record_stop">结束录音</button>

注意,class中最后一项 record_start或record_stop,后面JS文件中的方法调用和这个对应

JS:(其中用到Ajax,需要用到jquery-3.4.1.min.js)

$('.record_start').on('click',function(e){
 //css中有CHAT的,点击时开始相应,其中' . '代表是在css中,' # '代表是在id中
 e.preventDefault();
  //防止跳转
 args = {'query':'start'}
 $.ajax({
  async: false,
  url:'/record',
  type:'POST',
  data:$.param(args),
  success: function(res){
  var data =JSON.parse(res)
  if(data.code == 0){
   console.log('发送成功');
  }
  else{
   console.error('发送失败');
  }
  },
  error:function(){
  console.error('发送失败');
  }
 })
 //$代表jquery,可发起ajax请求,相当于requests,
 })
 $('.record_stop').on('click',function(e){
 //css中有CHAT的,点击时开始相应,其中' . '代表是在css中,' # '代表是在id中
 e.preventDefault();
  //防止跳转
 args = {'query':'stop'}
 $.ajax({
  async: false,
  url:'/record',
  type:'POST',
  data:$.param(args),
  success: function(res){
  var data =JSON.parse(res)
  if(data.code == 0){
   console.log('发送成功');
  }
  else{
   console.error('发送失败');
  }
  },
  error:function(){
  console.error('发送失败');
  }
 })
 //$代表jquery,可发起ajax请求,相当于requests,
 })

Python server:

static = Record_wav.Final_record()
 
class RecordHandler(BaseHandler):
 global static
 def post(self):
 query = self.get_argument('query','')
 static.record_wav(query)
 res = {'code':0,'message':'sucess'}
 self.write(json.dumps(res))
 self.finish()
 
 
def make_app():
 return tornado.web.Application([
 #其他没用的我删了
 (r"/record",RecordHandler)
 ],**settings)
 '''
 **settings:将字典中的元素解析出来,写配置的
 '''

这里值得注意的是:定义一个全局变量,因为第二次选择关闭录音的时候也得调用这个类,倘若不加全局,对于static,计算机会重新开辟新空间而不是用之前的,这就导致你的录音没法停止,因为它会停止一个空的录音。

python实现网页录音效果

Python Record_wav.py

rec =Recorder()
 
class Final_record():
 
 def record_wav(self,static):
  global rec
  if static == 'start':
  rec.start()
  return 'success!'
  elif static=='stop':
  rec.stop()
  rec.save(fname)
  asr=ASR.XunFeiASR()
  query=''
  query=asr.transcribe(fname)
  return query

同上,这儿的对象也得是全局变量。(这俩全局变量想了很久才想出来的,当然,贸然设全局变量很不好,但我只能想到这么多了)

其他的代码,例如录音方面的网上很好找,暂且不再次赘述了。

录音代码可以参考这位博主的文章:python实现录音功能(可随时停止录音)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
深入学习Python中的装饰器使用
Jun 20 Python
django表单实现下拉框的示例讲解
May 29 Python
Python实现处理逆波兰表达式示例
Jul 30 Python
Pandas Shift函数的基础入门学习笔记
Nov 16 Python
Python中函数的基本定义与调用及内置函数详解
May 13 Python
python itchat实现调用微信接口的第三方模块方法
Jun 11 Python
django的分页器Paginator 从django中导入类
Jul 25 Python
pytorch sampler对数据进行采样的实现
Dec 31 Python
Python class的继承方法代码实例
Feb 14 Python
python中wheel的用法整理
Jun 15 Python
详解Django的MVT设计模式
Apr 29 Python
python tkinter Entry控件的焦点移动操作
May 22 Python
python实现录音功能(可随时停止录音)
Oct 26 #Python
Python用dilb提取照片上人脸的示例
Oct 26 #Python
python用tkinter实现一个gui的翻译工具
Oct 26 #Python
Docker如何部署Python项目的实现详解
Oct 26 #Python
python Gabor滤波器讲解
Oct 26 #Python
详解基于python的图像Gabor变换及特征提取
Oct 26 #Python
多个版本的python共存时使用pip的正确做法
Oct 26 #Python
You might like
新浪新闻小偷
2006/10/09 PHP
php 删除记录实现代码
2009/03/12 PHP
Yii2 批量插入、更新数据实例
2017/03/15 PHP
Laravel框架实现简单的学生信息管理平台案例
2019/05/07 PHP
复制本贴标题和地址的js代码
2008/07/01 Javascript
利用jquery写的左右轮播图特效
2014/02/12 Javascript
JS的location.href跳出框架打开新页面的方法
2014/09/04 Javascript
jquery插件unobtrusive实现片段式加载
2015/06/15 Javascript
js实现select二级联动下拉菜单
2020/04/17 Javascript
JS作为值的函数用法示例
2016/06/20 Javascript
微信小程序 wxapp内容组件 progress详细介绍
2016/10/31 Javascript
详解jQuery简单的表单应用
2016/12/16 Javascript
jQuery实现遮罩层登录对话框
2016/12/29 Javascript
JS实现导出Excel的五种方法详解【附源码下载】
2018/03/15 Javascript
微信小程序实现上拉加载功能示例【加载更多数据/触底加载/点击加载更多数据】
2020/05/29 Javascript
WebStorm中如何将自己的代码上传到github示例详解
2020/10/28 Javascript
VUE异步更新DOM - 用$nextTick解决DOM视图的问题
2020/11/06 Javascript
原生JavaScript实现随机点名表
2021/01/14 Javascript
python实现异步回调机制代码分享
2014/01/10 Python
pandas DataFrame数据转为list的方法
2018/04/11 Python
Python实现把类当做字典来访问
2019/12/16 Python
Pycharm中import torch报错的快速解决方法
2020/03/05 Python
python 画图 图例自由定义方式
2020/04/17 Python
Python爬取股票信息,并可视化数据的示例
2020/09/26 Python
HTML5手指下滑弹出负一屏阻止移动端浏览器内置下拉刷新功能的实现代码
2020/04/10 HTML / CSS
匡威西班牙官网:Converse西班牙
2019/10/01 全球购物
.NET初级开发工程师面试题
2014/04/18 面试题
杠杆的科学教学反思
2014/01/10 职场文书
在校硕士自我鉴定
2014/01/23 职场文书
考试没考好检讨书(精选篇)
2014/11/16 职场文书
土木工程毕业答辩开场白
2015/05/29 职场文书
美容院管理规章制度
2015/08/05 职场文书
Nginx配置80端口访问8080及项目名地址方法解析
2021/03/31 Servers
全新239军机修复记
2022/04/05 无线电
win10蓝屏0xc0000001安全模式进不了怎么办?win10出现0xc0000001的解决方法
2022/08/05 数码科技
python pandas 解析(读取、写入)CSV 文件的操作方法
2022/12/24 Python