跳转至

音高对齐混合 · 全量评测

状态 ✅ 完成(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

讨论