手机对话中的语音处理(三)


本系列文章由 @YhL_Leo 出品。转载请注明出处。
文章链接: http://blog.csdn.net/yhl_leo/article/details/50359479


上一篇:博客手机对话中的语音处理(二)讲述了有声语音利用LP模型进行语音合成的整个流程,本文将讲述LP预測合成技术在无声语音(即噪声)中的使用。

2.2 30毫秒无声语音的LP合成

从上篇博客的语音波形图中选取一部分30毫秒的无声语音信号(这里选择2000~2239这段信号):

input_frame=speech(2000:2239);
plot(input_frame);



图 1 语音波形

绘制出其功率谱密度图。须要强调的是,我们如今处理的是噪声(并不是语音),所以採用平均周期频谱来估算功率谱密度(相比一个简单的周期频谱而言频率分辨率减少)。这里使用Matlab中的pwlech函数,默认将语音帧分为8个子帧,相邻之间重叠度为50%。

pwelch(input_frame);



图 2 功率谱密度图

相同使用LP模型,p=10合成一个新的帧。

合成的时候,使用all-pole滤波(使用预測残差的标准差σ作为其标准差)处理高斯白噪声帧:

[ai, sigma_square]=lpc(input_frame,10);
sigma=sqrt(sigma_square);
excitation=randn(240,1);
synt_frame=filter(sigma,ai,excitation);
plot(synt_frame);



图 3 合成语音波形

相同绘制出其功率谱密度图:

pwelch(synt_frame);



图 4 合成音功率谱密度图

非常明显,尽管合成音的波形与原音的波形基本没什么共同点,可是功率谱密度图还有些类似。

这就是LP模型的噪声合成分析~

posted @ 2018-01-21 12:10  zhchoutai  阅读(182)  评论(0编辑  收藏  举报