2.3 项目功能设计
第三章 人机交互界面设计
如上图,是我们最终的人机交互界面。主要分成两个部分,语音采集部分以及特效播放部分。左边是语音输入部分,包含两种方式:现场录音和打开文件。左下方还有一个播放录音或文件的按钮,方便用户在语音输入结束后,试听输入的信号。右边是播放特效部分,包括低音增强等六种特效,下方还有个另存为按钮以及效果选择下拉菜单,方便用户保存处理后的信号。
人机交互界面总体构图简洁,色彩柔和,布局合理,使用方便,在极大程度上方便了用户的使用,减少了学习使用的时间与成本。
第四章 数字语音信号几种简单处理效果设计
4.1 低音增强
(1)原理简述
低音增强特效,顾名思义就是讲声音信号的低音部分加强,是处理后的声音信号较原声音信号低频部分幅值增大。 (2)实现步骤
首先使用低通滤波器将声音信号的高频部分滤去,得到只包含低频部分的声音信号,将该信号乘以一个系数后增大,然后与原声音信号叠加,这样得到的新的声音信号频谱分布不发生改变,但是低频部分的幅值明显增大。
实现流程图如下:
(3)效果实现
语音播放后明显感觉到声音变得浑厚有力,有力量感。
下图是与声音信号的频域幅度图与低音增强后的频域幅度谱,从图中可以明显看到,低音增强后的信号在低频部分的幅度得到明显加强。
(4)应用实践
低音增强效果可以用在家庭音响上,可以提升声音的力量感,震撼感。我们现在家庭娱乐中常使用的“低音炮”用的就是低音增强的原理。 (5)核心代码分析
[x,fs,nbits]=wavread('1112'); %读声音文件
fp1=1000;fs1=2200; %设定低通滤波器通带截止频率和阻带截止频率 wp1=2*fp1/Fs; ws1=2*fs1/Fs;rp=1;as=100;
[N1,wp1]=ellipord(wp1,ws1,rp,as); %计算椭圆低通模拟滤波器的阶数和通带边界频率 [B,A]=ellip(N1,rp,as,wp1); %计算低通滤波器模拟滤波器系统函数系数 x1=filter(B,A,x); %低通滤波,得到含有低频部分的信号 y=x+x1*2 %语音信号叠加,得到低音增强后的信号
4.2 回声特效
(1)原理简述
回声是我们在日常生活中常会遇到一种声音信号,回声就是原声经过物体反射回来后与原声叠加后形成的效应。当回声的距离小于一定距离时,回声不能被人耳感知,变现为原声的加强;当回声距离大于一定距离时,回声能被人耳感知,能够感觉到在原声停止后一段时间后,再次听到此声音,并且响度相对减小。简单来说,就是延迟、衰减、叠加。
(2)实现步骤
回声是原声延迟衰减后与原声叠加。声音信号在matlab中以矩阵的形式存储。一般是N行2列的矩阵(这里指双声道声音),N是声音的点数长度。为了做到延迟效应,我们在原矩阵x的前面加上(接上)一段m行2列的为零矩阵,得到矩阵x1,这样如果将矩阵x,x1从同一起点观看,那么矩阵x1相当于时间x延时了一段时间。延时的时间与添加的零矩阵的长度以及采样频率有关。
那么只要将x与x1相叠加,就可以得到回声效果。这里要注意,由于矩阵相加时要满足矩阵形式相同,所以还要在原来的x后面也接上一段m行2列的为零矩阵,同时为了回声效果的逼真性,还要给x1倍乘一个小于1的系数。
实现流程图如下:
矩阵运算流程如下:
(3)效果实现
输出的声音人耳听起来有明显的回声效果。