本系列文章由 @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模型,
合成的时候,使用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模型的噪声合成分析~