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在windows命令行下输出彩色文字的方法
Mar 19 Python
在Django框架中编写Context处理器的方法
Jul 20 Python
Python正则表达式教程之一:基础篇
Mar 02 Python
Python基于numpy灵活定义神经网络结构的方法
Aug 19 Python
详解pyqt5 动画在QThread线程中无法运行问题
May 05 Python
django 实现编写控制登录和访问权限控制的中间件方法
Jan 15 Python
解决pycharm每次新建项目都要重新安装一些第三方库的问题
Jan 17 Python
解决django同步数据库的时候app models表没有成功创建的问题
Aug 09 Python
python tkinter之 复选、文本、下拉的实现
Mar 04 Python
django模型类中,null=True,blank=True用法说明
Jul 09 Python
详解查看Python解释器路径的两种方式
Oct 15 Python
python保存大型 .mat 数据文件报错超出 IO 限制的操作
May 10 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
php 判断字符串编码是utf-8 或gb2312实例
2016/11/01 PHP
PHP实现活动人选抽奖功能
2017/04/19 PHP
php处理多图上传压缩代码功能
2018/06/13 PHP
[原创]来自ImageSee官方 JavaScript图片浏览器
2008/01/16 Javascript
在jQuery ajax中按钮button和submit的区别分析
2012/10/07 Javascript
调试代码导致IE出错的避免方法
2014/04/04 Javascript
href下载文件根据id取url并下载
2014/05/28 Javascript
JavaScript中Null与Undefined的区别解析
2015/06/30 Javascript
Javascript打印局部页面实例
2016/06/21 Javascript
EasyUI的doCellTip实现鼠标放到单元格上提示单元格内容
2016/08/24 Javascript
微信小程序 wx.uploadFile无法上传解决办法
2016/12/14 Javascript
详解Vue2+Echarts实现多种图表数据可视化Dashboard(附源码)
2017/03/21 Javascript
JavaScript登录记住密码操作(超简单代码)
2017/03/22 Javascript
nodejs之get/post请求的几种方式小结
2017/07/26 NodeJs
bootstrap模态框嵌套、tabindex属性、去除阴影的示例代码
2017/10/17 Javascript
详解在WebStorm中添加Vue.js单文件组件的高亮及语法支持
2017/10/21 Javascript
vue项目中,main.js,App.vue,index.html的调用方法
2018/09/20 Javascript
Element Breadcrumb 面包屑的使用方法
2020/07/26 Javascript
[03:24]DOTA2超级联赛专访hao 大翻盘就是逆袭
2013/05/24 DOTA
python fabric实现远程操作和部署示例
2014/03/25 Python
教你如何将 Sublime 3 打造成 Python/Django IDE开发利器
2014/07/04 Python
深入学习Python中的装饰器使用
2016/06/20 Python
Python多线程原理与用法详解
2018/08/20 Python
python实现三维拟合的方法
2018/12/29 Python
Python socket模块ftp传输文件过程解析
2019/11/05 Python
通过代码实例解析Pytest运行流程
2020/08/20 Python
Python数据分析库pandas高级接口dt的使用详解
2020/12/11 Python
详解pycharm的python包opencv(cv2)无代码提示问题的解决
2021/01/29 Python
用CSS3实现无限循环的无缝滚动的示例代码
2017/11/01 HTML / CSS
俄罗斯花园种植材料批发和零售网上商店:Беккер
2019/07/22 全球购物
校园摄影活动策划方案
2014/02/05 职场文书
美术社团活动总结
2014/06/27 职场文书
戒毒悔改检讨书
2014/09/21 职场文书
法律意见书范文
2015/05/20 职场文书
花田少年史观后感
2015/06/16 职场文书
深入浅析React中diff算法
2021/05/19 Javascript