iVocaloid论坛

标题: 【算法】LPC共振峰检测 [打印本页]

作者: Zleepwalking    时间: 2013/9/21 13:52     标题: 【算法】LPC共振峰检测

本帖最后由 Zleepwalking 于 2013/9/21 13:53 编辑

居然在没有线代常识的基础下把这东西搞懂了,虽然只是达到“能用”的程度。

LPC:Linear Prediction Coding,线性预测编码,用已有的信号预测随后的信号。通过最小二乘法获得最小预测误差(意义为声门激励)和脉冲响应(意义为声道滤波器)。(过程相当于解卷?)
主要运算是解矩阵方程,Levinson-Durbin算法可以极大地减少针对这种特殊矩阵的计算开销,其原理是将大规模矩阵运算拆成小一级的矩阵运算来解。

这是一个非常好的介绍:
http://www.emptyloop.com/technotes/A%20tutorial%20on%20linear%20prediction%20and%20Levinson-Durbin.pdf

代码(依赖于CVEDSP):

2013-09-21 13:53:43的屏幕截图.png
对输出的脉冲响应进行FFT可得到频域响应的倒数。通过H(z) = 1/A(z)求得频域响应,相当于频谱包络。    GenerateHamming(Window, 1024);ApplyWindow(InterArray, PFrames[PD.Amount / 2].Data, Window, 0, 1024);   
Boost_FloatSet(LPCCoef, 0, 1024);   
LPC(LPCCoef, InterArray, 1024, 32);   
GenerateBoxCar(Window, 1024);   
GetMagnitudeFromWave(InterArray, LPCCoef, Window, 10);
实测中相比直接取频谱包络能获得更高精度,但仍不能解决共振峰重合问题;而且对低频信号效果较差。
2013-09-21 13:49:53的屏幕截图.png
2013-09-21 13:50:06的屏幕截图.png
2013-09-21 13:50:15的屏幕截图.png
2013-09-21 13:50:52的屏幕截图.png
在Rocaloid中应用价值:CVDBStudio自动共振峰标识。



图片附件: 2013-09-21 13:49:53的屏幕截图.png (2013/9/21 13:50, 23.05 KB) / 下载次数 2
http://bbs.ivocaloid.com/forum.php?mod=attachment&aid=NzM0NDV8Mjg2ZmIzOTF8MTc0OTU2MTExM3wwfDA%3D



图片附件: 2013-09-21 13:50:06的屏幕截图.png (2013/9/21 13:50, 22.59 KB) / 下载次数 3
http://bbs.ivocaloid.com/forum.php?mod=attachment&aid=NzM0NDR8NzdiNmIxYzZ8MTc0OTU2MTExM3wwfDA%3D



图片附件: 2013-09-21 13:50:15的屏幕截图.png (2013/9/21 13:50, 22.36 KB) / 下载次数 4
http://bbs.ivocaloid.com/forum.php?mod=attachment&aid=NzM0NDN8YmMxNjliNDZ8MTc0OTU2MTExM3wwfDA%3D



图片附件: 2013-09-21 13:50:52的屏幕截图.png (2013/9/21 13:50, 22.14 KB) / 下载次数 4
http://bbs.ivocaloid.com/forum.php?mod=attachment&aid=NzM0NDJ8NWUyOTI0YWN8MTc0OTU2MTExM3wwfDA%3D



图片附件: 2013-09-21 13:53:43的屏幕截图.png (2013/9/21 13:53, 48.59 KB) / 下载次数 4
http://bbs.ivocaloid.com/forum.php?mod=attachment&aid=NzM0NDZ8OTJjMTdjODB8MTc0OTU2MTExM3wwfDA%3D


作者: 197118080    时间: 2013/9/22 19:40

你真是个天才,不夸张地说……
作者: 亡月劫    时间: 2013/9/29 19:48

卧槽为啥这么有潜力的项目还没更多大神加入呢QAQ




欢迎光临 iVocaloid论坛 (http://bbs.ivocaloid.com/) Powered by Discuz! X2