matlab实现声音转换

matlab实现声音转换

ID:31595013

大小:143.00 KB

页数:20页

时间:2019-01-15

matlab实现声音转换_第1页
matlab实现声音转换_第2页
matlab实现声音转换_第3页
matlab实现声音转换_第4页
matlab实现声音转换_第5页
资源描述:

《matlab实现声音转换》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实用标准文案数字信号处理——声音转换课题报告1.课题研究目标利用matlab或其他编程软件对音频信号进行处理,要求实现声音的转换。如男声和女声的转换,老人声音与童声的转换。2.课题使用工具Matlab3.课题技术线路精彩文档实用标准文案分析和处理音频信号,首先要对声音信号进行采集。Matlab的数据采集工具箱提供了一整套命令和函数,通过调用这些命令和函数,可直接控制声卡进行数据采集。Windows自带的录音机程序也可驱动声卡来采集语音信号,并能保存为wav格式文件,供matlab相关函数直接读取,写入和播放。本文以wav格式音频信号

2、作为分析处理的输入数据,用matlab处理音频信号的基本流程是:先将wav格式音频信号经wavread函数转换成matlab列数组变量;用matlab强大的运算能力进行数据分析和处理,即时域分析,频域分析,信号合成,识别和增强等;处理后的数据如是音频数据,则可用wavread转换成wav格式文件或用sound,wavplay等函数直接回放。4.课题实现的原理本程序使用的方法是通过改变基频然后时长规整的方式来达到目的。精彩文档实用标准文案(1)更改基频通过资料的查询和整理,可以知道不同人的基频不同统计如下:正常成年男声:0~200Hz

3、;正常成年女声:200~450Hz;小孩声音的基频要比女声的高,老年人的基频要比男声的低。经过整理统计可知女声基频=男声基频*1.5。本程序使用的是通过抽样与插值的方式来达到基频的改变。以女变男为例:用整数D对语音信号X(n)进行抽取精彩文档实用标准文案Xd=X(Dn);然后将X(n)的抽样频率提高到I(整数)倍,即为对X(n)的插值。D/I=3/2;(1)时长规整通过抽样插值来改变基频也使播放速度,播放时间发生改变,因此通过时长规整的方式来使播放速度和时间恢复到原来。本程序使用的是用重叠叠加算法来达到时长规整。重叠叠加算法原理:它

4、分为两个阶段——分解和合成精彩文档实用标准文案将原始信号以帧长N,帧间距sa进行分解,然后以帧间距ss进行合成。sa与ss的的比值决定了时长规整因子F=sa/ss。为保证重叠区域幅度不变,加了汉明窗。5.Matlab的实现及程序流程分为编程和gui的设计(1)编程y=resample(x,i,d);%重采样来达到抽值和插值的目的然后就是时长规整在具体介绍算法之前,先简要地介绍一下几种参数:精彩文档实用标准文案1)W:窗长度(WindowLength)。它代表了接受处理的语音信号的最小长度。2)Sa:分析延时(Analysisshif

5、t)。它代表了依次截取并进行处理的语音段首地址之间的间隔。3)Ss:综合延时(Synthesisshift)。依次输出的语音段首地址之间的间隔。4)kmax:查找延时。这一延时是指分析窗口为了与输出信号的尾部相一致而必须发生的一段延时。5)Wov:后一段语音与前一段语音相叠加的长度。为了能使上面的参数更容易理解,用下面的图标是各参量之间的关系。精彩文档实用标准文案精彩文档实用标准文案整个算法首先将语音段中的前W个数值取出来,直接存入到输出序列中。然后根据Sa的值取出下一段语音,也就是从第Sa个点开始取,一直取W个点。然后将这W个点中

6、的前Wov个点与输出序列的最后Wov个点进行比较,比较它们之间的一致性。记录下比较的情况,然后整个分析窗口(也就是截取W个点的窗口)向后移动一个样值,再将新的序列中的前Wov个点与输出序列中的后Wov个点进行比较,同时记录下比较结果。这样依次做Kmax次,然后取出比较结果中最一致的那种情况。将这种情况下,所截取的语音序列的前Wov个点与输出序列的最后Wov个点按某种方式进行叠加,然后再将W个点的窗口中剩余的Ss个点存入到输出序列中去。至此完成了一轮语音操作。下一轮语音段处理,与上面基本相同,只不过从输入序列中截取的语音段不是从原先的

7、起点开始而是在原先的起点的基础上向后延时Sa个点。如果我们用表示第m段语音信号,用表示原始信号的序列。那么两者的关系可以用下面的等式表示:km是第m个分析窗口的移动量。km的值得变化范围是0至Kmax。对于每一个分析窗口,km的值取遍这些值,同时比较每次语音段的前Wov个点与输出序列中的最后Wov个点的一致性。取出其中一致性最好的那个语音段将其前Wov个点叠加到输出序列中去。设叠加时所用的窗用表示,输出序列用那么精彩文档实用标准文案公式表明,已经在输出序列中的最后Wov个点通过与所选定的窗口中的前Wov个语音点以加权的方式叠加。加权

8、值与有关。叠加后将W个点中剩余的Ss(Ss=W-Wov)个点补充到输出序列中去。通过调整Sa的值和Ss的值(或者是Wov)的值就可以达到对语音信号进行时间长度上的变化。那么具体的每一段语音的km值究竟如何确定呢?要解决这一问题,关键在

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。