语音的变速matlab处理,matlab调频信号
1.内容介绍一种实现声音变速调音的系统,由以下四部分组成:输入缓冲模块,将待处理声音信号的数据读入缓冲区;音调调制处理模块对声音信号进行音调调制处理,以改变声音的音调;变速恒声调处理模块对声音信号进行变速恒声调处理,改变语速但保持声调不变;数据模块输出变速音调调制信号。可变速率音调调制处理模块包括数据分段模块,其根据可变速率系数使用窗口函数从原始语音信号中提取一系列信号子序列(即声音的小段);连接数据模块,将这些信号子序列按时间顺序连接起来,得到变速恒调制信号。
2部分代码%
% ct1
全部清除,全部关闭,clc
%定义常数
FL=80%帧长度
WL=240;%窗口长度
P=10预测系数的数量百分比
[s,fs]=wav read( Sunday _ 2 . wav );%加载语音
s=s/max(s);标准化百分比
L=长度(s);%读入声音长度
FN=地板(L/FL)-2;帧数百分比
%预测和重建过滤器
exc=zeros(L,1);%激励信号(预测误差)
zi_pre=zeros(P,1);%预测过滤器的状态
s_rec=zeros(L,1);%重建语音
zi_rec=zeros(P,1);
%合成过滤器
exc_syn=zeros(L,1);%合成激励信号(脉冲序列)
s_syn=zeros(L,1);%合成语音
last _ syn=0;%存储前一段最后一个脉冲的下标
zi_syn=zeros(P,1);%合成过滤器的状态
%调制恒速滤波器
exc_syn_t=zeros(L,1);%合成激励信号(脉冲序列)
s_syn_t=zeros(L,1);%合成语音
last _ syn _ t=0;%存储前一段最后一个脉冲的下标
zi_syn_t=zeros(P,1);%合成过滤器的状态
%变速恒调制滤波器(假设速度加倍)
v=.5
exc_syn_v=zeros(v\L,1);%合成激励信号(脉冲序列)
s_syn_v=zeros(v\L,1);%合成语音
last _ syn _ v=0;%存储前一段最后一个脉冲的下标
zi_syn_v=zeros(P,1);%合成过滤器的状态
hw=海明(WL);%汉明窗
yn1_t,zi _ syn _ t);
exc _ syn _ t((n-1)* FL 1:n * FL)=exc _ syn 1 _ t;计算所得激励的%
s _ syn _ t((n-1)* FL 1:n * FL)=s _ syn 1 _ t;%的计算合成语音
last _ syn _ t=last _ syn _ t PT1 * floor((n * FL-last _ syn _ t)/PT1);
目标
%(6)S、exc和s_rec之间的区别
图;
Plot (3,1,1),plot (exc),xlabel (n(样本)),ylabel(振幅),title(激励信号);
Plot (3,1,2),plot (s),xlabel(‘n(样本)’),ylabel(‘振幅’),title(‘原始语音信号’);
Plot (3,1,3),plot (s _ rec),xlabel (n(样本)),ylabel(振幅),title(语音信号重构);
图;
Plot (3,1,1),plot (exc),xlabel (n(样本)),ylabel(振幅),title(激励信号),xlim([15*FL 1,16 * FL]);
Plot (3,1,2),plot (s),xlabel (n(样本)),ylabel(振幅),title(原始语音信号),xlim([15*FL 1,16 * FL]);
Plot (3,1,3),plot (s _ rec),xlabel (n(样本)),ylabel(振幅),title(语音信号重构),xlim([15*FL 1,16 * FL]);
声音(exc);
停顿(2);
声音;
停顿(2);
声音(s _ rec);
停顿(2);
原始语音和合成语音之间的百分比差异
图;
Plot (3,1,1),plot (exc _ syn),xlabel (n(样本)),ylabel(振幅),title(合成激励信号);
Plot (3,1,2),plot (s),xlabel(‘n(样本)’),ylabel(‘振幅’),title(‘原始语音信号’);
Plot (3,1,3),plot (s _ syn),xlabel (n(样本)),ylabel(振幅),title(合成语音信号);
声音;
停顿(2);
声音(s _ syn);
停顿(2);
%变速不变调。
图;
Plot (3,1,1),plot (exc _ syn _ v),xlabel (n (samples)),ylabel (amplitude ),title(合成慢激励信号),xlim ([0,length (exc _ syn _ v
Plot (3,1,2),plot (s),xlabel (n(样本)),ylabel(振幅),title(原始语音信号),xlim([0,长度(s)]);
Plot (3,1,3),plot (s _ syn _ v),xlabel (n (samples)),ylabel (amplitude ),title(合成慢速语音信号),xlim ([0,length (s _ syn _ v))
声音;
停顿(2);
声音(s _ syn _ v);
停顿(4);
%无速度变化的变调
图;
Subplot (3,1,1),plot (exc _ syn _ t),xlabel (n (samples)),ylabel (amplitude ),title(高调激励信号的合成),xlim ([0,length (exc _ syn _ t
Plot (3,1,2),plot (s),xlabel (n(样本)),ylabel(振幅),title(原始语音信号),xlim([0,长度(s)]);
Plot (3,1,3),plot (s _ syn _ t),xlabel (n (samples)),ylabel (amplitude ),title(合成高调语音信号),xlim ([0,length (s _ syn _ t))
声音;
停顿(2);
声音(s _ syn _ t);
3运行结果
参考文献4。[1]刘胜举,郝桂堂,一种实现声速变化和变调系统的方法:CN 101740034 A[P]。
有些理论引用自网络文献。如有侵权,联系博主删除。
原创作品来自matlab研究助手,
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。