python自动录音程序
自动录音程序
连接了无线电台,如果频道上有人说话自动录下
所有录音保存在一天的一个录音文件里,会记录下开始时间,停止时间,通话时长,在录音中的开始位置,方便快速定位,无人说话的时候自动停止录音,节省磁盘,
多线程技术,即使程序崩了录音文件也不会损坏
==========
警告:
使用此程序请遵守《中华人民共和国无线电管理条例》 ->>中华人民共和国无线电管理条例
此程序仅限于学习交流使用,不得用于违法用途
import threading
import pyaudio
import copy
import math
import time
import numpy
import wavelocaltime = time.localtime()
localtimestr = time.strftime("%Y-%m-%d-%H-%M-%S",localtime)
#ltime = time.time()
line = 0
class RecordThread(threading.Thread):def __init__(self, audiofile="C:/Users/Public/RE/"+localtimestr+".wav"):threading.Thread.__init__(self)self.bRecord = Trueself.rr = Trueself.audiofile = audiofileself.chunk = 1024self.format = pyaudio.paInt16self.channels = 1self.rate = 16000def run(self):#print("RUN....")audio = pyaudio.PyAudio()wavfile = wave.open(self.audiofile, 'wb')wavfile.setnchannels(self.channels)wavfile.setsampwidth(audio.get_sample_size(self.format))wavfile.setframerate(self.rate)wavstream = audio.open(format=self.format,channels=self.channels,rate=self.rate,input=True,frames_per_buffer=self.chunk)global xxglobal yyxx = 0yy = 0global linealltime = 0ntime1 = 0ntime2 = 0starttime = 0stoptime = 0timediff = 0while self.bRecord:data = wavstream.read(self.chunk)wavdata = numpy.fromstring(data,dtype=numpy.short)M = []for i in range(0,len(wavdata),16000):M.append(wavdata[i:i+16000]/10)M=map(abslist,M)sound = list(map(mean,M))if sound[0] > 50:#print("over")#写入xx = 1wavfile.writeframes(data)else:xx = 0if xx > yy:yy = 1#STARTstarttime = time.time()alltime = round(alltime + timediff,3)log("StartTime: "+time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(starttime))+" 开始时间: "+timestr(alltime))print("StartTime: "+time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(starttime))+" 开始时间: "+timestr(alltime))if xx < yy:yy = 0#STOPstoptime = time.time()timediff = round(stoptime - starttime,3)srt(str(line)+"\n"+timestr(alltime)+" --> "+timestr(alltime+timediff)+"\n"+str(line)+"\n"+"<font color=#5F9F9F>"+time.strftime("%H:%M:%S",time.localtime(starttime))+" -> "+time.strftime("%H:%M:%S",time.localtime(stoptime))+"</font> "+"<font color=#4D4DFF>"+timestr(timediff)+"</font>"+"\n")line = line + 1log("StopTime: "+time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(stoptime))+" 结束时间: "+timestr(alltime+timediff)+"\n")print("StopTime: "+time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(stoptime))+" 结束时间: "+timestr(alltime+timediff))print("时长: "+timestr(timediff)+"\n")wavstream.stop_stream()wavstream.close()audio.terminate()def stoprecord(self):print("stop")self.bRecord = Falsedef pause(self):print("pause")self.rr = Falsedef next(self):print("next")self.rr = Truedef abslist(a):return list(map(abs,a))
def mean(a):return numpy.longlong(sum(a)) / len(a)def log(msg):with open('C:/Users/Public/RE/'+localtimestr+ '.txt','a+') as file:file.write(msg+"\n")file.close()def srt(msg):with open('C:/Users/Public/RE/'+localtimestr+ '.srt','a+') as file:file.write(msg+"\n")file.close()def timestr(sec):m,s = divmod(sec,60)h,m = divmod(m,60)return str("%d:%02d:%.2f"%(h,m,s))rt = RecordThread()
line = line + 1
#print(timestr(2.65))log("RUN ...... Start At "+localtimestr+" SYS OK!"+" Frequency:91.1Mhz")
srt(str(line)+"\n"+"0:00:00.0 --> 0:00:30.0\n"+"{\\an8}"+"<font color=#FFFF00>"+ str(time.strftime("%Y/%m/%d %H:%M:%S",localtime))+"</font>"+" <font color=#00FFFF>(20:00-21:00)</font>"+"\n"+"<font color=#00FF00>438.025 -5 88.5 <i>QTH Suzhou Jiangsu China</i></font>\n<font color=#3299CC>苏州市业余无线电 472752158</font>\n\n1\n0:00:00.0 --> 0:00:30.0\n{\\an5}请遵守<font color=#FF0000><u><b>《中华人民共和国无线电管理条例》</b></u></font>\n")
print("RUN ...... Start At "+localtimestr+" SYS OK!"+" Frequency:91.1Mhz")
rt.start()
转载于:https://my.oschina.net/u/3404800/blog/3017039
python自动录音程序相关推荐
- 基友扫雷通关跟我炫耀!于是用Python自动扫雷程序十秒通关
起因是这样的,基友和我一起玩扫雷高难度,今天他来告诉我他的通关了! 各种炫耀,如下图! 于是,我用就用Python开发了个自动扫雷程序!跟他装了逼,瞬间喊我哥,要我教他 好了,不废话了!本文用于娱乐, ...
- python自动更新程序
简介 windows 自动更新程序 最近用python给开发了一个windows监控软件,用于监控电脑的运行情况,更新电脑软件.由于有几十电脑,一台一台手动更新就不太靠谱了,于是就开发了一个自动更新软 ...
- python自动取款机程序_python ATM取款机----运维开发初学(上篇)
自动取款机基本功能:可以存取转账,刷卡信息查询,银行卡号历史信息查询,消费记录查询,修改密码. 思维导图如下: 数据库设计: mysql> desc balan_list; #保存账号交易记录o ...
- python自动点名程序_利用python+tkinter开发一个点名软件
from win32com.client importDispatchfrom tkinter import * importtkinter as tkfrom PIL importImagefrom ...
- python实现录音小程序 界面_python怎么对矩阵添加一列python实现录音小程序
本文为大家分享了python实现录音小程序的具体代码,供大家参考,具体内容如下 学习目标: 学习电脑网从python实现录音小程序分析来看,对python实现录音小程序的结果.掌握python的pya ...
- python编写木马攻击_用Python写一个自动木马程序
电脑作为大家日常办公的工具,最怕的一件事情之一就是被偷,当我们的电脑被盗的时候,不仅仅是电脑本身,更重要的是电脑存储的资料都会丢失.如何尽快的找回电脑需要我们想点办法,今天就教大家一个好的技巧,虽说不 ...
- python程序怎么保存到u盘_python实现usb自动拷贝程序的方法
python实现usb自动拷贝程序的方法 发布时间:2020-06-28 09:07:05 来源:亿速云 阅读:135 作者:清晨 这篇文章将为大家详细讲解有关python实现usb自动拷贝程序的方法 ...
- 牛逼啦!20行Python代码让程序自动玩“合成大西瓜”!
最近的时间里,想必大家都被"合成大西瓜"这个游戏刷屏,无论是微博,还是B站,乃至是微信公众号,都有很多博主和up主们推荐. 老规矩,需要打包好的软件关注小编,QQ群:7211953 ...
- python文件整理程序_Python实现自动整理文件的脚本
前言 工作上的文档和资料好几个月没整理了,因为平常太忙都是随手往桌面丢.整个桌面杂乱无章全是文档和资料.几乎快占满整个屏幕了,所有我必须要整理一下了.但是手动整理太费时间了,于是我想到了python. ...
最新文章
- 基于Android和WI-FI通信的智能家居系统
- mysql 触发器 分行_mysql 触发器
- word图片自动换行不亮_知网查重时提交pdf检测结果竟然比Word高很多!
- 在面试中如何展示虚拟机和内存调优技能
- webstorm设置文件类型
- Javascript面向对象编程:构造函数的继承
- pytorch自定义模型执行过程
- 模拟退火算法(代码可直接运行)
- 二进制转换 html,javascript 处理回传的二进制图像并显示在html上
- java复习系列[6] - Java集合
- 区块链开发指南_区块链开发完全指南
- QT开发pjsip的VOIP,A8平台运行
- 图片压缩工具ImageOptim
- HTML的发展史及背景,HTML发展史 - 蓝蓝设计每日一贴
- PDA应用软件开发特点
- 揭开Angular 7的神秘面纱
- DateTime转为特定时区时间
- idea里面解决jsp,html,xml黄色背景的方法
- Envoy代理GRPC服务支持通过restful进行访问
- 扫雷游戏软件测试,软件测试-扫雷游戏
热门文章
- 1.函数的结构,调用,传参,形参,实参,args,kwargs,名称空间,高阶函数
- vue rsa加密 php解密,Vue项目中的RSA加解密
- oracle数据库安装与打开,Oracle数据库在Linux 中的安装与启动动
- Android中运行免安装app,适用于免安装应用的 CTS
- Detectron2的使用指南
- linux多线程_免费Linux下载工具,你还不知道?
- wifi有网可以连接,但打不开网页了,找不到 服务器 dns 地址
- “游匣”冲击暑期档——戴尔为中国用户定制笔记本电脑
- 数据中台与数据湖概念认知
- 第十二届蓝桥杯省赛JAVA B组杨辉三角形个人题解