资源简介
如题,实我用过的一个声音处理matlab源程序!
代码片段和文件信息
function speechproc()
% 定义常数
FL = 80; % 帧长
WL = 240; % 窗长
P = 10; % 预测系数个数
s = readspeech(‘voice.pcm‘100000); % 载入语音s
L = length(s); % 读入语音长度
FN = floor(L/FL)-2; % 计算帧数
% 预测和重建滤波器
exc = zeros(L1); % 激励信号(预测误差)
zi_pre = zeros(P1); % 预测滤波器的状态
s_rec = zeros(L1); % 重建语音
zi_rec = zeros(P1);
% 合成滤波器
exc_syn = zeros(L1); % 合成的激励信号(脉冲串)
s_syn = zeros(L1); % 合成语音
zi_syn = zeros(P1);
% 变调不变速滤波器
exc_syn_t = zeros(L1); % 合成的激励信号(脉冲串)
s_syn_t = zeros(L1); % 合成语音
zi_syn_t = zeros(P1);
% 变速不变调滤波器(假设速度减慢一倍)
exc_syn_v = zeros(2*L1); % 合成的激励信号(脉冲串)
s_syn_v = zeros(2*L1); % 合成语音
zi_syn_v = zeros(P1);
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会被用来计算合成激励的能量
if n == 27
figure;zplane(1A);
end
s_f = s((n-1)*FL+1:n*FL); % 本帧语音,下面就要对它做处理
% (4) 在此位置写程序,用filter函数s_f计算激励,注意保持滤波器状态
[exc_1 zi_pre] = filter(A 1 s_f zi_pre);
exc((n-1)*FL+1:n*FL) = exc_1;
% exc((n-1)*FL+1:n*FL) = ... 将你计算得到的激励写在这里
% (5) 在此位置写程序,用filter函数和exc重建语音,注意保持滤波器状态
[rec_1 zi_rec] = filter(1 A exc_1 zi_rec);
s_rec((n-1)*FL+1:n*FL) = rec_1;
% 注意下面只有在得到exc后才会计算正确
s_Pitch = exc(n*FL-222:n*FL);
PT = findpitch(s_Pitch); % 计算基音周期PT(不要求掌握)
G = sqrt(E*PT); % 计算合成激励的能量G(不要求掌握)
% (10) 在此位置写程序,生成合成激励,并用激励和filter函数产生合成语音
if n==3
sta=0;
end
while sta <= FL
exc_syn((n-1)*FL+sta) = G;
sta = sta + PT;
end
sta = sta - FL;
[s_syn((n-1)*FL+1:n*FL)zf] = filter(1Aexc_syn((n-1)*FL+1:n*FL)zi_syn);
zi_syn = zf;
% (11) 不改变基音周期和预测系数,将合成激励的长度增加一倍,再作为filter
% 的输入得到新的合成语音,听一听是不是速度变慢了,但音调没有变。
FL_v = 2*FL;
if n == 3
sta_v = 0;
end
while sta_v <= FL_v
exc_syn_v((n-1)*FL_v+sta_v) = G;
sta_v = sta_v + PT;
end
sta_v = sta_v -FL_v;
[s_syn_v((n-1)*FL_v+1:n*FL_v)zf] = filter(1Aexc_syn_v((n-1)*FL_v+1:n*FL_v)zi_syn_v);
zi_syn_v = zf;
% (13) 将基音周期减小一半,将共振峰频率增加150Hz,重新合成语音,听听是啥感受~
PT_t = floor(PT/2);
if n == 3
sta_t = 0;
end
while sta_t <=FL
exc_syn_t((n-1)*FL+sta_t) =G;
sta_t = sta_t + PT_t;
end
sta_t = sta_t - FL;
[zpk] = tf2zp(1A);
omg = phase(p)+[3*pi/80;-3*pi/80;3*pi/80;-3*pi/80;3*pi/80;-3*pi/80;3*pi/80;-3*pi/80;3*pi/80;-3*pi/80];
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5512 2012-12-06 14:25 语音处理,改变声调、语速等,matlab代码\speechproc.m
文件 27460 2012-12-08 10:50 语音处理,改变声调、语速等,matlab代码\syn.pcm
文件 27460 2012-12-08 10:50 语音处理,改变声调、语速等,matlab代码\syn_t.pcm
文件 54920 2012-12-08 10:50 语音处理,改变声调、语速等,matlab代码\syn_v.pcm
文件 26844 2011-06-29 18:14 语音处理,改变声调、语速等,matlab代码\Tomvoice.pcm
文件 27460 2006-08-14 05:44 语音处理,改变声调、语速等,matlab代码\voice.pcm
文件 249 2011-07-24 09:13 语音处理,改变声调、语速等,matlab代码\Voice_1.asv
文件 265 2011-07-24 09:16 语音处理,改变声调、语速等,matlab代码\Voice_1.m
文件 202 2011-07-24 12:49 语音处理,改变声调、语速等,matlab代码\Voice_12.asv
文件 213 2011-07-24 12:50 语音处理,改变声调、语速等,matlab代码\Voice_12.m
文件 163 2011-07-24 10:29 语音处理,改变声调、语速等,matlab代码\Voice_7.m
文件 178 2011-07-24 10:44 语音处理,改变声调、语速等,matlab代码\voice_8.asv
文件 188 2011-07-24 10:47 语音处理,改变声调、语速等,matlab代码\Voice_8.m
文件 297 2011-07-24 10:54 语音处理,改变声调、语速等,matlab代码\Voice_9.asv
文件 352 2011-07-24 10:55 语音处理,改变声调、语速等,matlab代码\Voice_9.m
文件 4047 2012-12-06 14:28 语音处理,改变声调、语速等,matlab代码\语音处理所需资源\speechproc.m
文件 26844 2011-06-29 18:14 语音处理,改变声调、语速等,matlab代码\语音处理所需资源\Tomvoice.pcm
文件 27460 2006-08-14 05:44 语音处理,改变声调、语速等,matlab代码\语音处理所需资源\voice.pcm
文件 27460 2012-12-06 14:28 语音处理,改变声调、语速等,matlab代码\语音处理所需资源\exc.pcm
文件 27460 2012-12-06 14:28 语音处理,改变声调、语速等,matlab代码\语音处理所需资源\rec.pcm
文件 27460 2012-12-06 14:28 语音处理,改变声调、语速等,matlab代码\语音处理所需资源\exc_syn.pcm
文件 27460 2012-12-06 14:28 语音处理,改变声调、语速等,matlab代码\语音处理所需资源\syn.pcm
文件 27460 2012-12-06 14:28 语音处理,改变声调、语速等,matlab代码\语音处理所需资源\exc_syn_t.pcm
文件 27460 2012-12-06 14:28 语音处理,改变声调、语速等,matlab代码\语音处理所需资源\syn_t.pcm
文件 54920 2012-12-06 14:28 语音处理,改变声调、语速等,matlab代码\语音处理所需资源\exc_syn_v.pcm
文件 54920 2012-12-06 14:28 语音处理,改变声调、语速等,matlab代码\语音处理所需资源\syn_v.pcm
文件 27460 2012-12-08 10:50 语音处理,改变声调、语速等,matlab代码\exc.pcm
文件 27460 2012-12-08 10:50 语音处理,改变声调、语速等,matlab代码\rec.pcm
文件 27460 2012-12-08 10:50 语音处理,改变声调、语速等,matlab代码\exc_syn.pcm
文件 27460 2012-12-08 10:50 语音处理,改变声调、语速等,matlab代码\exc_syn_t.pcm
............此处省略7个文件信息
相关资源
- 先进PID控制及其MATLAB仿真 与配套源码
- 彩色地图中道路信息的识别与提取m
- 基于hmm的数字语音识别_matlab版
- 数值方法MATLAB版 英文版 答案
- 先进PID控制及其MATLAB仿真(附带)
- 数字信号处理(MATLAB版)235940
- 多种PID控制算法-matlab 实现
- matlab粒子群算法PSO实现函数极值优化
-
matlab/simuli
nk mu 分析与综合工具箱使 - 数字通信中PLL同步实现的MATLAB仿真代
- 基于matlab的mimo-ofdm的信道估计
- matlab影像纠正及内外精度评定
- 生物信号和生物医学的图像处理以M
- Matlab棋盘格角点检测算法
- 传感器网络节点定位算法matlab代码.
- ksvd算法matlab稀疏表示中训练字典
- 路径规划算法MATLAB仿真合集
- GPS基本原理及其Matlab仿真235516
- Canny边缘检测Matlab代码
- Kalman Filtering - Theory and Practice Using M
- 基于adaboost算法的目标检测MATLAB代码
- 基于matlab的人脸识别源代码235297
- 数字信号处理MATLAB版第三版
- Random Walks 标准程序,MATLAB程序,调试
- 车牌识别matlab程序235178
- MIMOOFDM 极化码 MATLAB
- 数字信号处理及其Matlab实现 陈怀琛
- Modelling.the.Wireless.Propagation.Channel.A.s
- MATLAB编程菜鸟入门教材
- 基于MATLAB的超声波声场模拟及可视化
评论
共有 条评论