ささやきの低域誤差は乱数を変えても続くか

2026-10-12 · HNM v2と旧v1の4話者×8 seed診断 · 正式120録音とは別集計

同じ固定JVSささやき4録音を各8 seedで再合成した。現在のHNM v2と旧v1を比較し、64合成・64 eSTOIを測定、失敗は0。全帯域10 ms包絡誤差は32/32組でv2が小さい。一方、jvs066のeSTOI低下は8/8 seedで再現した。

jvs066の低域1–2秒の誤差増加は3/8 seedだけだった。seed 0で見えた局所的な悪化を、全seedの明瞭性低下の説明として扱う根拠は得られない。これは別の帯域・時間構造による影響まで否定するものではない。

以下の差はすべてv2 − v1。eSTOIは正が改善、包絡誤差は負が改善。角括弧は8 seedの最小・最大であり、信頼区間ではない。JSONの生データは外部比較器−現在ベース(v1−v2)で、表示時に符号を反転した。

話者eSTOI差 平均 [範囲]eSTOI低下10 ms全帯域誤差差40 ms全帯域誤差差
jvs004+0.000686 [-0.003346, +0.005737]4/8-0.006638 [-0.009389, -0.001957]-0.002354 [-0.003662, -0.000704]
jvs018-0.000617 [-0.003186, +0.002588]6/8-0.007306 [-0.008737, -0.004364]-0.002203 [-0.004036, +0.000516]
jvs066-0.006737 [-0.011262, -0.000314]8/8-0.005441 [-0.008944, -0.000771]-0.000685 [-0.004476, +0.004111]
jvs082-0.002114 [-0.011647, +0.005390]5/8-0.015010 [-0.022719, -0.005357]-0.005315 [-0.010179, +0.006394]

再現した点と、再現しなかった点

方式ごとの値

各セルは8 seedの平均 [最小, 最大]。

話者方式eSTOI ↑10 ms包絡誤差 ↓40 ms包絡誤差 ↓
jvs004旧v1+0.529883 [+0.515884, +0.547413]+0.132318 [+0.124710, +0.139904]+0.068429 [+0.058933, +0.079718]
jvs004現在v2+0.530569 [+0.514364, +0.545161]+0.125679 [+0.117594, +0.133019]+0.066075 [+0.055306, +0.078730]
jvs018旧v1+0.532789 [+0.507792, +0.544899]+0.145276 [+0.126095, +0.154611]+0.072748 [+0.061824, +0.090341]
jvs018現在v2+0.532172 [+0.507247, +0.544659]+0.137970 [+0.121731, +0.148119]+0.070545 [+0.061632, +0.086304]
jvs066旧v1+0.621348 [+0.602201, +0.638615]+0.159205 [+0.136590, +0.176068]+0.083486 [+0.071619, +0.099032]
jvs066現在v2+0.614611 [+0.593450, +0.634518]+0.153764 [+0.130292, +0.172114]+0.082801 [+0.070173, +0.099252]
jvs082旧v1+0.439423 [+0.428825, +0.466716]+0.210754 [+0.189514, +0.218819]+0.102694 [+0.095651, +0.120302]
jvs082現在v2+0.437309 [+0.420019, +0.463734]+0.195744 [+0.175890, +0.206330]+0.097379 [+0.086915, +0.111692]

低域の全録音・局所比較

差が正ならv2で誤差が増加。区間の寄与差と全録音NRMSE差は異なる単位。

話者帯域区間・量v2−v1 平均 [範囲]増加seed
jvs0040–300 Hz全録音・NRMSE+0.013604 [+0.008356, +0.017228]8/8
jvs0040–300 Hz1–2秒・二乗誤差寄与+0.001907 [-0.001509, +0.004626]6/8
jvs0180–300 Hz全録音・NRMSE+0.001457 [-0.007211, +0.013208]4/8
jvs0180–300 Hz1–2秒・二乗誤差寄与+0.000598 [-0.005778, +0.004985]4/8
jvs0180–300 Hz5–6秒・二乗誤差寄与+0.000186 [-0.001343, +0.001564]6/8
jvs018300–1000 Hz5–6秒・二乗誤差寄与-0.000086 [-0.000821, +0.000739]4/8
jvs0660–300 Hz全録音・NRMSE-0.001600 [-0.010055, +0.012742]2/8
jvs0660–300 Hz1–2秒・二乗誤差寄与-0.000722 [-0.003496, +0.002438]3/8
jvs0820–300 Hz全録音・NRMSE+0.019113 [-0.026850, +0.080456]5/8
jvs0820–300 Hz1–2秒・二乗誤差寄与+0.001298 [-0.000902, +0.006811]5/8
jvs0820–300 Hz5–6秒・二乗誤差寄与+0.018577 [-0.000137, +0.055855]7/8
jvs082300–1000 Hz5–6秒・二乗誤差寄与+0.001221 [-0.000112, +0.003726]6/8

測定方法と解釈の範囲

24 kHzの固定原音、先頭から最大6秒、位置合わせ・音量正規化なし。全録音へ4次Butterworthを前後向きに適用し、even端点延長を使う。10/40 ms RMS窓を5 ms間隔で置き、窓中心時刻で非重複1秒区間へ割り当てる。末尾は実長で、区間ごとにフィルタを再始動しない。

局所二乗誤差寄与は各帯域の全録音の原音包絡エネルギーで規格化する。局所NRMSEとは別の量である。帯域フィルタは直交しないため、帯域間の寄与を合計しない。全区間・6帯域・2窓長・全seedの値はJSONに保存した。

4話者という小標本で、seedを独立話者として数えない。eSTOIは明瞭性の推定で、自然性・MOS・人間評定とは区別する。日本語音声は原音・加工音とも公開しない。現在の既存比較対象はWORLD(Harvest)だが、この原因診断では再合成しておらず、今回の64合成に含めない。過去のWORLDを含む補助比較は別測定として参照できる。

実行と再現性

実行:2026年10月12日15:30:54〜15:32:20(日本時間)、終了コード0。現在のcheckoutは8a0cff2efb8783a6c016051404ade527d3401785。旧v1は採用前commit 9f1025cからGit管理外のパッケージへ復元し、保存済み実装SHAで識別する。旧実装を本体へ戻していない。

Windowsで新しく実行した別診断であり、元のLinux実行へ継ぎ足していない。過去seed 0の4録音×2方式×6帯域×2窓長、96個の全録音NRMSEを最大絶対差2.95×10⁻¹⁵で再現した。新たな音声品質の採用判定・自動MOSの実施は主張しない。

初回の相対パスと文字コードの実行失敗は実行ログに保存し、成功した別出力だけをこのレポートへ収録した。成功実行はpython -X utf8 -m vocoderbench.noise_stabilityを使い、外部パッケージを絶対パスで指定した。入力・実装・環境の詳細は条件JSON、全測定は結果JSONを参照。