音高对齐混合 · 全量评测
|
|
| 状态 |
✅ 完成(2026-09-01) |
| 一句话 |
混合之前先把两端音高都变到 F0_α,使谐波梳齿重合,从根上避免"两套梳齿并存"——纯推理端,不动训练 |
| 上游 |
← 探针页 §5–§6:中段电音归因于加性插值假设失效;注入 F0 与五种抹平法均无效 |
| 对照 |
M20@420k 直接混合(同 11 组、同 α 网格、同 eval_suite 口径) |
TL;DR
中段谷被显著填平(α=0.5:1.58 → 2.21),但外推档崩坏、CER 变差——只应在内插区使用。
- ✅ α=0.25 +0.54、α=0.5 +0.63(MOS)
- ❌ α=1.5 −0.68、α=2.0 −0.16:F0 也被外推,音高越界
- ❌ CER 0.050 → 0.096(WORLD 分解重合成的代价);delta 0.903 → 0.818
- ⇒ 混合策略(0<α<1 走对齐、其余走直路):总 MOS 2.12 → 2.29,CER 0.050 → 0.058
1 方法
模型出两端 mel(α=0 / α=1)──HiFT──> 两段音频
↓ WORLD 分解
中立:(F0_n, 包络_n, 非周期_n) 情感:(F0_e, 包络_e, 非周期_e)
↓ 只把 F0 换成 F0_α = exp((1−α)·log F0_n + α·log F0_e),包络与非周期各用各的
A′(中立音色 @ F0_α) B′(情感音色 @ F0_α)
↓ 各自提 mel
mel_α = (1−α)·mel(A′) + α·mel(B′) ──HiFT──> 输出
只改 F0 一个参数(已验证:重新分析的包络与原包络逐帧相关 0.957,
作参照中立↔情感的包络差为其 3 倍;F0 实测与目标偏差 0.17 半音)。
重建代价与情感无关:24 条情感原音做"参数一个不改"的 WORLD 往返,
情感分 0.996 → 0.943(−0.05,21/24 保持在 ±0.1 内),UTMOS 2.59 → 1.81(−0.79)
⇒ 掉的是保真度,不是情感。
1.1 WORLD 分解出什么、怎么重建
WORLD(Morise et al., IEICE 2016)把一段波形拆成三组逐帧参数;本项目按 16 kHz、帧移 20 ms 运行:
| 量 |
算法 |
每帧 |
含义 |
| F0 轮廓 |
Harvest |
1 个数(无声帧 = 0) |
音高 |
| 谱包络 |
CheapTrick |
513 个数(FFT 1024 的半谱) |
平滑频谱 ≈ 声道 / 音色,不含谐波梳齿 |
| 非周期性 |
D4C |
513 个数 |
各频带噪声成分占比(气声、摩擦) |
三组参数可由 synthesize 重建回波形。本方法只对 F0 做插值并共享,谱包络与非周期性各自原样保留;情感的混合发生在两端重建之后的 mel 域:
① 两端 mel(α=0 / α=1)→ HiFT → 波形 ŷ_neu, ŷ_emo
② WORLD 分析 ×2 → (F0, 谱包络, 非周期) 各一套
③ 共享 F0:log F0_α = (1−α)·log F0_neu + α·log F0_emo
只在两端都有声(F0 > 50 Hz)的帧上插值,单边有声取有声那边;
clamp 变体:F0 用 min(max(α,0),1),音高不外推
④ WORLD 重建 ×2:neu 的 (谱包络, 非周期) 配 F0_α → 波形;emo 的同理
⑤ 各转 mel(重采 24 kHz,80 mel,hop 480)→ M_α = (1−α)·M_neu + α·M_emo
⑥ HiFT → 输出波形
两端在同一条音高上重建,混出来的谱只有一套谐波梳齿——这就是它治中段电音的原因(机制见 M19 探针页)。
谱包络不在 WORLD 域里插值:那是 WORLD morph(E7 用它当过探针,CPP 1.44),不是本方法。
HiFT 用两次(两端各一次、混合后一次),WORLD 往返有固定代价(UTMOS 约 −0.8,E2 §4.4),所以只在中段谷划得来(E4 §3.2)。
2 全量结果(11 组 × 7 α,两臂同批样本)
|
基线 M20@420k |
音高对齐 |
混合策略 |
| delta |
0.903 |
0.818 |
0.903(端点与外推走直路) |
| CER |
0.050 |
0.096 |
0.058 |
| MOS |
2.12 |
2.16 |
2.29 |
按 α 分层:
| α |
0 |
0.25 |
0.5 |
0.75 |
1.0 |
1.5 |
2.0 |
| 基线 MOS |
2.87 |
1.94 |
1.58 |
2.17 |
2.64 |
2.18 |
1.47 |
| 音高对齐 MOS |
2.86 |
2.48 |
2.21 |
2.14 |
2.58 |
1.50 |
1.31 |
| 差 |
— |
+0.55 |
+0.64 |
-0.03 |
— |
-0.67 |
-0.17 |
| 基线 CER |
0.06 |
0.08 |
0.06 |
0.04 |
0.04 |
0.03 |
0.05 |
| 音高对齐 CER |
0.10 |
0.10 |
0.10 |
0.06 |
0.02 |
0.14 |
0.15 |
- 内插区(0.25 / 0.5)大幅改善,中段谷从 1.58 抬到 2.21
- 外推区(1.5 / 2.0)明显恶化:
F0_α 在 α>1 时被外推到情感之外,音高越界
- α=0 / α=1 走直路,两臂数值的微小差异来自 whisper 特征来源不同(缓存 vs 现场提取)
- CER 全域略升(0.050→0.096),是 WORLD 往返的代价
3 逐组试听(★ = 建议启用对齐的档位)
0001_text00010 Happy
| α |
基线(直接混合) |
音高对齐 |
| 0.00 |
2.69 |
2.59 |
| 0.25★ |
1.50 |
2.57 |
| 0.50★ |
1.27 |
2.35 |
| 0.75 |
2.02 |
2.14 |
| 1.00 |
2.46 |
2.34 |
| 1.50 |
1.55 |
1.30 |
| 2.00 |
1.27 |
1.28 |
0001_text00020 Happy
| α |
基线(直接混合) |
音高对齐 |
| 0.00 |
3.00 |
2.86 |
| 0.25★ |
2.35 |
2.66 |
| 0.50★ |
1.44 |
2.38 |
| 0.75 |
2.74 |
2.55 |
| 1.00 |
3.37 |
3.38 |
| 1.50 |
2.51 |
1.34 |
| 2.00 |
1.38 |
1.33 |
0001_text00230 Surprise
| α |
基线(直接混合) |
音高对齐 |
| 0.00 |
3.31 |
3.14 |
| 0.25★ |
2.60 |
2.60 |
| 0.50★ |
2.29 |
2.41 |
| 0.75 |
2.73 |
2.31 |
| 1.00 |
3.06 |
3.08 |
| 1.50 |
2.56 |
1.56 |
| 2.00 |
1.56 |
1.32 |
0001_text00290 Sad
| α |
基线(直接混合) |
音高对齐 |
| 0.00 |
2.22 |
2.19 |
| 0.25★ |
1.53 |
1.65 |
| 0.50★ |
1.35 |
1.54 |
| 0.75 |
1.41 |
1.52 |
| 1.00 |
1.71 |
1.65 |
| 1.50 |
1.61 |
1.35 |
| 2.00 |
1.38 |
1.24 |
0002_text00020 Angry
| α |
基线(直接混合) |
音高对齐 |
| 0.00 |
2.78 |
2.92 |
| 0.25★ |
1.92 |
2.17 |
| 0.50★ |
1.43 |
2.05 |
| 0.75 |
1.60 |
2.03 |
| 1.00 |
2.59 |
2.95 |
| 1.50 |
2.58 |
1.81 |
| 2.00 |
1.39 |
1.31 |
0002_text00120 Angry
| α |
基线(直接混合) |
音高对齐 |
| 0.00 |
2.92 |
2.85 |
| 0.25★ |
1.58 |
2.72 |
| 0.50★ |
1.41 |
1.98 |
| 0.75 |
1.67 |
1.94 |
| 1.00 |
2.28 |
2.34 |
| 1.50 |
2.22 |
1.34 |
| 2.00 |
1.35 |
1.27 |
0002_text00150 Angry
| α |
基线(直接混合) |
音高对齐 |
| 0.00 |
3.53 |
3.42 |
| 0.25★ |
2.20 |
3.01 |
| 0.50★ |
1.75 |
2.67 |
| 0.75 |
2.73 |
2.51 |
| 1.00 |
3.07 |
2.37 |
| 1.50 |
2.46 |
1.37 |
| 2.00 |
1.35 |
1.29 |
0008_text00230 Surprise
| α |
基线(直接混合) |
音高对齐 |
| 0.00 |
2.69 |
2.62 |
| 0.25★ |
1.82 |
2.31 |
| 0.50★ |
1.35 |
2.00 |
| 0.75 |
2.11 |
1.98 |
| 1.00 |
2.77 |
2.66 |
| 1.50 |
2.25 |
1.47 |
| 2.00 |
1.34 |
1.29 |
0009_text00160 Sad
| α |
基线(直接混合) |
音高对齐 |
| 0.00 |
3.68 |
3.47 |
| 0.25★ |
2.60 |
2.83 |
| 0.50★ |
2.16 |
2.82 |
| 0.75 |
2.61 |
2.65 |
| 1.00 |
2.99 |
3.14 |
| 1.50 |
2.63 |
2.20 |
| 2.00 |
2.37 |
1.46 |
0009_text00200 Surprise
| α |
基线(直接混合) |
音高对齐 |
| 0.00 |
2.63 |
2.46 |
| 0.25★ |
1.72 |
2.45 |
| 0.50★ |
1.50 |
2.16 |
| 0.75 |
2.00 |
1.84 |
| 1.00 |
2.19 |
2.09 |
| 1.50 |
1.77 |
1.39 |
| 2.00 |
1.53 |
1.29 |
0010_text00310 Happy
| α |
基线(直接混合) |
音高对齐 |
| 0.00 |
2.13 |
2.96 |
| 0.25★ |
1.49 |
2.35 |
| 0.50★ |
1.38 |
2.00 |
| 0.75 |
2.30 |
2.09 |
| 1.00 |
2.49 |
2.40 |
| 1.50 |
1.79 |
1.40 |
| 2.00 |
1.29 |
1.30 |
4 结论与限制
| 项 |
结论 |
| 中段谷 |
✅ 首个有效修法:α=0.5 +0.63、α=0.25 +0.54 |
| 外推 |
❌ 不可用:F0 外推导致音高越界,α=1.5 掉 0.68 |
| 内容 |
⚠️ CER 0.050 → 0.096,WORLD 往返的固定代价 |
| 情感 |
✅ 重建不伤情感(往返实测 −0.05),delta 的下降来自外推档 |
| 建议用法 |
仅在 0<α<1 启用;端点与外推走原路径 ⇒ 总 MOS 2.29、CER 0.058 |
| 部署成本 |
两次模型积分(可复用同一轨迹)+ 两次 HiFT + 每 α 两次 WORLD 合成与一次 HiFT |
| ⬜ 待办 |
换 RubberBand R3 变调以压低往返代价;扩到更多样本;外推档改为不插值 F0 |