2026年9月21日の開発日記 - Excel講座のナレーションを本人の声に、連結シミュレーターは紙面照合とExcel化へ
2026年9月21日の開発日記
9月21日は、Excel講座のナレーションと連結会計シミュレーターを、朝6時台から並行して進めた。 どちらの作業でも、機械のチェックだけでは足りず、別の手段で確かめる場面があった。 ナレーションでは、通しの秒数は機械で照合できても、音の良し悪しは自分の耳で聞いて決めるしかない。 シミュレーターでは、テストが全部通っているのに、参考書の紙面と照らす作業がまだ残っていた。
今日のタイムライン

今日やったこと
1. Excel講座のナレーションを本人の声にする
6時7分からのセッションでは、講座動画の画面が変わる時刻を機械検出させて拍を割り出し、区間ごとの語りをまず VOICEVOX で合成させた。 途中で、自分の声を写す Irodori-TTS に切り替えた。 合成に渡す台本では、誤読しそうな語を Claude Code が先回りしてひらがなやカタカナに書き換えていた。 ところが、ひらがなの「しさんひょう」は変に聞こえ、カタカナにした「W」も素の W より不自然だった。 そこで、台本の文字はそのまま渡すと決めた。 例外は、素のままだと「E スリー」「Bつー」と英語読みになるセル番地の数字だけで、その数字は漢数字(E三)にして渡す。
9時18分からのセッションでは、章1の23区間すべてを本人の声にした。 通しの時間が合成の合計と一致すること(1:30=90.0秒、3:28=208秒)は、Chrome DevTools で確かめさせた。 最後に、R2 への音声アップロードと本番デプロイを指示した。
主な成果:
- 読み替えのルールを「台本の文字はそのまま、セル番地の数字だけ漢数字」の1本にまとめた
- 6時7分のセッションで BPM120 のビートグリッドに載せて作り直させ、通しは126.0秒ちょうど(63小節)になった
- R2 へ23区間、120本、295.7MB の音声をアップロードし、本番デプロイ(3分2秒)まで済ませた
詳細: Irodori-TTSでExcel講座のナレーションを本人の声に:読み替え辞書を削ったら、残ったのはセル番地の数字だけ
2. 連結会計シミュレーターの計算バグをテスト先行で直し、参考書と照合する
朝いちばんに、前日に直した経路別の関数を部品として残し、その上に状態モデルの入口(executeCapitalTransition)をかぶせる進め方を決めた。
80→10 のように投資が一部残るケースの売却益(F18)は、先にテストを書かせた。
3,500 を期待したところに 3,000、10,500 を期待したところに 12,000 が返って落ちたのを確かめてから、仕訳と持分計算表が共有する関数に寄せて直させた。
F15 の原因は、同じ金額を経路ごとに別の式で丸めていたことで、整数の入力でも貸借が 0.5〜2 円ずれていた。
9時8分からは、参考書のスキャンを Claude Code に読ませ、7つの設例で事例データと紙面の差異が0件だと確かめた。 照らしてみると、整合性テストが比べていたのは最終残高の3行だけで、80→10 はテストの対象にも入っていなかった。 これを整合性テストに加えさせた。
主な成果:
- F18 と F15 を直し、
it.failsは0件になった - 設例4-2、4-3、4-4、4-5、5-1①、5-2、5-3 の7つで差異0件
- 整合性テストに 80→10 を加えた(904件→907件、
54c5990b) - 精算表で 10→30 の 1,500 と 80→10 の 670 が利益剰余金の期首残高に入る件は、いったん issue にした(同じ日の Excel 化の作業で直した)
詳細: 連結会計シミュレーターの計算バグをテスト先行で直し、参考書の設例7つと照合した
3. 連結会計シミュレーターの結果を Excel の連結精算表ブックにする
10時25分からは、シミュレーターの結果を Excel の連結精算表ブックに書き出す計画を立てた。
計画書を書く前に、エンジンで年度をつなげるかを確かめさせた。
13区間はどれも単発なら計算できるのに、前の年度の nextState を次の年度の期首に渡すと、2区間目(10% → 15%)で拒否された。
この手当てを Phase 1 に置いた。
既存の Excel 化のスキルを探させ、xlsx_helpers.py と verify_cfws_excel.py を読ませたうえで、再利用する範囲を決めた。
Codex のレビューは3回目で「計画として妥当」になり、決裁5件にはすべて推奨の A で答えた。
最初に上がってきたブックは、持分計算表を値で並べただけだった。
計算式が無い、罫線が無い、個別 TB へのリンクが無い、の3点を指摘した。
あわせて =G15-S社_TB!$F$20 を貼って並び順のルールを伝え、ブックを数式で組み直させた。
主な成果:
- エンジンでは、持分法の適用開始と中止による増減を、期首残高から当期変動の行へ移させた(上の 1,500 と 670 の件)
- 照合で8,736セル(13年度 × 42行 × 16列)が全部一致した
- 連結AJE の金額132個も数式に組み替えた
- 続きは add-task で翌日のタスクに登録した(コミットはまだしていない)
詳細: 連結会計シミュレーターの結果をExcelの連結精算表ブックに書き出す計画:13年つなぐとエンジンは2年目で止まった
4. そのほか
- 本番デプロイのログを貼って、Claude Code に裏を取らせた。配信中の buildId は今回のビルド(
f86c7376-…)と一致し、赤字や失敗に見える3箇所はいずれも無害だった。ただし、未コミットの変更が本番に出ていた - パランティアCEOの運動配分と自分の現状を並べた記事を書かせた。差分は「高強度の本数」と「ぶら下がり時間」の2点で、歩く量はすでに足りていた。あとからファーマーズウォークの基準も書き足させた(記事)
- 朝に
/make-diaryで9月20日分の日記を生成した
今日の試行錯誤
| # | テーマ | 試したこと | 結果 | 気づき |
|---|---|---|---|---|
| 1 | 読み替え辞書(06:07) | 漢字をひらがな(しさんひょう)に、W をカタカナ(ダブリュー)に書き換えて Irodori-TTS に渡した | 失敗。どちらも不自然に聞こえた | 書き換えは、誤読を聞いて確かめる前に入れていた |
| 2 | セル番地の読み(06:07) | セル番地を素のまま渡した | E3 が「E スリー」、B2 が「Bつー」になった。漢数字(E三)で確定 | 書き換えが要るのはセル番地の数字だけだった |
| 3 | 本人の声での合成(09:18) | 概要と新しいウィンドウを本人の声で合成し直させ、残りの区間も台本を入れて合成させた | 成功。通しの時間が合成の合計と一致した(1:30=90.0秒、3:28=208秒) | 時間の一致は Claude Code に、音の良し悪しは自分の耳に任せた |
| 4 | F18 の売却益(06:33) | 修正前にテストを書かせ、落ちる理由を確かめてから共通の関数に寄せさせた | 3,500 の期待に 3,000、10,500 の期待に 12,000 が返って落ち、修正後に通った。コミットは1回で通らなかった | 修正を一度外し、テストがバグを捕まえるのを確かめてからコミットした |
| 5 | F15 の端数(06:33) | 一時的な確認用テストで、小数の単価のずれを洗い出させた(確認後に削除) | 整数の入力でも 0.5〜2 円ずれていた。丸めを一度にそろえ、it.fails は0件 | 円に丸めるのは一度だけにし、もう片方は差額で出す |
| 6 | 参考書スキャンの読み込み(09:08) | ローカルの Dropbox フォルダからスキャンを開こうとした | 失敗。オンライン専用で開けず、Web 版のプレビューで読ませた | 原因は Windows 側ではなく、Dropbox の「同期を一時停止」だった |
| 7 | デプロイログの裏取り(09:16) | 生ログの ERROR、404、WARN の件数を数えさせた | 生ログがバイナリ扱いになり、件数が不正確だった。-a を付けて数え直した | 数え直しても、デプロイ自体は成功していた |
| 8 | 年度のつなぎ(10:25) | 13区間を、前の年度の nextState でつながせた | 2区間目(10% → 15%)で拒否された | 計画の前に実測したので、エンジンの手当てを Phase 1 に置けた |
| 9 | 計画書のレビュー(10:25) | Codex に計画書を3回レビューさせた | 初回は「要修正」で指摘3件、3回目で「計画として妥当」 | 手当ては合わせて4つになった |
| 10 | 最初のブック(10:25) | 持分計算表を値で並べたブックを作らせた | 3点を指摘し、数式で組み直させた。連結AJE の金額132個も数式にした | 他シートの参照を式の先頭に置くと、Ctrl+[ で確かめたいセルへ飛べる |
今日の学び
- 台本の文字を先回りして書き換えると、かえって発音が崩れた。書き換えとして残ったのは、素のまま渡して実際に「E スリー」と聞こえたセル番地の数字だけだった。
- 同じ金額を経路ごとに別の式で丸めると、整数の入力でも貸借が 0.5〜2 円ずれる。円に丸めるのは一度だけにして、もう片方は差額で出す。
- テストが全部通っていても、紙面との照合は別の作業だった。整合性テストが比べていたのは3行だけで、80→10 は対象にも入っていなかった。
- 計画書を書く前に年度の受け渡しを実測させたから、エンジンの手当てを Phase 1 に組み込めた。
明日やること
- 最新の連結精算表ブックを見て、レビュー結果を返す
- エンジンの修正とブックの書き出し(スクリプトと計画書)をコミットし、続きを進める