# 既知の声道フィルタで通常IAIFの推定を調べる

**保存済みの人工信号研究を掲載するレポート。** [結果HTML](index.html)は、外部F0を受け取らない通常IAIFのPython移植を、真の声道フィルタが分かっている人工信号で調べた記録である。F0条件を変えると、同じ真の声道に対する推定応答も変わった。全1,368フレームで数値的に安定したが、それは声道の正解推定や音質の良さを意味しない。

現行のApronと既存方式の品質・試聴は[固定120録音の公開比較](https://hiroshiba.github.io/check-nonml-saikyo-vocoder/research/apron-fixed120-evaluation-2026-10-22/index.html)を参照する。この研究ではApronを測り直さず、codec音声も再合成していない。音声ファイルは同梱しない。Apronの採用状態も変わらない。

## 条件は二つの人工声道と三つのF0に限る

1本は24 kHz・2秒・48,000標本のfloat64人工信号。声道V0/V1は安定な8極の二設定で、共役極対の中心周波数と幅はV0が `(500,80),(1500,120),(2500,180),(3500,220)` Hz、V1が `(300,70),(2200,150),(3000,200),(4000,250)` Hz。人工声源G0/G1は共役極対と実極を持つ三極フィルタで、設定はG0が `(200,100,2000)` Hz、G1が `(300,180,4000)` Hz。特定の母音や生理的な声道を模した正解値とは呼ばない。

F0は周期励振の基本周波数で、120/200/300 Hzに固定した。周期は200/120/80標本。zeroは先頭から、halfは半周期ずらして単位インパルスを並べる。offは雑音なし、seed0/seed1はNumPy PCG64のseed 0/1で各48,000標本を一度だけ作った正規乱数列で、条件間で同じ列を使う。二声道×二声源×三F0×二位相×三雑音状態で72信号となる。すべての条件に周期励振があり、真の無声区間や有声・無声の移り変わりはない。

共役極対の分母節は `[1, -2r cos(2πF/24000), r²]`、`r=exp(-πB/24000)`。実極節は `[1,-ρ]`、`ρ=exp(-2πFreal/24000)`。GとVを順に通した後、放射差分フィルタ `[1,-0.99]` を適用する。周期成分と雑音成分を別々に通し、出力の中央 `[12000,36000)` 標本で測ったRMS比が雑音ありでは−30 dBになる利得を決める。混合後、同じ区間のRMSを1へそろえる。利得は元の結果に保存した。ピーク制限、clip、WAV変換は行っていない。

## 推定器は固定COVAREPを参照したPython移植

参照元はCOVAREPの[通常IAIF `iaif.m`](https://github.com/covarep/covarep/blob/5a2be5d6b776f14a0b275c69fde90eb13849e60d/glottalsource/iaif.m)、固定commit `5a2be5d6b776f14a0b275c69fde90eb13849e60d`、原ファイル5,585 bytes・SHA-256 `f2dcc8a6cd989e29abd50560bac0fbc10d1e52453cda6708e7f75cbb754757b0`。著作権表示はAalto University / Tuomo Raitio、ライセンスはLGPL-3.0-or-later。推定にはPython 3.12.14、NumPy 2.3.5、SciPy 1.17.0で書いた移植を使った。元のMATLAB/Octave版は動かしておらず、数値一致も未確認である。[固定source lock](source-lock.json)は移植コードの容量とSHAを記録するが、採用していない研究コードそのものはこのレポートに含めない。source lockの `execution_allowed: false` は実行前に固定した当時の状態であり、後に実施した一度の本計測を否定する値ではない。

入力は1,200標本の生フレームで、中心は `13200+1200j` 標本、`j=0..18`。50 ms刻み、各区間は `[中心−600,中心+600)`、72本で予定1,368フレーム。三F0の周期長の最小公倍数1,200標本に中心間隔を合わせた。451係数の高域通過FIRはSciPy `signal.firls` によりstop 40 Hz・pass 70 Hzで求める。フレーム末尾へ225個のゼロを足して通した後、先頭225標本を捨てる。高域通過後の `filtered` には窓を掛けず、`linspace(-filtered[0], filtered[0], 29)` を前置して共通入力 `signal` を作る。対称Hanning窓は、各LPへ渡す1,200標本に掛ける。計算順は `filtered×window → Hg1`、`filter(Hg1, signal)[29:]×window → Hvt1`、`leaky_integrate(filter(Hvt1, signal))[29:]×window → Hg2`、`leaky_integrate(filter(Hg2, signal))[29:]×window → Hvt2`。各段のfilterには同じ窓掛け前の `signal` を入力し、状態は毎回ゼロから始める。LPはバイアス自己相関とYule–WalkerのToeplitz方程式をSciPy `linalg.solve_toeplitz` で解き、次数は声源1→声道28→声源12→声道28。漏れ積分の分母は `[1,-0.99]` で、最後の声道LP分母 `Hvt2` を推定値とした。[保存run契約](run-contract.json)は係数・ハッシュ・周波数格子を記録する資料で、実行可能な移植コードではない。

## 形状誤差とF0間距離の読み方

100～8,000 Hzを25 Hz刻みで取った317点で、真の声道分母と推定分母から `20log10|1/A(f)|` を計算した。各曲線の317点平均を引き、二曲線の差の二乗平均平方根（RMSE、単位dB）を形状誤差とした。最終LP係数と周波数応答が有限で、数値計算した全極半径が1未満のフレームだけを主集計の `stable` に入れる。数値安定は精度や品質の合格線ではない。今回は72信号・1,368フレームを処理し、stable 1,368、unstable 0、数値失敗0だった。

信号ごとにstableなフレームのRMSE中央値と有効数 `n/19` を残した。F0間は同じ声道・声源・位相・雑音の三条件すべてでstableな同一フレームだけを使い、各F0の317点別中央値曲線からgrid平均を引いた後、三つの対のRMSEを求めた。24組すべて共通19/19フレーム。全結果は[72条件の抜粋](compact-summary.json)、[F0間比較の保存値](f0-comparison.json)、[実行要約](run-summary.json)に分けた。

19フレームは同じ定常人工信号の同位相窓で、独立した19標本ではない。雑音なしは窓間でほぼ反復し、乱数列も二つだけ。信頼区間、有意差検定、母集団への推定は行っていない。F0を変えると窓内の周期配置と条件ごとの雑音利得も変わるため、距離をF0単独の因果効果と呼ばない。自然音声、無声境界、48 kHzの品質、一般のIAIFの優劣にも広げない。

## 保存原本と二つの監査

[封印済みrunのファイル一覧](sealed-run-artifact-manifest.json)には契約・要約・比較値と72個票・72波形の計147件の容量/SHAがある。科学ソース、全72個票、float64波形はローカルに保持し、このレポートには含めない。この束は保存値と来歴の研究記録であり、これだけを使ってIAIFを独立に再実行できる完全再現パッケージではない。レポート内の[保存値監査](saved-result-audit.json)はその147件と係数・形状値を照合した。[別コードによる算術監査](independent-arithmetic-audit-public.json)は同じ環境で保存係数から応答曲線、フレーム誤差、中央値、F0間距離を再計算し、全項目でビット一致した。使用入力148件の事後ハッシュにも不一致はない。IAIF推定そのものの独立環境再現ではない。[本計測の終了記録](run-invocation-public.json)と[算術監査の終了記録](arithmetic-audit-invocation-public.json)は作業環境の絶対パスを省いた公開用要約で、元記録の容量/SHAを明記した。保存値の絶対パスを公開用要約から消しただけで、元証拠はローカルに残る。

図はV0/G0とV1/G0の位相zero・雑音offを示す。72条件の誤差範囲を受け取った後、個別の詳細を読む前に対象を固定した。実行前に選んだ図ではない。[図の来歴](figure-provenance.json)に縮尺、描画元6個票とローカル描画コードのSHAを記録した。図は保存済み曲線から作り、新しい推定をしていない。[掲載ファイル一覧](artifact-manifest.json)が同梱物の容量とSHAを示す。

次は、声源と声道の効果をまとめた全体フィルタと、位相が連続する確率的な励振を検討する。未知パラメータの推定条件は未解決で、実装・採用はしていない。
