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二分法实现实例
Nov 21 Python
python使用win32com在百度空间插入html元素示例
Feb 20 Python
tensorflow构建BP神经网络的方法
Mar 12 Python
Python将list中的string批量转化成int/float的方法
Jun 26 Python
pytorch 输出中间层特征的实例
Aug 17 Python
Python 调用 Windows API COM 新法
Aug 22 Python
Python下应用opencv 实现人脸检测功能
Oct 24 Python
pandas的相关系数与协方差实例
Dec 27 Python
如何在django中运行scrapy框架
Apr 22 Python
Python使用requests模块爬取百度翻译
Aug 25 Python
使用Python制作一盏 3D 花灯喜迎元宵佳节
Feb 26 Python
Elasticsearch 数据类型及管理
Apr 19 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实现的微信红包算法分析(非官方)
2015/09/25 PHP
WordPress中注册菜单与调用菜单的方法详解
2015/12/18 PHP
记录一次排查PHP脚本执行卡住的问题
2016/12/27 PHP
php生成毫秒时间戳的实例讲解
2017/09/22 PHP
javascript中类的定义及其方式(《javascript高级程序设计》学习笔记)
2011/07/04 Javascript
一个JavaScript变量声明的知识点
2013/10/28 Javascript
JS中把字符转成ASCII值的函数示例代码
2013/11/21 Javascript
jQuery对Select的操作大集合(收藏)
2013/12/28 Javascript
ECMAScript5(ES5)中bind方法使用小结
2015/05/07 Javascript
整理Javascript函数学习笔记
2015/12/01 Javascript
理解javascript异步编程
2016/01/27 Javascript
js和jq使用submit方法无法提交表单的快速解决方法
2016/05/17 Javascript
学习Javascript闭包(Closure)知识
2016/08/07 Javascript
Vue+axios 实现http拦截及路由拦截实例
2017/04/25 Javascript
vue中axios处理http发送请求的示例(Post和get)
2017/10/13 Javascript
关闭Vue计算属性自带的缓存功能方法
2018/03/02 Javascript
在AngularJs中设置请求头信息(headers)的方法及不同方法的比较
2018/09/04 Javascript
浅析vue中的MVVM实现原理
2019/03/04 Javascript
详解javascript对数组和json数组的操作
2019/04/15 Javascript
[04:56]经典回顾:前Ehome 与 前LGD
2015/02/26 DOTA
机器学习python实战之决策树
2017/11/01 Python
Python+request+unittest实现接口测试框架集成实例
2018/03/16 Python
python中的数组赋值与拷贝的区别详解
2019/11/26 Python
Python解释器及PyCharm工具安装过程
2020/02/26 Python
python计算导数并绘图的实例
2020/02/29 Python
HTML5中meta属性的使用方法
2016/02/29 HTML / CSS
亚马逊新加坡官方网站:Amazon.sg
2020/03/25 全球购物
四年大学生活的自我评价范文
2014/02/07 职场文书
劳资协议书范本
2014/04/23 职场文书
学习型家庭事迹材料
2014/12/20 职场文书
团员年度个人总结
2015/02/26 职场文书
街道办残联2016年助残日活动总结
2016/04/01 职场文书
CocosCreator ScrollView优化系列之分帧加载
2021/04/14 Python
Redis缓存-序列化对象存储乱码问题的解决
2021/06/21 Redis
Python一些基本的图像操作和处理总结
2021/06/23 Python
Golang 切片(Slice)实现增删改查
2022/04/22 Golang