搜索

iVocaloid论坛

查看: 2044|回复: 0
打印 上一主题 下一主题

【算法】改进型LC-FECSOLA共振峰修改算法 [复制链接]

Sleepwalking

我不是技术宅!

Lv.5-章鱼须

Rank: 5Rank: 5Rank: 5

0
9
0


UID: 111156
权限: 40
属性: 宇宙人
发帖: 201 (1精)
积分: 540
章鱼: 3
大葱: 14
茄子: 2688
注册:2012/8/18
存在感:476
跳转到指定楼层
[1L]楼主
Zleepwalking 发表于 2013/10/25 08:35:45 |只看该作者 |倒序浏览
本帖最后由 Zleepwalking 于 2013/10/25 15:11 编辑

花了几天琢磨出这玩意:
Linear Combination - Formant Envelope Components Shift and OverLap Add
本质上还是在频域的OLA,但是对各子包络的拆分比原先好多了。
FECSOLA的拆分直接给共振峰包络加三角窗。如果遇到这种情况:
FECSOLA.png
这时F2往高频移,然后就呵呵了:F1F2脚踏两只船坐等阿鲁巴……请允许我做一个姚明的表情-> ->

LCFECSOLA先设N个(对于CVE3,N = 4)窗,可以是三角或汉宁窗,只要满足W[0] = W[N] = 0即可。每个窗的中心位于标注的共振峰频率上(F0 F1 F2 F3),窗宽度为共振峰宽度:

2013-10-25 08:33:24的屏幕截图.png
然后把四个窗加起来得到蓝线(S[n]),为了不让S[n] = 0,给每个子窗加上0.05

拿原先的频谱E[n]包络除以S[n],乘以各子窗,于是就分解出了F0[n] F1[n] F2[n] F3[n]...
2013-10-25 08:35:25的屏幕截图.png
易证F0[n] + F1[n] + F2[n] + F3[n] = E[n]

然后移动分解出的各包络,再重新加起来就可以实现频谱包络转变了。剩下来操作跟FECSOLA一样。

有空用LaTeX写篇更详细的介绍吧。。。

最后附个效果
iaiaoaio.wav.zip (172.59 KB, 下载次数: 19)

知识共享许可协议 除非另有声明,本帖内容采用 署名-非商业-相同方式共享 3.0 许可协议 授权,且需注明出处,所有权利归发帖人。

使用道具 举报

您需要登录后才可以回帖 登录 | 注册/sign up

申请友链|Archiver|iVocaloid - 自由,开放,合作,共享    | 版权持有者点击这里进行举报

GMT+8, 2025/6/7 16:52

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部