基于MATLAB的简单音乐合成仿真设计文档格式.docx
- 文档编号:22981673
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:32
- 大小:576.17KB
基于MATLAB的简单音乐合成仿真设计文档格式.docx
《基于MATLAB的简单音乐合成仿真设计文档格式.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的简单音乐合成仿真设计文档格式.docx(32页珍藏版)》请在冰豆网上搜索。
MATLAB是一种用于数据分析和处理的计算机应用软件,它可以将语音文件进行信息化处理转化为离散的数据文件,再通过内置强大的矩阵运算能力如数字滤波、时域和频域分析、傅里叶变换、时域和频域分析、声音合成以及各种图形的呈现等处理数据。
利用MATLAB自带的功能函数可以快捷而又方便地完成语音信号的处理和分析以及信号的可视化,使人机交互更加便捷。
音乐可视为
不同频率与振幅的正弦波叠加并加以不同包络所形成的信号,它的这个特点使得
MATLAB的处理有了可能,通过处理不同的音频MATLAB可以进行简单的音乐合成。
本文主要是基于MATLAB环境下的音乐合成研究,首先基于相关的处理函数合成简单的音乐,并且对音乐进行降噪、升降度和加谐波等处理;
然后基于傅里叶变换分析处理后的音乐频谱;
最后根据傅里叶级数的原理来再次合成音乐。
关键词:
音乐合成;
MATLAB;
傅里叶分析
Abstract
Inthecurrentsociety,informationtechnologyanddigitizationbecomemoreandmorehigh.Asanewtechnologytoprocessspeechsignalsbasedondigitalsignalprocessingtechnologyandphoneticknowledge,voicesignalprocessingtechnologyiswidelyusedinmoreandmorehigh-techindustries.Technologyhasbecomeoneofthecoretechnologiesinthefieldofinformationscienceengineeringandresearch.Computersynthesisofmusictotherapidspread,intheory,youcancreateanykindofsound.
MATLABisacomputerapplicationfordataanalysisandprocessingthattransformssoundfilesintodiscretedatafilesandthenprocessestheirdatawithpowerfulmatrixoperationssuchasdigitalfiltering,Fouriertransform,timedomainandFrequencydomainanalysis,soundsynthesisandavarietyofgraphicsrendering.UsingMATLAB'
sownfunctionfunctioncanquicklyandeasilycompletethevoicesignalprocessingandanalysisandsignalvisualization,human-computerinteractionmoreconvenient.Asthemusicsignalcanbeseenasaseriesofdifferentfrequencyandamplitudeofthesinewavesuperpositionandtheformationofdifferentenvelopes,soyoucanusethisfeaturebasedonMATLABsoftwareanalysisandprocessingofdifferentaudiosignalsforsimplemusicsynthesis.
ThispaperismainlybasedonthestudyofmusiccompositionunderMATLABenvironment,usingtherelevantaudioprocessingfunctionsforsimplemusicsynthesis,themusicnoisereduction,plusharmonicandliftingprocessing;
FouriertransformwiththecorrespondingtreatmentoftheMusicspectrum;
Finally,re-synthesisthemusicaccordingtotheprincipleofFourierseries.
KeyWord:
Musicsynthesis;
MATLAB;
Fourieranalysis
第1章绪论1..
1.1选题意义及背景1..
1.2国内外研究现状1..
1.3本文主要研究内容2..
1.4MATLAB音乐合成的原理3..
1.4.1所涉及的乐理知识简述3..
1.4.2音调与唱名4..
1.4.3音色与谐波4..
1.4.4十二平均律4..
1.4.5傅里叶变换与频谱分析4..
1.5MATLAB的发展史3..
第2章音乐合成的相关算法6..
2.1基于统计声学模型的合成算法6..
2.2基于离散变换的合成算法7..
2.3本文算法7...
第3章基于MATLAB的简单音乐合成设计9.
3.1MATLAB简介9...
3.1.1MATLAB的运行1..1
3.1.2变量、语句、矩阵与函数1..2
3.1.3绘制三维图形1..2
3.3核心算法实现1..3
3.4算法设计1..4.
3.4.1调用相关的MATLAB函数1..4
3.4.2音乐初步处理1..4
3.4.3音乐合成1..5.
第4章基于MATLAB的简单音乐合成仿真1.7
4.1合成音乐1..7.
4.1.1初始音乐合成1..7
4.1.2消除噪音1..7.
4.1.3重新生成音乐1..9
4.2原始声测试和傅里叶分析2..0
4.2.1原始声测试2..0
4.2.2傅里叶分析2..3
4.2.3重新合成新音乐2..5
第5章总结与展望2..6.
5.1总结2..6.
5.2展望2..7.
参考文献2.9..
致谢3.0..
第1章绪论
1.1选题意义及背景
半个多世纪以来,音乐家们一直致力于利用当今的科技和新材料来探索新的音乐,在原来的基础上进行不断的创新,音乐合成此项技术由于其强大的数据处理能力和创造能力便随之进入音乐家们的视野。
音乐合成技术,不仅可以巧妙模仿现有乐器的音色,还能够创造新的声音,极大地丰富了人类的音乐,给我们带来了无穷无尽的新音乐体验。
随着科技的发展,计算机合成音乐迅速在音乐界流传并普及。
作曲家和音乐家们为了创新和追求个性,往往选择在音乐中加入新的声音,而计算机合成音乐技术即为其提供了可能,因为在理论上它可以创造出任何一种声音。
现在,合成音乐已经逐渐脱离模仿现有乐器音色的道路,转而向创造音色方面发展。
虽然合成音乐在现代音乐领域已有相对广泛的应用,但是发展仍有所受限,国内在该方面的权威理论著作也很少。
这是因为它其涉及音色、声学、计算机等相关学科,是一门综合性强且专业性高的学科。
通过分析近年来使用合成音乐的现代音乐,可以发现合成音乐相较声学乐器在层次和音色上都具有显现的独特性,这些分析也能为计算机合成音乐在现代音乐制作的应用提供相对有实践价值的参考。
MATLAB是英文MATrixLABoratory(矩阵实验室)的缩写。
自1984年由美国MathWorks公司推向市场以来,得到了广泛的关注和发展。
在发达国家,MATLAB已经是大学以上学历者所必须具备的一项技能,是数字信号处理、时间序列分析、线性代数、自动化控制理论、动态系统仿真等诸多课程的基本教学工具。
而在设计和工业部门,MATLAB也有广泛的应用,主要用于解决各种具体的工程和交互问题。
根据国外的发展历史和近几年MATLAB在中国的发展趋势,可以预见其在不久的将来,将会在科学研究和工程应用领域发挥越来越大的作用。
1.2国内外研究现状
音乐合成技术是语音合成技术的一个分支。
国外对于语音合成的研究已长达200多年,虽然研究时间长但是显著的研究成果是在计算机技术和数字信号处理技术发展之后才出现的,主要表现为让计算机能够输出高清晰度和自然度的连续音乐。
近几十年,该技术在国内外的研究重点为规则文语转化,也就是将书面语
转化为口语
在语音合成技术的历史发展过程中,早期研究主要应用参数合成法。
其中最具意义的就是Holmes的并联共振峰合成器(1973)和Klatt的串/并联共振峰合成器(1980),这两个合成器只需要细致的参数调节即可合成自然的语音。
美国DEC公司的DECtalk,是当时最具代表性的文语转换系统,它就是搭载串/并联共振峰合成器,从而使得人机交互有了更大的便捷和可能,该系统可以通过计算机联网或者接入电话网来提供各项语音服务,不仅发音标准清楚,而且还具备7种不同的音色,受到了当时的广泛追捧。
但是后来人们发现,共振峰合成器尽管可以提供逼真的合成语音,但是其音质却因为提取共振峰参数的困难存在较大的缺陷,并不能满足当下需求。
因此在不断的研究下,语音合成技术又有了新的发展——基音同步叠加(PSOLA)方法(1990)。
这项技术基于时域波形的拼接,大大提高了合成音乐的音色和自然度,因此在九十年代初受到了广泛的关注,包括法语、英语、日语、德语等在内的文语转换系统都被成功开发研制出来,而且此项技术结构简单易于实时实现,有着非常美好的商用前景。
近年来的研究,也开发出一种基于数据库的新的语音合成方法。
该数据库为预先录下的庞大语音数据库,每个合成语句的语音单元都能从数据库中进行调取和拼接,因此只要数据库足够庞大,那么理论上任何语音都可以被合成出来且具有不同语境下的语气和音调差别,清晰度和自然度将会有质的提升!
1.3本文主要研究内容
在本设计中,MATLAB软件通过对音乐信号频率与时长的分析与组合来简单合成音乐。
频率表现音调,时长体现时长,基于该基础MATLAB在编程中能够存储音乐的频率和时长,并且通过将正弦波形的不同叠加与包络设置来仿真实现音乐的音调与节奏的变化。
主要特色:
1、直观而集中的显示各运行参数,能分析音乐合成的运行。
2、参数便于修改,从而方便改变音色和音调。
论文的主要结构分为五个部分:
第一章为绪论,简单介绍了选题背景和意义,同时介绍了国内外关于语音合成的研究状况,也描述了本文的主要研究内容和方向;
第二章是介绍了一些合成算法,本文的研究算法是从这些算法中综合而来;
第三章是简单音乐合成的设计思路,同时对基本原理进行了分析;
第四章是仿真实验部分,介绍了本文的实验成果;
第五章是总结;
最后部分是致谢。
1.4MATLAB的发展史
MATLAB由美国NewMexico大学CleveMoler教授编写并命名,起初他是为了方便学生调用EISPACK和LINPACK从而编写了其接口软件。
MATLAB的便捷性使其之后成为了国内外许多大学的教学辅助软件。
1984年,CleveMoler和JohnLittle创建了MathWorks并推出了第一版MATLABDO,S核心使用C语言编写。
随着MATLAB的不断发展,20世纪90年代末推出了MATLAB5.x版本,功能更加强大,能处理更多的数据结构。
2000年,MATLAB6.0出现,操作界面有了三个窗口:
程序、历史信息及变量管理,而FFTW系统的应用使得其计算速度上了一个台阶。
一年后(2001),MATLAB6.1及
Simulink4.0相继问世,功能更强大的MATLAB6.5也在2002年推出。
2004年,MATLAB7.0版本发行,优化了编程环境、数据可视化、计算和文件I/O等方面的功能。
此后几年,MATLAB7.1~7.14也不断更新迭代,性能不断优化,功能不断完善。
近几年推出的MATLAB2012(b8.0版)及MATLAB2013相a较之前有了较大的改变,主窗口中工具条替代了菜单和工具栏显得更加齐整和简洁,帮助文档在搜索、浏览和筛选功能上也有了大幅度的提升。
MATLAB2014和aMATLAB2014版b本也在之后推出。
本设计使用的是MATLAB2013,a它功能强大而且方便快捷。
1.5MATLAB音乐合成的原理
1.4.1所涉及的乐理知识简述
音乐合成过程中不可避免需要考虑音乐的三大特性:
音调、响度、音色。
音调就是音的高低,其主要影响因素为声波的频率。
响度为音的强弱,其主要影响因素为声波的振动幅度。
音色是声音的感觉特性,其变化是由音乐波形中谐波的作用产生的。
1.4.2音调与唱名
音乐曲谱中所对应的的1(do)、2(re)、3(mi)、4(fa)即为唱名,每个唱名
代表着各自独特的基波频率,但是要确定其基波频率必须先确定音调。
如,乐谱为1=C,代表音调为C调则“1(do)”的基波频率是261.6Hz,若乐谱为1=E则“1(do)”频率是239.6Hz,乐谱为1=G则“1(do)”的频率是392.1Hz。
1.4.3音色与谐波
音色是声音的感觉特性,其变化是由音乐波形中谐波的作用产生的。
在专业术语中,“泛音”指谐波,音调确认后可以确定唱名的基波频率,但是谐波频率的却无法确定。
乐器不同,所发出声音的音乐也不同,这是因为不同乐器会产生不同的谐波成分和频谱结构。
不仅如此,不同乐器多产生的音乐包络波形也迥乎不同,在合成音乐时常将音乐的复杂包络函数直线化,这是便于用程序来表示波形包络,因而常呈折线型。
1.4.4十二平均律
十二平均律,是指将音乐的八度按照频率等比例地分成十二份,是一种音乐定律的方法。
它被广泛应用在键盘乐器与交响乐队中,因为它不仅与“五度相生律”发音相似,而且能轻松解决转调问题。
国际标准音的规定显示,相邻的半音之间的频率之比定为2^(1/12)≈1.059,钢琴就是所有乐器中应用该规律的最常用乐器。
其琴键a1的频率规定为440Hz,所以根据国际标准音规定就可以算出钢琴其他所有琴键所对应的频率。
如,与a1左边相邻#g1频率是440/1.059=415.03Hz,与a1右边相邻的半音#a1的频率是466.16Hz,也可以算出不同音调下“1(do)”的对应的基波频率,即C:
261.63Hz,F:
349.23Hz和G:
392Hz等。
1.4.5傅里叶变换与频谱分析
音调、响度、音色,因此必须了解音乐的基波、谐波频率成分以及包络的形状特征。
应用傅里叶变化理论对音乐信号的频谱结构进行分析处理,有利于提取其频谱特征。
现代信号频谱的主要分析方法为有限长序列的离散傅氏变换(DFT),它能够将频域也离散化。
N点DFT实质上是其频谱的离散频域采样,对频率具有选择性
(ωk=2πk/N),在这些点上反映了信号的频谱。
N点DFT虽然能克服时间域与频率域之间相互转换的计算障碍,但是其计算量大计算复杂。
因此引用快速傅里叶变化(FFT)算法最简单、编程最容易的基2FFT,还有基4FFT、基8FFT等快速算法。
采样定律说明,FFT变换相当于对有限长序列进行频域采样,计算速度快而且也不会丢失信息,具有双重作用。
所以只要时域序列的长度足够长,采样的点数足够多,频域采样也可以很好地反映信号的频谱趋势,基于以上优点,在设计中可以用FFT进行语音信号的频谱分析。
第2章音乐合成的相关算法
音乐合成是语音合成的一种,因此语音合成的算法思路可以直接运用于音乐合成中。
对于语音合成的研究已经到了一个比较深入的阶段,也出现了多种不同的算法,但是归结起来,主要是两个大的方向,其中一种是通过统计学建立声学模型来进行语音合成,另一种是挑选语音的特征参数来识别并合成新的语音。
2.1基于统计声学模型的合成算法
这种算法的思路是在模型训练阶段,首先提取语料库中语音数据的频谱、基频等声学相关指数,与统计声学模型可以用于匹配之前和之后的内容,并通过语料库中音位以及韵律予以注释。
使用的模型结构为隐马尔柯夫模型。
当进入到合成阶段时,以使目标合成句对应的声学模型具有最大的似然值输出为准则,来进行最佳合成单元的挑选,最后通过平滑连接各备选单元波形来生成合成语音。
其核心在于对录入过程中中,对待合成字符产生的研究数据,需要将匹配的单元从前期进行录制的语料库中进行筛选,得到的结果为由波形进行编辑而成的语音成品。
这种效果制作的语音成品相比普通算法在自然度上有所超越,原因在于波形自身便具备自然的特性。
前期筹划的语料库的内容越广泛,自然度的优势就越明显,甚至会影响到语音合成未来的前进发展问题。
随着对语音合成技术的不断探究,目前以隐马尔柯夫模型作为主流算法,并且得到快速的推广。
类似统计建模的统计模型,范围在语音识别方面以获得广泛推广。
在这种参数的操作原理中,即是在参数合成的方式以统计模型为主,声学模型为辅的方式进行模拟,其中参数生成的方式为最大似然,通过对生成语音成品需求的频谱和韵律进行评估,再通过参数合成的方式转化语音。
以这种方式为原则,将提升系统的应用性,在运算期间,可以无视语种的区别以及进行自动化训练,最终使综合的自然度质量提高。
通常在自动化训练环节,在前期筹备的语料库里,可针对音素声学参数匹配音段、韵律进行内容注释,对HMM模型中之前和之后的内容进行信号频率、基频和时间长度进行训练。
在最后的合成环节,需要进行录入文本的解析,才可获取目标合成句中所有语音最小单位进行上下内容的注释,测试已优化好的模型与声学模型的匹配程度。
可以参照Kullback-Leibler算法原则进行单元的选择和MLE算法原则下进行单元值的选择,生成的最终单元序列可达到合成语音的平滑输出。
详细训练算法以及合成算法如图2.1所示。
图2.1基于统计声学模型的合成算法
2.2基于离散变换的合成算法
这种算法是在离散变换域中合成语音信号,建立语音线性预测模型,信号经过加窗后随着信号帧推进逐一展开处理,随之对语音取样值的线性组合进行预测以及运行基音检测算法择取语音帧,对语音信号进行模拟重建。
其主要特质为,通过对样本进行频率滤除,进而通过预测器进行预测,以语音线性预测模型进行优化,以达到控制信号的带宽,加窗后随着信号帧推进逐一展开处理,音频的重构合成将在声道模型中进行。
采用此种算法的亮点在于传输能力方面要好过模拟信号。
通常情况下,信号在转换过程中需要将模拟变为数字,而语音信号也不例外,作为对语音信号进行重构合成的变换域(即Z域),就是由离散系统转变而成。
2.3本文算法
通过结合实际情况,本文的算法思路是:
首先利用相关的语音处理函数进行简单的音乐合成,对音乐进行降噪、加谐波以及升降度处理;
然后用傅里叶变换分析经相应处理后的各音乐频谱;
最后运用傅里叶级数的原理来再次合成音乐针对语音音频进行对应的优化合成,对音乐频率中产生的噪音、非正弦电量、音调等参数进行分析优化。
采用此种的亮点在于,方便快捷,可以使普通音频合成的效果显著。
只不过,如果面对非常复杂的音频,就会出现诟病。
在噪音、音调等方面受到阻碍。
下文将着重通过博里叶技术变化进行剖析,证明此种方法的合理性。
第3章基于MATLAB的简单音乐合成设计
本章主要简单音乐合成设计,并对设计的基本原理进行分析,在介绍之前先对MATLAB进行一个简介。
3.1MATLAB简介
Matlab为缩写的英文名,而它中文命名为矩阵实验室(MATrixLABoratory),(矩阵实验室)的缩写。
在1979年的时候,克里夫?
莫勒尔正在为美国新墨西哥大学任教,当他在授课的时候,希望自己的学生可以运用EISPACK和LINPACK进行运算,当时他发现自己的学生在对接口进行编程经常要花费大量精力,给运算带来极大的不便。
为了解决这一问题,方便学生的运算,他便自己编写出程序库的接口程序,并且根据程序库的运算方式命名为矩阵实验室。
雏形时期的Matlab是用FORTRAN语言进行简编,用途比较单一,因为无偿使用又在学生中有良好的口碑,经常被各个大学所应用。
工程师JohnLittle敏锐地觉察到Matlab在工程领域的广阔前景。
同年,他和CleveMoler、SieveBangert一起合作成立了公司。
以C语言开发使之成为专业进行数据运算以及图表显示功能的专业软件。
在九十年代初期,公司不断对Matlab
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MATLAB 简单 音乐 合成 仿真 设计