智能语音录制程序——窃听神器(源码放送!)

2023-10-09 02:20

本文主要是介绍智能语音录制程序——窃听神器(源码放送!),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 

       我这人从小有个坏毛病,就是喜欢偷窥别人隐私。当然,在道德上,我时刻要求自己做一名正人君子,只不过是心理上有这癖好罢了。所以我从小就对窃听、窃视、黑客技术、破解技术等疯狂着迷!实际上这也是我走上程序员之路的一个重要原因!

       或许正如弗洛伊德所说的那样,潜意识里面暗藏的原始欲望,是我们一切行为背后的真正动因。就像不可一世的希特勒和他野心勃勃的奋斗一样,归根到底只是因为他是一个自卑的抖S。

2.

        今天说的这个事呢还要从两年前说起。那时我还在念大学。说来也巧,咱们宿舍的4个人都有一个共同的毛病——梦呓。(也就是说梦话啦。)一开始我就发现了,他们三个说梦话我都听到过,而且好几次都是大段的说,信息量很大。可是由于大家都是来自五湖四海,口音各不相同,要一口气听懂真心很难,就算偶尔听懂了几句,第二天醒来又忘记了。结果后来大家一说起来,我自己也有说梦话,而且说得绘声绘色,跟演电影似的!

       弗洛伊德说:梦是通往潜意识的桥梁。梦里藏着连你自己都不知道的心理秘密。

       别人的梦里藏着什么不可告人的秘密?自己在梦境又中透露了什么无法言说的隐私?——这一切激起了我内心深处的强烈欲望!

       请原谅一个变态程序员的窥私欲!

3.

       所以后来我就一直想写一个程序,能够在夜深更阑的时候,根据音量的大小,智能的录制声音——这样一来就能把那些梦话一网打尽!然后再来分析其中隐藏的秘密,就如同探囊取物了。

       可是,这样一个程序要怎么写呢?还是到园子里找找资源。

       后来找到了一篇:实现语音视频录制(demo源码)

      于是研究了一段时间,终于如愿以偿的写出了自己的窃听神器!

       

4.原理与实现

      持续采集麦克风得到音频帧,然后根据傅里叶变换得出音频帧的响度大小。当响度大于指定值时,开启录制——将音频帧写入MP3文件;当响度低于指定值时,保持检测指定帧数,若均低于指定值,则关闭录制,此时得到一个音频文件。

       配置文件如下:

复制代码
<?xml version="1.0" encoding="utf-8" ?>
<configuration><appSettings><!--开启录音的音量阈值--><add key="DB2Open" value="30"/><!--关闭录音的音量阈值--><add key="DB2Close" value="30"/><!--低分贝持续检测帧数--><add key="checkCount" value="80"/></appSettings>
</configuration>
复制代码

      首先,保持采集麦克风。代码如下:

复制代码
public Form1()
{InitializeComponent();this.microphoneCapturer = CapturerFactory.CreateMicrophoneCapturer(0);//采集器,启动程序时即开启this.microphoneCapturer.AudioCaptured += new ESBasic.CbGeneric<byte[]>(microphoneCapturer_AudioCaptured);//预定采集事件this.microphoneCapturer.Start();//开始采集//初始化录制器所需的参数this.audioFileMaker.Initialize("test.mp3", this.microphoneCapturer.SampleRate, this.microphoneCapturer.ChannelCount);
}
复制代码

      其中AudioCaptured事件以20毫秒的周期触发,参数即为麦克风采集得到的PCM数据。而智能录音的逻辑则主要位于AudioCaptured的事件处理函数中。

复制代码
 void microphoneCapturer_AudioCaptured(byte[] data)
{this.audioFileMaker.StartMakeFile(data);//录制器安插此处,通过IsWorking参数来控制其工作状态this.frameCounter.Start(); //帧数计数器安插此处,用于记录在低分贝时期内的总帧数。通过IsWorking参数来控制其工作状态this.decibelDisplayer1.DisplayAudioData(data);//分贝显示器显示音量this.label_db.Text = this.decibelDisplayer1.Volume.ToString();//显示当前音量this.label_RecordSign.Text = this.audioFileMaker.IsWorking ? "正在录音" : "未录音";this.label_RecordSign.ForeColor = this.audioFileMaker.IsWorking ? Color.Blue : Color.Red;//当音量高于开启值时,打开录制器if (this.decibelDisplayer1.Volume > int.Parse(ConfigurationManager.AppSettings["DB2Open"])){this.audioFileMaker.IsWorking = true;}//当记录的低分贝帧数达到一定值时,关闭两个计数器,然后总结这段时间内的帧状况if (this.lowDBFrameCounter.Count > int.Parse(ConfigurationManager.AppSettings["checkCount"])){//若低分贝帧数与总帧数一直,即该段时间内持续低分贝,则关闭录制if (this.lowDBFrameCounter.Count == this.frameCounter.Count){this.audioFileMaker.IsWorking = false;                   }this.frameCounter.IsWorking = false;this.lowDBFrameCounter.IsWorking = false;return;}//当音量低于阈值时,开启低分贝计数器与帧数计数器的计数if (this.decibelDisplayer1.Volume < int.Parse(ConfigurationManager.AppSettings["DB2Close"])){this.frameCounter.IsWorking = true;this.lowDBFrameCounter.IsWorking = true;this.lowDBFrameCounter.Start();}            }
复制代码

 5.后记

      有了这个程序之后,每晚睡前开启,第二天一早定能斩获颇丰!

      这些梦话往往有着巨大的信息量,而当被一个精神分析的高手掌握后,内心的秘密更是无处遁形,赤裸裸的人性一览无余!

      而且,有时白天上课的时候也开启,偶尔还会有些意外的收货,这个就不方便多说了。

      源码:点击下载

      这个程序其实还可以进一步完善,不仅智能录音,还可以智能录像,只要你插上一个USB摄像头,便可根据动静录制监控视频。除此之外,再与图像分析技术集成,更可以完成智能防盗等高端功能!

      有兴趣实现智能录像的朋友,可以参考:实现语音视频录制(demo源码)

   ———————————————————————————————————————————

      附推荐阅读:学妹来实习,看我如何步步为营!

 

 

出处:http://www.cnblogs.com/caojueming/p/5867718.html

转载于:https://www.cnblogs.com/mq0036/p/6514894.html

这篇关于智能语音录制程序——窃听神器(源码放送!)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/169665

相关文章

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

Java ArrayList扩容机制 (源码解读)

结论:初始长度为10,若所需长度小于1.5倍原长度,则按照1.5倍扩容。若不够用则按照所需长度扩容。 一. 明确类内部重要变量含义         1:数组默认长度         2:这是一个共享的空数组实例,用于明确创建长度为0时的ArrayList ,比如通过 new ArrayList<>(0),ArrayList 内部的数组 elementData 会指向这个 EMPTY_EL

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get

智能交通(二)——Spinger特刊推荐

特刊征稿 01  期刊名称: Autonomous Intelligent Systems  特刊名称: Understanding the Policy Shift  with the Digital Twins in Smart  Transportation and Mobility 截止时间: 开放提交:2024年1月20日 提交截止日

工厂ERP管理系统实现源码(JAVA)

工厂进销存管理系统是一个集采购管理、仓库管理、生产管理和销售管理于一体的综合解决方案。该系统旨在帮助企业优化流程、提高效率、降低成本,并实时掌握各环节的运营状况。 在采购管理方面,系统能够处理采购订单、供应商管理和采购入库等流程,确保采购过程的透明和高效。仓库管理方面,实现库存的精准管理,包括入库、出库、盘点等操作,确保库存数据的准确性和实时性。 生产管理模块则涵盖了生产计划制定、物料需求计划、

基于 YOLOv5 的积水检测系统:打造高效智能的智慧城市应用

在城市发展中,积水问题日益严重,特别是在大雨过后,积水往往会影响交通甚至威胁人们的安全。通过现代计算机视觉技术,我们能够智能化地检测和识别积水区域,减少潜在危险。本文将介绍如何使用 YOLOv5 和 PyQt5 搭建一个积水检测系统,结合深度学习和直观的图形界面,为用户提供高效的解决方案。 源码地址: PyQt5+YoloV5 实现积水检测系统 预览: 项目背景

EMLOG程序单页友链和标签增加美化

单页友联效果图: 标签页面效果图: 源码介绍 EMLOG单页友情链接和TAG标签,友链单页文件代码main{width: 58%;是设置宽度 自己把设置成与您的网站宽度一样,如果自适应就填写100%,TAG文件不用修改 安装方法:把Links.php和tag.php上传到网站根目录即可,访问 域名/Links.php、域名/tag.php 所有模板适用,代码就不粘贴出来,已经打