系统框架设计

 

    该系统会将采集到的学习者的发音信息进行数据预处理,提取句子的音素,重读,语调和词间停顿四个语音特征,然后将对应的标准音映射标准发音器官形态库,再将这四个语音特征与标准音的发音特征做相似度比较,计算出发音评分。如果有发音不准确的地方,将以可视化的形式展示出学习者的发音器官形态与标准音的偏差,用以帮助学习者矫正英语发音。

 

系统数据流程设计

    第一步:首先利用麦克风等录音设备记录学习者的口语录音,并将其和标准音通过各种语音转换软件统一转换为WAV格式,作为初始音频信号。通过Scipy.io中的wavfile包读取学习者发音和标准音的音频信号的采样频率和音频长度,并绘出时域图。

 

 

         

 

    第二步:预加重处理,因为语音信号通常会有频谱倾斜现象,也就是高频语音部分的幅度比低频语音部分的小,由于语音信号电平变化的速度决定语音信号频率的高低,高频部分一阶差分的差分值大,低频部分一阶差分的差分值小,所以预加重可以使语音信号产生一个平衡频谱的作用,即增大高频音频部分的幅度。预加重通常使用一阶滤波器来表示,在本次毕业设计中,系数取0.945。经过预加重之后,可以明显看出预加重有平衡频谱的作用。

 

 

         

 

    第三步:分帧操作,在整个语音信号中,因为信号的频率会随着时间变化,所以在对语音信号进行预加重之后,需要对信号再进行分帧操作。因为语音信号具有短时稳定性,我们可以认为信号在10到30ms中,也就是一帧中保持稳定,这样就可以用一些信号处理算法比如傅里叶变换来对语音信号进行处理,在本次毕业设计中,帧移设置为10ms,帧长取25ms,覆盖为15ms。在分帧的时候,还可以对每一帧信号进行加窗处理,比如加汉明窗,加窗的目的是使每一帧的两端平滑地衰减,如此可以有效地减小傅里叶变换之后旁瓣的强度大小,获得更高质量的频谱。

 

 

         

 

    第四步:在完成语音信号分帧之后,接下来可以对每一帧计算短时能量,短时能量可以用于判别重读、词间停顿以及端点检测的部分。计算完成之后,可以得到语音信号的短时能量谱。

 

 

         

 

    第五步:在对每帧求短时能量的同时,还应计算每一帧的过零率,短时过零率表示的是每一帧的语音信号波形穿过横轴(零电平)的次数。使用短时过零率可以帮助我们进行端点检测以及区分清音和浊音。通常,高频段语音有较高过零率,低频段语音有较低过零率。经过计算之后,我们可以得到语音信号的短时过零率谱。

 

 

         

 

    第六步:在完成短时能量和短时过零率的计算之后,可以使用双门限法来进行端点检测。标准音和学习者发音均被分成了四个部分。将语音信息区分为多个语音片段,用于接下来的音素、重读等特征的计算。

 

 

         

 

    第八步:对某个语音片段进行梅尔倒谱系数(MFCC)特征的提取。

 

 

         

 

    第九步:在完成了对每一个音素进行梅尔倒谱特征提取之后,接下来应该计算学习者发音和标准音在重读、语调、音素、词间停顿四个方面的相似度,并计算最终的发音得分。

 

 

         

 

    第十步:最后,对每一个音素的梅尔倒谱系数特征与标准发音器官形态行为库建立映射关系。根据该映射关系将学习者每个音素的梅尔倒谱系数特征映射到标准器官形态行为库,得到相应的标准器官动作,再用matplotlib绘图包,画出学习者和标准音发音器官的偏差。