自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (4)
  • 收藏
  • 关注

原创 双音多频技术介绍及应用——识别电话号码

双音多频技术作者:郑不挫。原理电话拨号有两种,脉冲和音频,所谓音频也称双音多频(DTMF)信号的拨号方式,双音多频既是电话拨号时每按一个键,有两个音频频率叠加成一个双音频信号,十二个按键由八个音频频率区分。如下图应用知道了双音多频技术的原理,下面讲讲如何通过双音多频技术来识别号码。采用的音频的采样频率为1000Hz,随意录制一段拨号音频,其时域波形如下:为了进行号码识别,需要将音频信号进行切割,这里可以通过幅值来进行切割,比较简单就不说了。切割完成后,就得到了每个拨号的音频,然后对每个拨号进

2021-02-18 22:00:31 3914 2

原创 Visual studio2015/2017配置OpenCV环境——经验博文,帮你避坑

前段时间在Visual studio2015/2017上都有配置过OpenCV,踩过很多坑,在这里写一篇博文记录一下。OpenCV下载先去opencv.org下载你需要的版本,下载了放在你习惯的文件夹然后运行解压,解压完成后就会有一个opencv文件夹,如下图编辑环境变量去环境变量里,将路径添加到path里面,一般都是添加vc14这个路径。新建空项目新建一个空项目,网上有些教程是新建的控制台项目,这里面有个坑,就是关于stdafx.h这个头文件的。听我的,建空项目。项目建好以后,在菜单栏“

2020-09-08 22:43:28 256

原创 简单讲讲维纳滤波

维纳滤波原理优化python实现原理维纳滤波的基本思路与传统的滤波器相似,不过在输入输出上有所不同,维纳滤波的输入为带噪语音信号,其输出为纯净语音信号的估计值。维纳滤波的数学表达如式所示。x′(t)=y(t)∗h(t).x'(t) =y(t)*h(t).x′(t)=y(t)∗h(t).x(t)就是维纳滤波的输出,也就是估计的纯净语音。为了保证估计的准确性,采用均方误差来评估准确性。ε=E[x(k)−x′(k)]2ε=E[x(k)-x'(k)]^2ε=E[x(k)−x′(k)]2当ε达到最

2020-08-16 22:40:27 901

原创 语音增强算法——谱减法

介绍并实现谱减法

2020-06-02 07:01:28 4897

原创 在阿里云服务器上运行自己的Python程序(Linux系统)

一、准备服务器,安装好对应系统详细步骤可以参加阿里云的教程,详见:七天玩转云服务器我是安装的Ubuntu系统二、查看服务器的python环境查看Python版本查看Python安装路径系统自带的Python为2.7,正好我自己使用的也是2.7版,如果需要使用3.x版本的可以参见大佬们的做法:https://www.jianshu.com/p/24f6f9fa6465https:...

2020-02-24 23:29:06 10566 2

原创 ERROR: Cannot uninstall 'llvmlite'. It is a distutils installed project. 此类报错的解决办法

报错的原因:这是一个distutils安装的项目,因此我们无法准确确定属于该文件的文件,这只会导致部分卸载。一般是你安装的版本是新版的,需要uninstall旧版的,但是由于直接使用pip uninstall+ 库名 不能对其完全卸载,所以最粗暴的方法就是把旧版的文件直接删掉。解决方法:进入anaconda3→Lib→site-packages,找到相应的旧版文件,直接删掉就完事。比如我遇...

2020-02-19 01:39:20 16683 22

原创 TensorBoard的简明使用

TensorFlow使用 TensorBoard 来提供计算图形的图形图像。这使得理解、调试和优化复杂的神经网络程序变得很方便。TensorBoard 也可以提供有关网络执行的量化指标。它读取 TensorFlow 事件文件,其中包含运行 TensorFlow 会话期间生成的摘要数据。简言之,就是可以用来看数据变化,看网络结构的。具体的操作方法:tf.reset_default_graph(...

2019-12-30 11:09:10 149

原创 jupyter中导入自己写的模块以及Mnist数据集的下载

刚开始欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新...

2019-12-25 10:47:00 3714

原创 MATLAB实现对纯净语音加噪处理

在做语音增强的研究时,常常需要对纯净语音进行加噪处理来模拟现实的噪声环境,在进行加噪处理时,一般来说是根据纯语音信号的采样频率和要求的信噪比来进行的,我们可以利用MATLAB来实现。function [Y,NOISE] = add_noisem(X,filepath_name,SNR,fs)[wavin,fs1]=audioread(filepath_name);if fs1~=fs ...

2019-11-08 09:19:54 3401 2

原创 噪声库Noise_92的介绍

Noise_92噪声数据是由英国感知技术研究院的语音研究部门实地测量的不同噪声数据。其中所有的噪声数据文件都是持续235秒,采用19.98KHz的采样率。共有15个噪声数据文件,分别是:whitepinkbabblefactory1factory2buccaneer1buccaneer2f16destroyerenginedestroyeropsleopardm109m...

2019-11-07 09:21:01 3229 1

原创 VMware上虚拟机全屏显示——VMware Tools的安装

在VMware上创建的新系统比如Ubuntu一开始是不能全屏显示的,看起来很别扭。安装好VMware Tools就可以解决这个问题。详细的安装过程如下:1、在客户机上下载VMware Tools映像文件,然后将其中的压缩文件复制到主目录。2、使用【tar -zxvf VMwareTools-10.3.10-13959563.tar.gz】命令进行解压,解压后使用【ls】命令可以看到新生成一...

2019-10-07 20:25:48 1068

原创 Boot loader介绍

在嵌入式系统中,Boot loader是一段硬件引导程序,主要是为了内核的运行做准备的,其运行在操作系统内核之前。主要作用是:初始化硬件设备,建立一个内存空间。将系统的硬件环境和软件环境调整到一个合适的状态,也即是为调用内核准备好环境。而且不同的目标版也需要不同的Boot loader支持。[Boot loader]—[Boot parameters]—[Kernel]—[Root filesy...

2019-10-07 10:05:17 3183

原创 递归实现十进制到二进制的转换——C语言实现

十进制到二进制的转换只要不断对2取余就可以得到了,常规算法的实现还是很简单的。递归算法也可以实现进制转换。程序实现#include <stdio.h>void dectobin( int n );int main(){ int n; scanf("%d",&n); dectobin( n ); return 0;}void dectobin( int...

2019-10-07 00:22:46 3632 5

原创 小数部分与整数部分分离

程序实现#include <stdio.h>#include <math.h>void splitfloat( float x, int *intpart, float *fracpart );int main(){ float x, fracpart; int intpart; scanf("%f", &x); sp...

2019-10-06 23:44:26 766

原创 UART(Universal asynchronous receiver/transmitter)通用异步接收/传送

UART是一个异步串口通信协议,使用UART传输数据时,除了传输数据位之外,还需要传输一些控制位、校验位(一般为奇偶校验)。其实UART是RS232通信标准的一个具体应用。现在的UART常用的信号有:RX、TX、RTS、CTSRX接收TX发送RTS准备发送CTS清除了准备接收RTS与CTS相当于是握手信号,握手之后进行数据的传输。UART有两种连接...

2019-10-06 20:18:17 366

原创 选择排序——C语言实现

选择排序实际上就是找最大值,然后将其放在最后,每次找到一个最大值,与最后一个数交换位置,并且处理的数组长度也就减一。程序实现#include <stdio.h>#include <math.h>int max(int a[],int len){ int maxid = 0; for(int i = 0; i<len; i++) {...

2019-10-05 15:09:34 149

原创 二分查找/折半查找——C语言实现

折半查找的应用前提是数组是一个有序数组。比较数组中间值和查找值的大小关系,然后确定下一步的查找范围,逐次缩小。折半查找的时间复杂度为O(log2(n)),是一种效率很高的查找方式。程序实现#include <stdio.h>#include <math.h>int search(int key, int a[], int len){ int left =...

2019-10-05 14:45:03 288

原创 验证哥德巴赫猜想——C程序设计

哥德巴赫猜想:任何一个不小于6的偶数均可表示为两个奇素数之和。素数就是只能被1和自身整除的正整数。注意:1不是素数,2是素数。函数接口定义:int prime( int p );void Goldbach( int n );其中函数prime当用户传入参数p为素数时返回1,否则返回0;函数Goldbach按照格式“n=p+q”输出n的素数分解,其中p≤q均为素数。又因为这样的分解不唯一...

2019-10-04 20:54:51 1986

原创 PTA|程序设计——数组元素查找

数组的元素查找采用遍历的思想就可以解决了。函数接口定义:int search( int list[], int n, int x );其中list[]是用户传入的数组;n(≥0)是list[]中元素的个数;x是待查找的元素。如果找到则函数search返回相应元素的最小下标(下标从0开始),否则返回−1。#include <stdio.h>#include <math...

2019-10-04 20:22:50 508

原创 串行通信与并行通信

串行通信是指通过一条数据线,将数据一位一位依次传输,而并行通信可以有多条数据线,同时进行多位数据传输。无论是串行通信还是并行通信都是在时钟的上升沿或下降沿将数据送出。因此,数据传输的速度就取决于两个因素:信号线的数量与时钟的频率。这样子看起来好像是并行通信更有优势,然而事实并非如此。PCI总线并行、16-bit/32-bit、33/66MHz、133/266MB/sPCI...

2019-10-04 20:09:55 1219

原创 PTA|程序设计——使用函数输出水仙花数

水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153=1^3 + 5^3 +3^3​​ 本题要求编写两个函数,一个判断给定整数是否水仙花数,另一个按从小到大的顺序打印出给定区间(m,n)内所有的水仙花数。函数接口定义int narcissistic( int number );void PrintN( int m, int n );其实这个问题的...

2019-10-04 10:12:29 4383

原创 关于中断优先级的问题——ARM架构

在ARM架构的嵌入式系统中,有着不同的中断请求,而不同的中断请求有着不一样的优先级。请求类型 复位 (Reset) 数据中止(Data Abort)快速中断(FIQ)中断(IRQ)预取中止(Prefetch Abort)未定义指令(Undefined Instruction)软中断(SWI)优先级依次从高到低。这是说一下为什么会...

2019-10-03 18:21:10 2827

原创 tic-tac-toe游戏胜方判别(井字棋)(二)

在上一个程序中,对行和列的检查是放在两个二重循环中的,其实是可以放在一个二重循环里面的,只需要将对行和列的索引交换一下就可以了。#include <stdio.h>#include <math.h>int main(){ const int size = 3; int board[size][size]; int i, j; int ...

2019-10-02 09:10:25 369

原创 tic-tac-toe游戏胜方判别(井字棋)(一)

题目说明需要读入一个3x3矩阵,矩阵中1表示X,0表示O,如果有三个连在一起的相同符号,则该方获胜,如果没有,则没有获胜方。解决方法为了解决这个问题,需要做的是对整个矩阵进行遍历,看是否存在上述情况。为了达到目的,需要从行、列和对角线三个维度进行遍历。程序实现#include <stdio.h>#include <math.h>int main(){ ...

2019-10-02 08:59:49 476

原创 数字特征值——奇偶特征 C程序实现

对数字求特征值是常用的编码算法,奇偶特征是一种简单的特征值。对于一个整数,从个位开始对每一位数字编号,个位是1号,十位是2号,以此类推。这个整数在第n位上的数字记作x,如果x和n的奇偶性相同,则记下一个1,否则记下一个0。按照整数的顺序把对应位的表示奇偶性的0和1都记录下来,就形成了一个二进制数字。比如,对于342315,这个二进制数字就是001101。程序实现#include <std...

2019-10-01 18:13:26 387

原创 奇偶数的统计

输入一串数字,统计其中的奇偶数的个数。对于奇偶数的判别,只需要看对2取余的余数就可以了。#include <stdio.h>int main(){ int x; int count_1 = 0, count_2 = 0; scanf("%d",&x); while( x != -1 ) //-1为结束标志 { if( x% 2) { count_...

2019-10-01 17:23:14 440

原创 使用两个堆栈模拟一个队列的实现

堆栈:先进后出队列:先进先出显然一个堆栈是不能实现队列的作用的,我们可以使用两个堆栈来实现。设有两个堆栈,容量分别为O和P,且O>P,这里O并不是刚好等于P+1,仅是为了表达方便。...

2019-10-01 16:45:16 646

原创 统计数字出现的次数 C实现

我们可以使用C语言统计一串数字中相同数出现的次数。具体的代码如下:#include <stdio.h>int main(){ int x; int counter[10]; int i; for(i=0;i<10;i++) { counter[i] = 0; } printf("请输入数字串:(空格隔开,以...

2019-09-29 23:06:58 7838

原创 分队列的C实现

**题目内容:**班级第一次列队,通常老师会让同学按身高排成一列,然后1、2报数,喊到1的同学向前一 步,就这样,队伍就变成两列了。假设现在一个班级有n个同学,并且他们已经按身高排成 了一列,同学按身高从1到n编号,你能告诉我最后哪些编号的同学站在了第一列么?输入格式:输入一个正整数n,表示班级的人数。输出格式:按顺序输出所有在第一列的同学对应的编号,每两个编号之间用一个空格隔开,最后一个...

2019-09-27 13:15:04 384

原创 PTA|程序设计求m到n之间的整数之和

这是一个简单的程序设计题目。函数接口定义为:int sum( int m, int n );其中m、n是用户传入的参数,保障有m<n。函数返回值为m~n之间所有整数的和。裁判测试程序为:#include <stdio.h>int sum( int m, int n );int main(){ int m, n; scanf("%d %d", &m...

2019-09-24 09:27:32 2092

电话号码识别源码.rar

拨号音频的录音,录音频率为1000Hz。还包含电话号码识别的源码,可直接运行。

2021-02-18

TIMIT链接.txt

TIMIT数据库完整版的网盘链接,永久有效,这里上传不了完整版。TIMIT数据集的语音采样频率为16kHz,一共包含6300个句子,由来自美国八个主要方言地区的630个人每人说出给定的10个句子。

2020-04-04

PESQ_source.rar

包含了PESQ的源代码以及编译好的pesq.exe,PESQ的编译比较复杂,但pesq.exe可直接通过命令行窗口调用进行语音质量评估。

2020-04-04

Noise_92噪声库.rar

Noise_92噪声库的文件,包含了15个纯噪声数据,可以用于做语音增强算法的研究

2019-11-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除