300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 用matlab实现女声变男声步骤 男声变女声matlab程序

用matlab实现女声变男声步骤 男声变女声matlab程序

时间:2019-12-31 06:09:27

相关推荐

用matlab实现女声变男声步骤 男声变女声matlab程序

% 载入声音

[s,fs,nbits] = wavread('222');

%播放原始声音

sound(s,fs,nbits);

FL = 80; % 帧长

WL = 240; % 窗长

P = 10; % 预测系数个数

s = s/max(s); % 归一化

L = length(s); % 读入语音长度

FN = floor(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); % 合成滤波器的状态

% 变速不变调滤波器(假设速度减慢一倍)

hw = hamming(WL); % 汉明窗

% 依次处理每帧语音

for n = 3:FN

% 计算预测系数

s_w = s(n*FL-WL+1:n*FL).*hw; % 汉明窗加权后的语音

[A E] = lpc(s_w, P); % 用线性预测法计算P个预测系数

% A是预测系数,E会被用来计算合成激励的能量

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。