# 次版は、全調波に共通する1回のgain遷移だけを加える

2026-10-19 UTC。既存結果を受けた**未実装の次版仕様**。新しいrun・音声測定・コード・Git操作は行っていない。文献を増やさず、既存24条件をそのまま比較する。

## 1. 実結果から変える一点

根拠は `clock-event-variance-results-received-20261019/results/results.json`。全24ケース成功。C3は全4seedでq10と正eventを回収した一方、C5は真q=0なのに全4seedでq10、eventなしとなった。C5の保存σ²は0.0028534〜0.0028738で、真の0.0004の約7.13〜7.18倍。target140 HzのKLは全4seedで約0.9281〜0.9286。

これは、**平均振幅の時間変化を周期noise分散へ逃がした失敗**。C4の相互作用不足は残るが、次の優先変更はmeanの時間変化とする。局在×周期分散、F0/VUV、event辞書は今回は変えない。

採るのは、全8調波係数を個別に時変化する方式ではなく、**全調波に共通する、正の単発gain遷移g(t)**。g候補をprepassで1本へ絞り、既存の分散探索中は固定する。定常g=1を最終対照に必ず残す。

## 2. 新しいmeanと有限辞書

`m(t)=g(t) Σ(k=1..4){a_k cos(kφ(t))+b_k sin(kφ(t))}`

調波係数は従来と同じ8個。gの有限候補は次に固定する。

- 定常候補：g=1。
- 遷移中心τ_g：**32〜224 ms、2 ms格子＝97位置**。
- 遷移の全幅w：**2／8／32 ms**。
- contrast α：**−0.75／−0.5／−0.25／0.25／0.5／0.75**。
- 非定常候補：**97×3×6＝1746個**。

`g(t)=1+αT(t;τ_g,w)` とする。Tは以下の固定された滑らかな段差。

- t≤τ_g−w/2：T=−1。
- 遷移内：`T=sin[π(t−τ_g)/w]`。
- t≥τ_g+w/2：T=+1。

これはraised-cosine型の単調遷移で、両端の導関数は0。gは常に0.25以上。増幅・減衰の両方向を表し、gainの符号反転で位相を変える抜け道を作らない。τ_gは遷移の中心で、局在variance eventの開始τとは別のパラメータである。

**真の128 ms、true gain、tanh幅はencoderへ渡さない。** 一般格子を全入力へ同じように適用する。C5の生成形と同じtanhを使う案でもない。ただしC5の既知失敗に応じた設計変更であり、未知自然音声への汎化証拠ではない。

## 3. encoder：prepassで1本、最終は2 branchだけ

### A. 有限prepass

1. 従来どおり既知Hを逆処理し、既知source位相からN×8の調波行列Xを作る。
2. 1746の非定常gについて、`gX` の8係数を**OLS**でfitし、残差平方和RSSを求める。
3. 共通分散を `σ²=max(RSS/N,σ²_floor)` へprofileし、`L_pre=0.5[RSS/σ²+N logσ²]` が最小の非定常gを**1本だけ**残す。床有効時もRSS項を保持する。床と数値不良の扱いは既存仕様に従う。
4. prepassではnullとの採用判定をしない。最良非nullを必ず最終比較へ渡す。目的関数の同値は小さい|α|、幅index、中心index、符号indexの固定順で解決する。

prepassはhomoscedastic近似であり、周期noise／局在noiseをmeanへ吸うbiasがあり得る。ここでの最小RSSを最終成功としない。prepassのgを分散探索後に再調整する反復も追加しない。

### B. 既存分散探索を2 branchへ適用

- branch 0：g=1。従来モデルそのもの。
- branch 1：prepassで選んだg*を固定。
- 各branchで、既存のq25候補、event辞書579群、強度比{1,4,16}、最大2段greedyを**変更せず**実施する。
- 各variance候補のWLSでは、XをgXへ置き換えるだけ。未知meanは8係数のまま。σ²のprofileも従来どおり。
- 最終目的関数：

  `L_next=L_existing + I(nonnull gain)·λ_gain`

  `λ_gain=log(1746)+0.5log(4096) ≈ 11.62 nats`。

gain罰則は最終比較で**1回だけ**加える。prepassと二重に課さない。固定された探索／表現の増分に対する記述長型規則であり、正確なposteriorではない。同値ならnullを優先する。

これにより、OLSがnoiseを吸ったg*でも最終の周期／局在分散との比較で棄却できる。一方、有用なgがprepassで落ちれば回復できない。その失敗はこのscreening近似の限界で、全時変meanの不可能性とは言わない。

## 4. 保存・編集・費用の増分

### 保存と復号

- mean8係数は従来のまま。別のtemplate8係数、波形、全残差は保存しない。
- 新規coreはmode flag＋中心index＋幅index＋α indexで、最大**4 bytes**。
- 理想的なcoreは最大44→48 bytes／256 ms。source F0等込みの従来最大52→56 bytes。これはpacked表現の予算で、既存JSON payload約505 bytes等の実ファイル容量とは別。実際の増分も報告する。
- **g(t)は絶対時刻で固定**。native120 Hzとtarget140 Hzの両方で同じgを使い、phase warpしない。周期carrierと周期noise分散だけをtarget時計へ移す。
- 初回の0.1生成尺度・truth・RNG domain・24入力・96出力条件は変更しない。

### 計算

- prepass：最大1746個の8係数fit。
- 本体：最大**2×約8.7万**の既存variance候補比較。各solveは8×8のまま。
- 1747 gain候補×8.7万variance候補の直積にはしない。多数spline係数の大行列も作らない。
- prepassは `g=1+αT` を利用して、`G_j=Xᵀdiag(T^j)X`（j=0,1,2）と置けばGramを `G_0+2αG_1+α²G_2`、RHSを `Xᵀx+αXᵀ(T⊙x)` としてα間で再利用できる。G_2はG_1の行列平方ではない。Tのplateau部分は累積十分統計、遷移部分は有限支持の更新を使える。これは同じOLS規則の最適化で、辞書を後から狭める変更ではない。
- 今回のv2はnull branchも内部で再計算し、from-scratch encoderの2 branch分を測る。初回の定常fitのキャッシュ再利用は行わない。PML／WORLDの参照引用とは区別する。
- RTFは未測定。新しい自己一致testや科学条件は追加しない。

**新runは候補v2の24 encode／96 decodeのみ。** 入力は元24配列を保持する。PML／WORLDは入力配列SHA・参照source・runtime条件の一致を確認できれば初回の保存値／音声を出典付きで引用し、再計測しない。新runに新規測定済みの行として合成せず、再利用した結果と分かる形で保持する。

## 5. 既存24ケースで判断すること

**主問いはC5の平均変化がmeanへ戻り、誤ったnoise推定も一緒に減るか。** 単にnative fitが良くなるだけでは足りない。

- C5：mean MSE、σ²／0.0004、qベクトル、native／target条件付きKL、選択gain中心・幅・αをseed別に比較する。true transitionは評価側だけで使う。
- C0〜C4：非null gainの誤選択数、mean／variance誤差、q、局在event帰属、KL差を全件出す。特にC3の正eventをgainへ吸っていないか、C4の局在variance不適合をmeanで隠していないかを見る。
- gain推定の改善と、最終branch選択による改善を分ける。C5でprepassが不適切なら、その1本を固定したことが失敗原因かを記録する。
- C4の相互作用項は変えない。今回改善しても相互作用問題を解いた扱いにしない。
- 既存PML／WORLDは同じ入力の参考結果を保持する。本案のoracle優位やKL非同列の留保も変えない。

一件の微小なseed変動や誤gainを、新たな「警告0必須」基準にはしない。C5のmean誤差・σ過大・誤qが揃って改善するかと、新たな系統的なC0〜C4悪化を併記する。改善と同程度の別の帰属崩れを生むなら採用を保留する。

この1変更でもC5の誤帰属が残る場合、まず共通gain仮定・有限形状・prepass選別のどこが不足かを区別する。結果後にgain候補数、event数、F0/VUVを同時に増やさない。自然音声や正式120へ進む判断は別であり、今回の24条件だけで品質採用しない。

## 6. 批評2巡の反映

**第1巡**：当初の「推定template×遷移を第9列へ足す案」は、厳密な共通gainではなくrank1方向の調波変化で、template8係数の追加保存も必要と指摘された。この案を外し、有限の正の共通gain＋既存8列に統一した。また、prepassだけでnullを選んで終了せず、最終2 branchで選ぶ形へ修正した。

**第2巡**：追加4 bytesは理想coreであり実JSON容量とは別、gは絶対時刻固定、gain罰則は最終に一回、C0〜C4で微小警告0を要求しない、prepass失敗を全時変meanの反証にしない、を確認した。核の仕様は実装可能な限定変更として批評確認済み。これ以上の科学条件は追加しない。

**最終選定：次版は「単発の共通gain遷移」だけ。局在×周期相互作用より、実際に大きく崩れたmeanの時間変化を先に直す。**
