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检测一个对象是否为字符串类的方法
May 21 Python
Python导入模块时遇到的错误分析
Aug 30 Python
一文总结学习Python的14张思维导图
Oct 17 Python
Python实现的选择排序算法示例
Nov 29 Python
python打包压缩、读取指定目录下的指定类型文件
Apr 12 Python
Python文件如何引入?详解引入Python文件步骤
Dec 10 Python
让你Python到很爽的加速递归函数的装饰器
May 26 Python
python3实现mysql导出excel的方法
Jul 31 Python
python matplotlib imshow热图坐标替换/映射实例
Mar 14 Python
关于Python turtle库使用时坐标的确定方法
Mar 19 Python
python Selenium 库的使用技巧
Oct 16 Python
Python系统公网私网流量监控实现流程
Nov 23 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
建立动态的WML站点(一)
2006/10/09 PHP
php 文件状态缓存带来的问题
2008/12/14 PHP
PHP取余函数介绍MOD(x,y)与x%y
2014/05/15 PHP
windows7下php开发环境搭建图文教程
2015/01/06 PHP
JQuery上传插件Uploadify使用详解及错误处理
2010/04/27 Javascript
javascript的原生方法获取数组中的最大(最小)值
2012/12/19 Javascript
不得不分享的JavaScript常用方法函数集(下)
2015/12/25 Javascript
如何解决easyui自定义标签 datagrid edit combobox 手动输入保存不上
2015/12/26 Javascript
vue使用axios实现文件上传进度的实时更新详解
2017/12/20 Javascript
ES6 Object.assign()的用法及其使用
2020/01/18 Javascript
jquery实现直播视频弹幕效果
2020/02/25 jQuery
在Uni中使用Vue的EventBus总线机制操作
2020/07/31 Javascript
详解Python设计模式编程中观察者模式与策略模式的运用
2016/03/02 Python
Python多线程经典问题之乘客做公交车算法实例
2017/03/22 Python
详解django的serializer序列化model几种方法
2018/10/16 Python
解决pyqt5中QToolButton无法使用的问题
2019/06/21 Python
django基于restframework的CBV封装详解
2019/08/08 Python
Django之模板层的实现代码
2019/09/09 Python
详解python中*号的用法
2019/10/21 Python
TensorFlow设置日志级别的几种方式小结
2020/02/04 Python
Pycharm如何运行.py文件的方法步骤
2020/03/03 Python
python中def是做什么的
2020/06/10 Python
使用CSS3实现一个3D相册效果实例
2016/12/03 HTML / CSS
详解HTML5将footer置于页面最底部的方法(CSS+JS)
2018/10/11 HTML / CSS
德国古洛迷亚百货官网:GALERIA Kaufhof
2017/06/20 全球购物
Chain Reaction Cycles俄罗斯:世界上最大的在线自行车商店
2019/08/27 全球购物
JSF面试题:如何管量web层中的Bean,用什么标签。如何通过jsp页面与Bean绑定在一起进行处理?
2012/10/05 面试题
《逃家小兔》教学反思
2014/02/23 职场文书
交通事故协议书
2014/04/15 职场文书
部门年终奖分配方案
2014/05/07 职场文书
关于随地扔垃圾的检讨书
2014/09/30 职场文书
2014年无财产无子女离婚协议书范本
2014/10/09 职场文书
质量负责人岗位职责
2015/02/15 职场文书
2015年共青团工作总结
2015/05/15 职场文书
2015年教学管理工作总结
2015/05/20 职场文书
导游词之香港-太平山顶
2019/10/18 职场文书