ImageVerifierCode 换一换
格式:DOCX , 页数:47 ,大小:533.53KB ,
资源ID:18798400      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18798400.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于matlab的数字音效处理器毕业设计论文Word文档下载推荐.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于matlab的数字音效处理器毕业设计论文Word文档下载推荐.docx

1、在实际生活中,除了符合建筑声学标准的录音室、音乐厅等外,一般的室内都很难达到比较完美的音质及效果,通常需要使用音效处理器来进行处理、美化,这使得音效器的发展,得到了更为广泛的关注。1.2 项目背景及研究意义数字信号处理(DigitalSignalProcessing,DSP)是利用专门或通用的数字信号芯片,以数字计算的方法对信号进行处理,具有处理速度快、灵活、精确、抗干扰能力强、体积小等优点。DSP有硬件、算法和理论等三个基础支撑着它的发展和应用。硬件是指用VLSI(超大规模集成电路)实现的通用和专用芯片,目前许多芯片的运算速度已超过每秒几千万次,最高达到每秒16亿次,价格也大幅度降低。在通信

2、、电视、雷达和各种消费电子产品方面应用的软件和算法非常丰富,例如,信源编码(压缩)和解码、信道编码和解码,信号的调制与解调、噪声对消、信号加密与解密,电机的自动控制和各类信号的分析等。知成体系的理论包括离散线性系统理论、离散和快速变换理论、数字滤波理论、信号检测理论、量化效应和误差理论、非线性谱估计理论以及小波变换理论等。数字信号处理的应用领域十分广泛。就所获取信号的来源而言,有通信信号的处理,雷达信号的处理,遥感信号的处理,控制信号的处理,生物医学信号的处理,地球物理信号的处理,振动信号的处理等。若以所处理信号的特点来讲,又可分为语音信号处理,图像信号处理,一维信号处理和多维信号处理等。无论

3、哪方面的应用,首先须经过信息的获取或数据的采集过程得到所需的原始信号,如果原始信号是连续信号,还须经过抽样过程使之成为离散信号,再经过模数转换得到能为数字计算机或处理器所接受的二进制数字信号。如果所收集到的数据已是离散数据,则只须经过模数转换即可得到二进制数码。数字信号处理器的功能是将从原始信号抽样转换得来的数字信号按照一定的要求,例如滤波的要求,加以适当的处理,即得到所需的数字输出信号。经过数模转换先将数字输出信号转换为离散信号,再经过保持电路将离散信号连接起来成为模拟输出信号,这样的处理系统适用于各种数字信号处理的应用,只不过专用处理器或所用软件有所不同而已。语音信号处理是信号处理中的重要

4、分支之一。它包括的主要方面有:语音的识别,语言的理解,语音的合成,语音的增强,语音的数据压缩等。各种应用均有其特殊问题。语音识别是将待识别的语音信号的特征参数即时地提取出来,与已知的语音样本进行匹配,从而判定出待识别语音信号的音素属性。关于语音识别方法,有统计模式语音识别,结构和语句模式语音识别,利用这些方法可以得到共振峰频率、音调、嗓音、噪声等重要参数,语音理解是人和计算机用自然语言对话的理论和技术基础。语音合成的主要目的是使计算机能够讲话。为此,首先需要研究清楚在发音时语音特征参数随时间的变化规律,然后利用适当的方法模拟发音的过程,合成为语言。其他有关语言处理问题也各有其特点。语音信号处理

5、是发展智能计算机和智能机器人的基础,是制造声码器的依据。语音信号处理是迅速发展中的一项信号处理技术。第2章 总体方案设计2.1 项目需求分析该项目题目是数字音效处理器。要实现音效处理,大致可以分成三部分,即语音采集、语音处理、语音输出。首先要有待处理的语音信号。这个语音信号我们可以现场录制,也可以打开已经录制好语音文件;然后是语音处理,这部分由matlab程序实现;最后是语音输出,由计算机输出。2.2 开发平台Matlab 20082.3 项目功能设计第3章 人机交互界面设计如上图,是我们最终的人机交互界面。主要分成两个部分,语音采集部分以及特效播放部分。左边是语音输入部分,包含两种方式:现场

6、录音和打开文件。左下方还有一个播放录音或文件的按钮,方便用户在语音输入结束后,试听输入的信号。右边是播放特效部分,包括低音增强等六种特效,下方还有个另存为按钮以及效果选择下拉菜单,方便用户保存处理后的信号。人机交互界面总体构图简洁,色彩柔和,布局合理,使用方便,在极大程度上方便了用户的使用,减少了学习使用的时间与成本。第4章 数字语音信号几种简单处理效果设计4.1 低音增强(1)原理简述低音增强特效,顾名思义就是讲声音信号的低音部分加强,是处理后的声音信号较原声音信号低频部分幅值增大。(2)实现步骤首先使用低通滤波器将声音信号的高频部分滤去,得到只包含低频部分的声音信号,将该信号乘以一个系数后

7、增大,然后与原声音信号叠加,这样得到的新的声音信号频谱分布不发生改变,但是低频部分的幅值明显增大。实现流程图如下:(3)效果实现语音播放后明显感觉到声音变得浑厚有力,有力量感。下图是与声音信号的频域幅度图与低音增强后的频域幅度谱,从图中可以明显看到,低音增强后的信号在低频部分的幅度得到明显加强。(4)应用实践 低音增强效果可以用在家庭音响上,可以提升声音的力量感,震撼感。我们现在家庭娱乐中常使用的“低音炮”用的就是低音增强的原理。(5)核心代码分析x,fs,nbits=wavread(1112); %读声音文件 fp1=1000;fs1=2200; %设定低通滤波器通带截止频率和阻带截止频率w

8、p1=2*fp1/Fs; ws1=2*fs1/Fs;rp=1;as=100;N1,wp1=ellipord(wp1,ws1,rp,as); %计算椭圆低通模拟滤波器的阶数和通带边界频率B,A=ellip(N1,rp,as,wp1); %计算低通滤波器模拟滤波器系统函数系数x1=filter(B,A,x); %低通滤波,得到含有低频部分的信号y=x+x1*2 %语音信号叠加,得到低音增强后的信号 4.2 回声特效 回声是我们在日常生活中常会遇到一种声音信号,回声就是原声经过物体反射回来后与原声叠加后形成的效应。当回声的距离小于一定距离时,回声不能被人耳感知,变现为原声的加强;当回声距离大于一定距

9、离时,回声能被人耳感知,能够感觉到在原声停止后一段时间后,再次听到此声音,并且响度相对减小。简单来说,就是延迟、衰减、叠加。回声是原声延迟衰减后与原声叠加。声音信号在matlab中以矩阵的形式存储。一般是N行2列的矩阵(这里指双声道声音),N是声音的点数长度。为了做到延迟效应,我们在原矩阵x的前面加上(接上)一段m行2列的为零矩阵,得到矩阵x1,这样如果将矩阵x,x1从同一起点观看,那么矩阵x1相当于时间x延时了一段时间。延时的时间与添加的零矩阵的长度以及采样频率有关。那么只要将x与x1相叠加,就可以得到回声效果。这里要注意,由于矩阵相加时要满足矩阵形式相同,所以还要在原来的x后面也接上一段m

10、行2列的为零矩阵,同时为了回声效果的逼真性,还要给x1倍乘一个小于1的系数。矩阵运算流程如下:输出的声音人耳听起来有明显的回声效果。下图是原声、延迟的声音以及叠加后声音信号的时域图。 利用数字信号处理得到的回声可以在需要的情况下模拟回声效果,以适应需求。 x,fs,nbits=wavread(,1156384); %读取文件x1=zeros(4000,2);x; %前“添”零,声音延时x2=x;zeros(4000,2); %后“添”零,使原声音长度与延时后相等y1=x1*0.8+x2; %回声衰减并与原声叠加4.3 添加背景音乐 原理较为简单,即两个矩阵的相加。 首先将两个需要叠加的矩阵处理

11、使得形式一致(行列数相等),然后叠加即可。 可是实现为一段人说话声,唱歌声,朗诵声添加背景音乐,其本质是语音序列的叠加,所以可实现两段语音序列的叠加。 为一段人说话声,唱歌声,朗诵声添加背景音乐等,其本质是语音序列的叠加,所以可实现两段语音序列的叠加。较为简单,此处省略。4.4 回旋特效 回旋特效是我们根据效果来命名的,是将声音的左右声道分时播放,也就是说,在第一段时间内,左声道有声音,下一段时间内,右声道有声音,依次交替。对声音信号矩阵按行进行遍历,设定点数长度,依次交替分别使左、右声道的某段信号的值在该取样点段内置零。或者利用矩阵运算的方法实现。实现步骤如下:播放处理后的语音,耳机(非立体

12、声耳机)的左右耳机轮流有声音,即当左边耳机有声音时,右边耳机没有,反之亦然。这样就会产生声源在不断回转,声音有种回旋的效果。下面是原声以及处理后的左右声道的时域图: 在某些音乐作品中可以产生声源回旋变换的特效,增强音乐的丰富性。y=zeros(400000,2);%定义一个矩阵,400000); %读声音文件for i=1:400000 y(i,:)=x(i,: %新建信号序列,用于运算end x1=reshape(y,40000,20); %将信号分成了10段20列2:10 x1(:,i)=0; %110列,将单数列置零,即实现左声道的回旋endfor i=12:20 %1120列,将双数列

13、置零,即实现右声道的回旋x5=reshape(x1,400000,2); %重排序列,变成N行2列的序列sound(x5*2,fs); %单声道播放后,声音幅度有减小,这里做补偿4.5 快/慢放特效 快慢放的原理就是在单位长的时间内播放比原声包含更多或更少的信息的语音序列。以2倍速率快放为例,就是将原来2倍单位时间内的语音序列在单位时间内播放完,这里的原理用的是在播放时增大采样间隔,那么在单位时间内采集到的点实际包含了从2长度序列采集到的信号(实际上这里就是一个语音序列的有损压缩),虽然这样做有信息丢失,但只要满足奈奎斯特采样定律,语音信号就不会出现失真,所以在一定条件下是可行的。 在播放语音

14、序列时,更改采样频率即可。但是在作图必须对语音信号一步步处理。以快放为例,快放时,如果快放倍数为2,那么原本10s长的信号,可以在5s内播放完,并且语音的音调会变高,关于这一点将在后面解释原因。下面是2倍快放时的语音的时域图(2倍压缩图):从下面的图中可以看出快放的信号实质上就是原信号的压缩。下面是语音信号压缩的矩阵运算过程: 快放的这种原理可以用来在保证采样频率的前提下压缩语音信号。第一种方式(展示原理,绘制图像时使用),400000); %读取声音文件x1=x; %转置x2=reshape(x1,4,200000); %重排成2行,400000列x3=x2x4=x3(:,1,2); %取新

15、序列的1、2行第二种方式(实际程序中使用)Sound(x,2*fs); %改变采样频率,播放速度加快一倍第5章 自适应语音分割、倒序5.1 目标实现这里以一段包含“12345”5个单音节词的人说话声为例说明。我们要做到的倒序,就是将这段语音序列分割之后,进行重新排列,也就是倒序排列,然后倒序输出,这里的倒序输出指的是我们听的将是“54321”这样一段人的说话声。所谓的“自适应”,就是指在语音分割时的自适应,例如在分割时不能在“1”语音段中间将企分开,这样会破坏“1”的音,那么倒序之后我们听到的就不是“1”了,而会变成奇怪的东西。5.2 原理简述原理流程图如下:5.3 实现步骤(1)首先我们读入

16、一段语音文件或者现场录制一段声音,如录制一段包含“12345”的人说话声。时域图如下:我们可以看到有5段比较突出的地方,这就是“12345”这5个数字的声音的时域图,其他的较低的较平稳的部分是没有说话时的时间段,理论上应该是为0的,但是由于人的呼吸声、话筒噪音、环境中的其他声音使得这些本该为0的区域不为0。(2)为了去除空白区域的噪音,考虑到噪音与语音相比幅值较小,因此可以采用阈值法去除空白处噪音,得到下面的效果。(3)得到上面的滤除噪音制后的信号后,我们开始语音分割,为了实现语音分割,我们需要知道分割点,我们称之为关键点。从上图来看,每一小段声音信号的首尾点都是关键点。下面我们利用这些点的独

17、有特征来找到它们。这些点有共同的特征,它们都是跳变点。但是,我们知道每一小段语音信号中都会有很多点的值是零,那么就可能出现会有很多点满足关键点条件,因此,在寻找关键点之前我们要将没一小段为零的点变成不为零。(4)为了找到关键点,我们要将每一小段信号中为零的点变为不为零,这里采用左右扫秒判别法:即对于序列中每一个点,如果该点是零且又在某小段序列内,则将该点变为不为零。判断某点是零且又在某小段序列内的方法:遍历所有的点(整段序列首尾部分点除外),当遍历到某为点时,对该点左右各扫描m点,若在左右m点中都有任一不为零的点,则将该点值置为某正数a。这样经过一次遍历,就将所有小段内部为零的点均置为不为零,

18、这样,满足关键点的位置只有每小段的首尾点。那么根据跳变特性,就可以顺利将这些关键点依次找出。(5)找到关键点后,依据这些关键点进行语音分割。分割如下:(6)分割完后,就可以进行倒序重排了。到得到的效果如下:(7)算法优化(快速自适应倒序)根据实际测试,上述程序算法处理一段10s、采样频率44100Hz的声音倒序耗时约12.2s。从这个角度来看,上述算法是极不实用的,因此,下面给出一种改进的快速自适应倒序算法。该算法的核心是数据压缩。度原来的序列每个十个点抽取一个点形成一个新的序列,然后进行上述的关键点寻找步骤,由于数据压缩了十倍,因此在每小段语音序列为零点置为不为零的过程中所需要左右扫描的数目

19、就降低了十倍。因此,从理论上来讲,该快速算法比原来的算法的处理速度提高约10倍。实际测试中用该算法处理相同的语音段,耗时约0.9s.5.4 应用实践此项技术中的语音自适应分割是关键步骤,完成了这一步之后,可以进行语音提取,语音识别,语音重构等等。5.5 代码分析w,fs,nbits=wavread(123451N=length(w); %N是文件的长度,即点数即wavread中的第二个变量x=zeros(N,1); %定义单列矩阵x=w(:,1); %提取单声道元素,用于后面的运算y=zeros(N,1);y=w(: %找到关键点后,利用关键点对原矩阵运算L=N;%阈值消除噪音 N-1 %遍历

20、 if abs(x(i)3000) dot(b)=num(i); b=b+1;dot(b)=length(x);%=对语音序列逆序操作 new=; %存放逆序后的矩阵b-1 singlelen=dot(b-i+1)-dot(b-i); temp=zeros(singlelen,1); %temp临时矩阵,存放片段序列 for h=1: singlelen temp(h)=y(h+dot(b-i); new=new;temp; %片段拼接 temp=;%=对拼接做平滑处理 for i=2:new(dot(i)=(new(dot(i)-3)+new(dot(i)-2)+new(dot(i)-1)+

21、new(dot(i)+1)+new(dot(i)+2)+new(dot(i)+3)*1/6;第6章 项目实施过程时 间人 员事 件备 注第一周项目小组项目研讨及调研第二周系统设计与实施第三周程序编写与调试第四周项目小组、测试员程序测试与完善邀请测试员参与测试第五周项目报告撰写第六周项目回顾、总结与提高第七周答辩准备第7章 总结与展望7.1 项目总结此次项目的顺利圆满完成,离不开项目小组各位成员的团结协作与刻苦攻关,也离不开老师们的帮助与指导。在这七周的时间里,我们从一开始的查找资料,到项目的设计,再到实施、调试、改进,每一个阶段,都包含了我们每个人的辛劳与汗水。在项目实施的过程中,我们每个人的

22、能力都得到了极大的锻炼,不学到了许多与数字信号处理相关的知识,更是一种学习能力的提升,同时也是自学能力的培养。通过这次的项目的,我们数字信号处理有了更深刻的理解,对在矩阵运算的层面上的数字信号处理有了一定的认识与掌握。为将来更深入的学习数字信号处理打了的基础。7.2 项目展望此次数字信号处理的对项目虽然已经完成,但是我们所完成的项目毕竟是很小的成果,将来还有很多东西要学习。我们在将来的学习与工作中要把我们完成的这些效果的原理运用于实践。例如我们的“自适应语音分割、倒序”效果,在自适应语音分割技术的基础上,我们可以做语音提取、语音识别、语音控制等。学习的过程永远不是一蹴而就的,我们要牢牢把握现在

23、,放眼未来,打好基础,才能在未来的道路上走的更远。附录源程序:function varargout = MagicVoice(varargin)% MAGICVOICE M-file for MagicVoice.fig% MAGICVOICE, by itself, creates a new MAGICVOICE or raises the existing% singleton*.% H = MAGICVOICE returns the handle to a new MAGICVOICE or the handle to% the existing singleton*.% MAGIC

24、VOICE(CALLBACK,hObject,eventData,handles,.) calls the local% function named CALLBACK in MAGICVOICE.M with the given input arguments.Property,Value,.) creates a new MAGICVOICE or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before MagicVoice_Op

25、eningFcn gets called. An% unrecognized property name or invalid value makes property application% stop. All inputs are passed to MagicVoice_OpeningFcn via varargin.% *See GUI Options on GUIDEs Tools menu. Choose GUI allows only one% instance to run (singleton).% See also: GUIDE, GUIDATA, GUIHANDLES% Edit the above text to modify the response to help MagicVoice% Last Modified by GUIDE v2.5 11-Jan-2013 06:56:54% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = str

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1