財務3表の動画講座を改善した日:Whisperの書き起こしで読み上げの聞き違いを洗い出し、ストーリー版にキャッシュフロー計算書の間接法を足す

開発eurekapu-nuxt4

財務3表の動画講座を改善した日

朝、前日の引き継ぎファイルを Claude Code に渡して、動画講座サイトで出している旧講座(財務3表)の改善を再開した。 午前のセッションで引っかかったのは、合成した声が「百五十万円」を「五十万円」と言っているように聞こえる箇所だった。 夕方には、財務諸表ストーリー版の導入に間接法の仕組みを足す作業へ移っていた。

午前:旧講座の音声を書き起こして、今の文と突き合わせる

計画書の段1(誤変換の置換)は、37本で約350か所を直したところで終わっていた。 段4の突き合わせはサブエージェント5本(担当A〜E)に並列で任せ、その待ち時間に段3(25取引の整合チェック)を進めてもらった。

段3の出発点は、解説音声の文が古くなっていないかという疑いだった。 R2 にある解説音声134件は、すべて2026-05-08に作られていた。 git の履歴を見ると、その日以降に解説の文は変わっていない。 文が同じなら、残る疑いは「合成した声が文どおりに読めているか」になる。 そこで、Mac の Whisper で実際の音声を書き起こして照合することにした。

mlx_whisper が1本しか書き出さなかった

Mac で書き起こしを走らせてもらうと、mlx_whisper に複数ファイルをまとめて渡した場合、最初の1本しか出力されていなかった。 Python から1本ずつ呼ぶ形に組み替えてやり直し、書き起こし391本がそろった。

今の解説や台本の文と照合すると、食い違いは22件に絞れた。 そのうち「百五十」「五百十九」が欠けて聞こえる件は、音声合成に渡した読み(tts_text)まで確認してもらった。 同じ読みを含む文がほかの回にも無いか台本から洗い出すと、「百五十万円」を含む拍は9本すべてで「五十万円」に聞こえた。 1本だけがたまたま崩れたのではなく、系統的に崩れている。 なぜ「百五十」が「五十」に化けるのかは、この日の時点ではまだ分かっていない。

話す速さと、1文あたりの新しい用語

計画書の §5 を更新してから、話す速さ(§4-2)に移った。 旧と新を同じ方法、つまり Whisper の書き起こしの文字数を発話時間で割る方法で比べる。 あわせて1文に新しい用語がいくつ入るかも数えてもらい、3つ以上入る文は1,483文中2文だけだった。

数字の文字の大きさも測った

段2では、画面の数字がどれだけ小さいかを実測した。 Windows の tesseract で数字の語の外接矩形の高さを取った。 カンマは下にはみ出すので、カンマを含まない数字だけを使っている。

  • 旧動画の数字は、1920幅でわずか10pxの高さだった
  • 改良版の PC 版でも、四表の場面は中央値7〜10px換算だった
  • ストーリー版のスマホ版は、400枚すべてが14px未満だった
  • コクピットの PC 版(1440幅)は中央値13.3pxで、26枚中25枚が合格ライン(12px)以上だった

物差しにした「数字の高さ÷文字サイズ」の比は、計画では仮に0.72と置いていた。 実測すると0.75で一定だったので、0.75に差し替えた。 0.72のままでも合否は変わらない。

計算の元どうしの突き合わせでは、コクピットと動画で24取引すべてが一致した(No23は方式が違うので対象外)。 比較が空振りしていないかを確かめるため値を1件出してもらうと、当期純利益468、現金531、営業CF401という実数が出ていた。

Codex のレビューを経て決裁へ

結果を改善の一覧(バックログ)にまとめ、Codex にレビューさせた。 指摘2件は、原本と照らすとどちらも正しかった。 直して再レビューに出すと「決裁に進めてよい」となり、判断4件を決裁フォームで受け取った。 4件とも推奨案で答えた。

コンテキストが尽きてセッションが続きに入ってから、直す順の1〜6に手をつけた。

  • 1: 画面で「貸付200」と出ることを確かめた(en.json にも同じ箇所があったので両方直した)
  • 2: 音声の聞き取りは、筆者本人の耳で確かめる必要がある
  • 3: アニメの見出しが画面に出るかを確かめた(埋め込み側の CSS で隠れていることをコードで確認し、画面でも見た)
  • 4: No24の日付を6/30から5/31に直した(影響は No24と No25の動画だけだった)
  • 5: No23の要約ページの文言を、動画と同じ「決算の確定・開始仕訳」の言い方へ直した(ja と en の両方)
  • 6: 別のセッションの作業と重なったので、手を止めた

コミットはしていない。

夕方:CF精算表の場面は再生できた

夕方は、別の画面の確認から始まった。 CF精算表の「減価償却の直接法と間接法」の場面が表示できないように見えて、そもそも再生できるコンテンツが無いのではないかと Claude Code に聞いた。

調べてもらうと、ブラウザ側でページの読み込みが終わらないまま止まっていた。 途中で筆者のタブが閉じられたか再読み込みされたようで、タブ一覧も取り直してもらった。 新しいタブで開き直すと、正しく表示された。 S1-3(直接法と間接法、3分06秒)は、画面再現とマインドマップの両方が出た。 音声も読み込まれ、再生バーが0:54まで進むのを確かめてもらった。 動画はちゃんとあった。

ストーリー版に、間接法の仕組みが入っていない

その画面を見ていて気づいた。 財務諸表ストーリー版は、結局のところ間接法の仕組みを説明していない。 台本を確かめてもらうと、間接法の扱いは「ずれを一つずつ直す」の一言だけだった。 そこで、個別のキャッシュフロー計算書の仕組みを、ストーリー版の導入にうまく入れられないかと相談した。

材料を集めてもらうと、蔵書DB(Turso)に、教材づくりで参考にしてきた著者の参考書が5冊入っていた。 いちばん近い1冊で、間接法と創立費の説明箇所を読ませた。 あわせて、公開中のイントロダクションページ(インラインSVGの図42枚)を見つけ、リポジトリ内の元データと突き合わせた。 計画書を書いてもらい、Codex のレビューで指摘された2点(間接法の到達点と、型②を外したあとの行き先)を直すと、再レビューは「承認」だった。

決裁フォームには判断4件が並んだ。 筆者はこれも推奨案で進めることにし、ひとつ注文を足した。 導入は最低限ではなく、ボリューム多めでいい。 自分がイントロダクションで作ってきた図をメインに使い、参考書の説明の省略の仕方も踏まえる。 書籍では表現できないことも、今のコンテンツの見せ方なら多少複雑でも分かりやすくできる。 受講生を素人扱いせず、難しいものを難しいまま、左側のアニメーションで分かるように伝えることに挑戦したい。 計画は簡潔さより、ちゃんと説明する方向に寄せてほしい、と伝えた。

図と台本を入れていく

確定版の計画書をもとに、実装を進めてもらった。

  • 旧サイトの図を取り込んだ(PNG は SVG に包んだ)
  • 現金の元帳から直接法を組み立てる図(3コマ)を、取引データから生成するスクリプトを書いた
  • 元帳と机の CS が一致することを確かめるテストを足した
  • 新しい回「CS の作り方」の台本を書いた(配線とテストは275件通過)
  • 既存の回の台本を直した:「はじめに」に図の見方、導入3に英語名、導入4に BS の区分(3コマ)、導入6に黒字倒産、導入8(SS)に3区分と準備金と自己株式と利益の積み上がり、導入9(5要素)に権利と義務の2コマ、導入10(簿記一巡)に計算例
  • 取引の回の No02、No07、No20も直した
  • 字幕は84/84で検査を通った

導入8で利益の積み上がりを机で見せられるかは、翌期の机の SS が期首468を持てるかを確かめてから書いた。

プレビューで画を確かめると、2か所がはみ出していた。 机を映している間、型ラベルの箱3つが字幕バーの下から覗いていたので、まとめの場面まで隠した。 導入10の計算例を流している間も、まとめの図が字幕の下に見えていたので、出番が来るまで出さないようにした。 スマホ版(縦向き)の表示も確かめた。

音声合成はメモリ不足で止まった

台本が固まったところで、変わった12本の仮の声を合成し始めた。 12本中6本が完了したと報告を受けたあと、PC のメモリ残量が危険なほど少なくなり、合成は途中で止められた。 合成そのものの不具合ではない。 再開はしておらず、ここまでの実装もまだコミットしていない。

学び

  • 書き起こしで照合すると、文は正しいのに声が違う、という食い違いを拾える。台本から同じ読みを洗い出したことで、「百五十万円」の崩れが1本ではなく9本すべてに共通すると分かった
  • mlx_whisper に複数ファイルを渡すと、最初の1本しか出力されないことがある。1本ずつ呼ぶと391本そろった
  • 「再生できるコンテンツが無いのでは」と思った画面は、新しいタブで開き直したら再生できた。中身が無いと決める前に、読み込みが止まっていないかを見る

次にやること

  • 「百五十万円」の拍を、自分の耳で聞いて確かめる(直す順の2)
  • 止まった仮の声の合成を、メモリの空きを確かめてから再開する
  • 合成が終わったら音声と台本の一致を確かめ、ストーリー版を書き出し直してコミットする
#動画講座#財務3表#Whisper#音声合成#キャッシュフロー計算書#間接法#Claude Code