语音信号采集与简单处理
- 格式:pdf
- 大小:71.17 KB
- 文档页数:5
语音信号处理课程设计报告python一、引言语音信号处理是数字信号处理中的一个重要分支,它主要涉及到语音信号的获取、预处理、特征提取、分类识别等方面。
在本次课程设计中,我们将使用Python语言对语音信号进行处理,并实现一个简单的语音识别系统。
二、问题描述本次课程设计的主要任务是实现一个基于MFCC特征提取和GMM-HMM模型的语音识别系统。
具体来说,我们需要完成以下任务:1. 对输入的语音信号进行预处理,包括去噪、分帧、加窗等;2. 提取MFCC特征;3. 使用GMM-HMM模型对不同的语音进行分类识别。
三、方法实现1. 语音信号预处理在对语音信号进行MFCC特征提取之前,需要对其进行预处理。
我们需要去除信号中的噪声。
常见的去噪方法包括基于阈值的方法和基于滤波器的方法。
在本次课程设计中,我们将使用基于阈值的方法对信号进行去噪。
我们需要将原始信号分帧,并对每一帧应用窗函数以减少频谱泄漏效应。
常见的窗函数包括汉明窗、海宁窗等。
2. MFCC特征提取MFCC是一种常用的语音特征提取方法,它可以将语音信号转换为一组包含语音信息的系数。
MFCC特征提取包括以下几个步骤:1. 对预处理后的语音信号进行快速傅里叶变换(FFT);2. 将频谱图转换为梅尔频率倒谱系数(MFCC);3. 对MFCC系数进行离散余弦变换(DCT)。
3. GMM-HMM模型GMM-HMM模型是一种常见的语音识别模型,它将每个单词表示为一个由高斯混合模型(GMM)和隐马尔可夫模型(HMM)组成的序列。
在本次课程设计中,我们将使用GMM-HMM模型对不同的语音进行分类识别。
四、程序实现1. 语音信号预处理我们使用Python中的librosa库对语音信号进行预处理。
具体来说,我们使用librosa.load()函数加载.wav格式的文件,并使用librosa.effects.trim()函数去除静默段。
我们对剩余部分进行分帧和加窗操作,并使用librosa.feature.mfcc()函数提取MFCC特征。
南昌工程学院《语音信号的采集与分析》课程设计题目语音信号的采集与分析课程名称语音信号处理系院信息工程学院专业通信工程班级 10通信工程2班学生姓名刘敏学号 2010103362设计地点电子信息楼指导教师邹宝娟设计起止时间:2013年12月9日至2013年12月20日目录一、需求分析 (4)1.1选题背景及意义 (4)1.2设计要求 (4)二、系统总体设计 (4)2.1 系统设计思路 (4)2.2 功能结构图及功能说明 (4)2.3 工作原理 (6)三、系统详细设计 (6)3.1 语音信号的matlab仿真的数据分析 (6)3.2 程序代码分析 (12)四、调试与维护 (14)4.1 调试过程的问题与维护 (14)五、结束语 (15)六、参考文献 (16)七、指导教师评阅(手写) (17)一、需求分析1.1选题背景及意义该设计主要是介绍语音信号的采集与分析方法,通过PC机录制自己的一段声音,运用Matlab提供的函数进行仿真分析,并画出采样后语音信号的时域波形和频谱图,对所采集的语音信号加入干扰随机高斯噪声,对加入噪声的信号进行播放,并进行时域和频谱分析;对比加噪前后的时域图和频谱图,分析讨论采用什么样的滤波器进行滤除噪声。
1.2设计要求(1)通过PC机录制自己的一段声音“南昌工程学院刘敏”;(2)运用MATLAB中信号处理相关的函数对语音信号进行时域、频域上的分析,如短时能量,短时平均过零率,语谱图等;(3)运用MATLAB对语音信号进行综合与分析,包括语音信号的调制,叠加,和滤波等。
二、系统总体设计2.1 系统设计思路系统的整体设计思路包括语音信号的录制,语音信号的采集,语音信号的分析,其中语音信号的分析又包括了语音信号的时域分析和频域分析,语音信号的加噪处理和滤噪设计分析。
2.2 功能结构图及功能说明实际工作中,我们可以利用windows自带的录音机录制语音文件,声卡可以完成语音波形的A/D转换,获得WAVE文件,为后续的处理储备原材料。
音频的数字化将音频信号数字化,实际上就是对其进行采样、量化和编码。
每秒钟需要采集多少个声音样本,即采样频率是多少?每个声音样本的位数应该是多少,也就是量化精度。
经过量化,模拟信号转换为一组离散的数值,这一组数值到底代表的是何内容,需要按照一定的规则组织起来,这就是编码。
为了做到无损数字化,采样频率必须满足采样定律,同时为了保证声音的质量,必须提高量化精度。
1采样连续时间的离散化通过采样来实现。
如果是每隔相等的一小段时间采样一次,则这种采样称为均匀采样,相邻两个采样点的时间间隔称为采样周期。
2 量化连续幅度的离散化通过量化来实现,就是把信号的强度划分成一小段一小段,在每一个小段中只取一个强度的等级值(一般用二进制整数表示),如果幅度的划分是等间隔的,就称为先行量化,否则就称为非线性量化。
3 编码经过采样和量化处理后的声音信号已经是数字形式了,但为了便于计算机的存储、处理和传输,还必须按照一定的要求进行数据压缩和编码,即选择某一种或几种方法对它进行数据压缩,以减少数据量,再按照某种规定的格式,将数据组织成为文件。
4 采样频率采样频率的高低是根据采样定律和声音信号本身的最高频率决定的。
采样定理指出,采样频率要大于等于声音最高频率的两倍,这样就能把数字表达的声音没有失真地还原成原来的模拟声音,这也叫无损数字化。
max 2s f f其中s f 为采样频率,max f 为被采样信号的最高频率。
语音录音中常采用的采样频率为:8Khz 、11.025khz 、22.050khz 和41.1khz 等。
而且人们发现高于41.1khz ,人的耳朵已经很难分辨。
一般为了达到精确,我们还会用48khz 甚至96khz 的采样精度,实际上,96khz 采样精度和48khz 采样精度的区别绝对不会像44.1khz 和22khz 那样大,我们所使用的CD 的采样标准就是44.1khz ,目前44.1khz 还是一个最通行的标准, 5 量化精度样本大小是使用每个影音样本的位数表示的,它反映了度量声音波形幅度的精度。
目录摘要: (1)关键词: (1)Abstract:. (1)Key words: (1)0 引言 (2)1 绪论 (2)1.1 课题的背景与意义 (2)1.2 国内外研究现状 (2)1.3 本文主要工作 (3)1.4 本文的仿真软件Matlab (4)2 语音信号的特点和采集 (4)2.1 语音信号的特点 (4)2.2 语音信号的采样原理 (5)2.3 音频信号的采集 (7)3 语音信号的分析 (8)3.1 语音信号分析技术 (8)3.2 语音信号的时域分析 (8)3.2.1 短时能量及短时平均幅度分析 (9)3.2.2 短时过零率分析 (9)3.3 语音信号的频域分析 (10)3.3.1 利用短时博里叶变换求语音的短时谱 (11)3.4 语音信号的语谱图 (12)4 语音信号的调制解调 (14)5 语音增强 (16)5.1 概述 (16)5.1.1噪声特性 (16)5.2 语音增强的一种算法-谱减法 (17)5.3 谱减法语音增强的仿真实现 (18)6结语 (20)致谢 (21)参考文献: (22)基于声卡和MATLAB的音频信号采集与处理电子信息科学与技术专业学生指导教师摘要:语音信号的采集与分析技术是一门涉及面很广的交叉科学。
它的应用和发展与语音学、声音测量学、电子测量技术以及数字信号处理等学科紧密联系。
语音采集和分析仪器的小型化、智能化、数字化以及多功能化的发展越来越快,分析速度较以往也有了大幅度的高。
本文简要介绍了语音信号采集与分析的发展史,讨论了语音信号的特征、采集方法,分析了时域和频域的特性,最后完成了语音调制和语音增强的仿真。
关键词:语音信号;采集与分析;MATLABCollecting and Processing of Audio Signal withMATLAB and SoundcardStudent majoring in Electronic Information Science and TechnologyTutorAbstract:Audio signal acquisition and analysis technique is a interdisciplinary science. Its application and development is closely related to many subjects such as phonetics, voice metrology, electronic measuring technology and digital signal processing. The development of audio signal acquisition and analytical instruments’ miniaturization, intelligentize, digitization and multi-functionality is rapider. Also the analyzing speed is faster than previous. The history of audio signal acquisition and analysis is introduced in this paper. The feature and collecting methods of audio signal is discussed. Also the character of audio signal is analyzed in both time domain and frequency domain. At last, the simulation of speech modulation and speech enhancement was done.Key words:audio signal; acquisition and analysis; MATLAB0引言音频是多媒体信息的一个重要组成部分,音频信号的频率范围大约是20Hz~20kHz。
电容式麦克风的数据采集与信号处理技术引言:随着通信技术和音频处理的进步,电容式麦克风作为一种常见的音频采集设备已经被广泛应用于各个领域,包括通信、音视频录制、语音识别等。
本文将探讨电容式麦克风的数据采集与信号处理技术,介绍其原理、特点、应用以及相关的前沿研究。
一、电容式麦克风的原理电容式麦克风是一种利用电容变化原理来实现声音信号的转换的设备。
其主要部件由一个可震动的薄膜和一个固定的金属板构成。
当声波作用于薄膜时,薄膜将会振动,使得与之相对应的电容值发生变化。
通过测量电容值的变化,可以得到声音信号的具体信息。
二、电容式麦克风的特点1. 高灵敏度:由于电容式麦克风采用电容变化原理,其灵敏度较高,可以捕捉到较微弱的声音信号。
2. 宽频响范围:电容式麦克风的频率响应范围通常在20Hz至20kHz之间,可以满足大多数声音采集需求。
3. 低失真:电容式麦克风的失真率较低,能够保持采集到的声音信号的原始质量。
4. 可定制化设计:由于电容式麦克风的结构简单,可以根据特定需求进行定制化设计。
三、电容式麦克风的应用1. 通信领域:电容式麦克风被广泛应用于电话、对讲机等通信设备中,以实现声音的采集和传输。
2. 音视频录制:在音频录制方面,电容式麦克风可以用于演唱会、音乐会等现场录音。
同时,它也被广泛应用于视频录制中,如电影、广告等。
3. 语音识别:电容式麦克风能够捕捉到人类的语音信号,并通过信号处理将其转化为可识别的数字信号,被应用于语音识别、语音指令等领域。
四、电容式麦克风数据采集技术1. 预处理在进行数据采集之前,需要对电容式麦克风信号进行预处理。
预处理主要包括信号放大、滤波、去噪等步骤,以减少噪声对数据采集的影响。
2. 数据采集电容式麦克风的信号采集可以通过模数转换器(ADC)来实现。
ADC将模拟信号转换成数字信号,以便于后续的处理和存储。
3. 数据存储采集到的数字信号可以通过RAM或者外部存储设备来存储,以保证数据的安全性和可靠性。
语音信号处理试验实验一:语音信号时域分析实验目的:(1)录制两段语音信号,内容是“语音信号处理”,分男女声。
(2)对语音信号进行采样,观察采样后语音信号的时域波形。
实验步骤:1、使用window自带录音工具录制声音片段使用windows自带录音机录制语音文件,进行数字信号的采集。
启动录音机。
录制一段录音,录音停止后,文件存储器的后缀默认为.Wav。
将录制好文件保存,记录保存路径。
男生女生各录一段保存为test1.wav和test2.wav。
图1基于PC机语音信号采集过程。
2、读取语音信号在MATLAB软件平台下,利用wavread函数对语音信号进行采样,记住采样频率和采样点数。
通过使用wavread函数,理解采样、采样频率、采样位数等概念!Wavread函数调用格式:y=wavread(file),读取file所规定的wav文件,返回采样值放在向量y中。
[y,fs,nbits]=wavread(file),采样值放在向量y中,fs表示采样频率(hz),nbits表示采样位数。
y=wavread(file,N),读取前N点的采样值放在向量y中。
y=wavread(file,[N1,N2]),读取从N1到N2点的采样值放在向量y中。
3、编程获取语音信号的抽样频率和采样位数。
语音信号为test1.wav和test2.wav,内容为“语音信号处理”,两端语音保存到工作空间work文件夹下。
在M文件中分别输入以下程序,可以分两次输入便于观察。
[y1,fs1,nbits1]=wavread('test1.wav')[y2,fs2,nbits2]=wavread('test2.wav')结果如下图所示根据结果可知:两端语音信号的采样频率为44100HZ,采样位数为16。
4、语音信号的时域分析语音信号的时域分析就是分析和提取语音信号的时域参数。
进行语音分析时,最先接触到并且夜市最直观的是它的时域波形。
语音信号采集与简单处理
一、实验目的、要求
(1)掌握语音信号采集的方法
(2)掌握一种语音信号基音周期提取方法
(3)掌握短时过零率计算方法
(4)了解Matlab 的编程方法
二、实验原理
基本概念:
(a )短时过零率:
短时内,信号跨越横轴的情况,对于连续信号,观察语音时域波形通过横轴的情况;对于离散信号,相邻的采样值具有不同的代数符号,
也就是样点改变符号的次数。
对于语音信号,是宽带非平稳信号,应考察其短时平均过零率。
其中sgn[.]为符号函数
x(n)-1sgn(x(n))0 x(n)1sgn(x(n))
短时平均过零的作用
1.区分清/浊音:
浊音平均过零率低,集中在低频端;
清音平均过零率高,集中在高频端。
2.从背景噪声中找出是否有语音,以及语音的起点。
(b )基音周期
基音是发浊音时声带震动所引起的周期性,而基音周期是指声带震动频率的倒数。
基音周期是语音信号的重要的参数之一,它描述语音激励源的一个重要特征,基音周期信息在多个领域有着广泛的应用,如语音识别、说话人识别、语音分析与综合以及低码率语音编码,发音系统疾病诊断、听觉残障者的语音指导等。
因为汉语是一种有调语言,基音的变化模式称为声调,它携带着非常重要的具有辨意作用的信息,有区别意义的功能,所以,基音的提取和估计对汉语更是一个十分重要的问题。
由于人的声道的易变性及其声道持征的因人而异,而基音周期的范围又很
10)]
1(sgn[)](sgn[21N m n n n m x m x Z
宽,而同—个人在不同情态下发音的基音周期也不同,加之基音周期还受到单词
发音音调的影响,因而基音周期的精确检测实际上是一件比较困难的事情。
基音
提取的主要困难反映在:①声门激励信号并不是一个完全周期的序列,
在语音的头、尾部并不具有声带振动那样的周期性,有些清音和浊音的过渡帧是很难准确地判断是周期性还是非周期性的。
②声道共振峰有时会严重影响激励信号的谐波结构,所以,从语音信号中直接取出仅和声带振动有关的激励信号的信息并不容易。
③语音信号本身是准周期性的(即音调是有变化的),而且其波形的峰值点或过零点受共振峰的结构、噪声等的影响。
④基音周期变化范围大,从老年男性的50Hz 到儿童和女性的450Hz ,接近三个倍频程,给基音检测带来了一定的困难。
由于这些困难,所以迄今为止尚未找到一个完善的方法可以对于各类人群(包括男、女、儿童及不向语种)、各类应用领域和各种环境条件情况下都能获得满意的检测结果。
尽管基音检测有许多困难,但因为它的重要性,基音的检测提取一直是一个研究的课题,为此提出了各种各样的基音检测算法,如自相关函数
(ACF)法、峰值提取算法(PPA)、平均幅度差函数(AMDF)法、并行处理技术、倒谱法、SIFT 、谱图法、小波法等等。
三、使用仪器、材料
微机(带声卡)、耳机,话筒。
四、实验步骤
(1)语音信号的采集
利用Windows 语音采集工具采集语音信号,将数据保存
wav 格式。
采集一组浊音信号和一组清音信号,信号的长度大于
3s 。
(2)采用短时相关函数计算语音信号浊音基音周期,考虑窗长度对基音周期计算的影响。
采用倒谱法求语音信号基音周期。
(3)计算短时过零率,清音和浊音的短时过零率有何区别。
五、实验过程原始记录(数据,图表,计算)
短时过零率
短时相关函数
P
j j n s n s j R N j n n n n ,,1)()()
(1
10)]
1(sgn[)](sgn[21N m n n n m x m x Z
六、实验结果,及分析
图一清浊音
图二浊音自相关函数
图三清音自相关函数
实验结果分析:
清音短时过零率高,浊音过零率低。
浊音、清音自相关函数可以看出,浊音存在基音周期,清音不存在基音周期。
浊音的基音周期是自相关函数峰值之间的时间差。
七、实验参考程序
1.段时能量
a1=zeros(1,620);K=450;R=zeros(1,250);
duanshnl=0;maxx=0;speech=zeros(1,1000);
语音信号处理试验\a.wav');%8000采样频率maxx=max(sp1);
speech(1:1000)=sp1(1:1000);
duanshnl=speech(1:1000)*speech(1:1000)';
duanshnl=duanshnl/(maxx^2)
plot(sp1(1:400));
hold on
语音信号处理试验\s.wav');%8000采样频率
speech(1:1000)=sp(1:1000);
qduanshnl=speech(1:1000)*speech(1:1000)';
qduanshnl=qduanshnl/(maxx^2)
plot(sp(1:400),'r')
2 短时过零率
close all
a1=zeros(1,620);K=450;R=zeros(1,250);
duanshnl=0;maxx=0;speech=zeros(1,1000);
语音信号处理试验\a.wav');%11000采样频率
语音信号处理试验\f.wav');%11000采样频率L=mean(sp);sp=sp-L;L2=mean(sp1);sp1=sp1-L2;
%以下程序计算短时过零率
m1=0;m2=0;
for i=1:2000
if sp1(i)>0
spp1(i)=1;
else
spp1(i)=-1;
end
end
for i=1:2000
if sp(i)>0
spp(i)=1;
else
spp(i)=-1;
end
end
for i=2:2000
m1=m1+0.5*abs(spp1(i)-spp1(i-1));
m2=m2+0.5*abs(spp(i)-spp(i-1)); % m2 >> m1
end
plot(sp1(1:2000),'r'); hold on
plot(sp(1:2000));。