自动录音程序
连接了无线电台,如果频道上有人说话自动录下
所有录音保存在一天的一个录音文件里,会记录下开始时间,停止时间,通话时长,在录音中的开始位置,方便快速定位,无人说话的时候自动停止录音,节省磁盘,

多线程技术,即使程序崩了录音文件也不会损坏

==========

警告:

使用此程序请遵守《中华人民共和国无线电管理条例》 ->>中华人民共和国无线电管理条例

此程序仅限于学习交流使用,不得用于违法用途

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自动录音程序相关推荐

  1. 基友扫雷通关跟我炫耀!于是用Python自动扫雷程序十秒通关

    起因是这样的,基友和我一起玩扫雷高难度,今天他来告诉我他的通关了! 各种炫耀,如下图! 于是,我用就用Python开发了个自动扫雷程序!跟他装了逼,瞬间喊我哥,要我教他 好了,不废话了!本文用于娱乐, ...

  2. python自动更新程序

    简介 windows 自动更新程序 最近用python给开发了一个windows监控软件,用于监控电脑的运行情况,更新电脑软件.由于有几十电脑,一台一台手动更新就不太靠谱了,于是就开发了一个自动更新软 ...

  3. python自动取款机程序_python ATM取款机----运维开发初学(上篇)

    自动取款机基本功能:可以存取转账,刷卡信息查询,银行卡号历史信息查询,消费记录查询,修改密码. 思维导图如下: 数据库设计: mysql> desc balan_list; #保存账号交易记录o ...

  4. python自动点名程序_利用python+tkinter开发一个点名软件

    from win32com.client importDispatchfrom tkinter import * importtkinter as tkfrom PIL importImagefrom ...

  5. python实现录音小程序 界面_python怎么对矩阵添加一列python实现录音小程序

    本文为大家分享了python实现录音小程序的具体代码,供大家参考,具体内容如下 学习目标: 学习电脑网从python实现录音小程序分析来看,对python实现录音小程序的结果.掌握python的pya ...

  6. python编写木马攻击_用Python写一个自动木马程序

    电脑作为大家日常办公的工具,最怕的一件事情之一就是被偷,当我们的电脑被盗的时候,不仅仅是电脑本身,更重要的是电脑存储的资料都会丢失.如何尽快的找回电脑需要我们想点办法,今天就教大家一个好的技巧,虽说不 ...

  7. python程序怎么保存到u盘_python实现usb自动拷贝程序的方法

    python实现usb自动拷贝程序的方法 发布时间:2020-06-28 09:07:05 来源:亿速云 阅读:135 作者:清晨 这篇文章将为大家详细讲解有关python实现usb自动拷贝程序的方法 ...

  8. 牛逼啦!20行Python代码让程序自动玩“合成大西瓜”!

    最近的时间里,想必大家都被"合成大西瓜"这个游戏刷屏,无论是微博,还是B站,乃至是微信公众号,都有很多博主和up主们推荐. 老规矩,需要打包好的软件关注小编,QQ群:7211953 ...

  9. python文件整理程序_Python实现自动整理文件的脚本

    前言 工作上的文档和资料好几个月没整理了,因为平常太忙都是随手往桌面丢.整个桌面杂乱无章全是文档和资料.几乎快占满整个屏幕了,所有我必须要整理一下了.但是手动整理太费时间了,于是我想到了python. ...

最新文章

  1. 基于Android和WI-FI通信的智能家居系统
  2. mysql 触发器 分行_mysql 触发器
  3. word图片自动换行不亮_知网查重时提交pdf检测结果竟然比Word高很多!
  4. 在面试中如何展示虚拟机和内存调优技能
  5. webstorm设置文件类型
  6. Javascript面向对象编程:构造函数的继承
  7. pytorch自定义模型执行过程
  8. 模拟退火算法(代码可直接运行)
  9. 二进制转换 html,javascript 处理回传的二进制图像并显示在html上
  10. java复习系列[6] - Java集合
  11. 区块链开发指南_区块链开发完全指南
  12. QT开发pjsip的VOIP,A8平台运行
  13. 图片压缩工具ImageOptim
  14. HTML的发展史及背景,HTML发展史 - 蓝蓝设计每日一贴
  15. PDA应用软件开发特点
  16. 揭开Angular 7的神秘面纱
  17. DateTime转为特定时区时间
  18. idea里面解决jsp,html,xml黄色背景的方法
  19. Envoy代理GRPC服务支持通过restful进行访问
  20. 扫雷游戏软件测试,软件测试-扫雷游戏

热门文章

  1. 1.函数的结构,调用,传参,形参,实参,args,kwargs,名称空间,高阶函数
  2. vue rsa加密 php解密,Vue项目中的RSA加解密
  3. oracle数据库安装与打开,Oracle数据库在Linux 中的安装与启动动
  4. Android中运行免安装app,适用于免安装应用的 CTS
  5. Detectron2的使用指南
  6. linux多线程_免费Linux下载工具,你还不知道?
  7. wifi有网可以连接,但打不开网页了,找不到 服务器 dns 地址
  8. “游匣”冲击暑期档——戴尔为中国用户定制笔记本电脑
  9. 数据中台与数据湖概念认知
  10. 第十二届蓝桥杯省赛JAVA B组杨辉三角形个人题解