Claude Codeの2台運用で、教材の読み上げ音声をMacに合成させながら図と台本を直した一日

開発eurekapu-nuxt4

Claude Codeの2台運用で、教材の読み上げ音声をMacに合成させながら図と台本を直した一日

朝、Windows のセッションから Mac へ、台本500本ぶんの合成を頼んだ。 Mac では tmux の中で Claude Code が動いていて、Irodori-TTS で読み上げ音声を作る係を受け持っている。 そのあいだ、Windows では講座サイトの図と台本を直し続けた。

台本に一文足しただけで、音声と文の数が合わなくなる。 このずれが、形を変えて一日のうちに何度も出てきた。

羊の向きと、白い背景の下に隠れていた仕訳の行

簿記講座のストーリー版には、参考書の Kindle 版の図を動く図にした節がある。 羊が移動する図で、1回目から3回目まで、動かす前のコマなのに羊が最初から右を向いていた。 動かしたあとの絵が先に入ってしまっているので、普通にバグだと思って直してもらった。

コマを切り替える様子を Claude Code に録画させ、コマ割りで確かめさせた。 広い画面では、羊は正しい向きで歩いて入っていた。 狭い画面でも録画して、羊の向きを機械的に判定させた。 最初は判定できず、絵の色の付け方を見て判定のしかたを直していた。 直したあとで回線を遅くして録画し直すと、切り替えの直後に動き終わった絵が出ることはなくなった。 作り直した図のうち9枚の中身が変わり、動き終わった絵が元の図と一致するかを、15枚すべて画素単位で比べてもらった。

続けて、仕訳として見せるコマで、真ん中の仕訳の行が消えているのに気づいた。 元の図には要素があるはずだと伝えて調べてもらうと、原因は元の図に残っていた見えない文字だった。 仕訳の行の白い背景より下に、重なった「羊」などの見えない文字が2つ残っていた。 動く図を作るとき、仕訳の行の部品をまとめてその位置へ入れていたので、行がまるごと白い背景の下に隠れていた。

直した分をコミットして、作り直した9枚を R2 に上げた(9/9 成功)。 ただ、本番の CDN には古い図が最長4時間残るので、この時点ではまだ入れ替わっていなかった。

500本の台本を Mac へ送る

コミットと一緒に、音声の無い節を一通り Mac で合成するよう頼んだ。 Windows 側で台本を書き出して手元の音声と突き合わせ、500本ぶんを章ごとに17ファイルへまとめさせた。 SSH で Mac のリポジトリの外へ送り、17ファイルとも中身が一致して届いたのを確かめてから、機体間メッセージで依頼を送らせた。 Mac 側にもゲートが入っていたので、依頼文の合成コマンドはゲート越しの形に直してから送っている。

Mac 側の Claude Code は 07:56 に合成を始めた。 途中で聞いたときは、17章のうち11章(89本)が済んでいて、残りは411本(約4.2万字)だった。 あと約2時間15分、11時ごろに終わる見込みと返ってきた。 最後には500本すべての MP3 ができ、dev のストーリー版で確かめたページでは「音声なし」の印が消えた。

困ったのは、合成中に Mac のメモリが膨らみ続けることだった。 Mac 側の Claude Code は、メモリを空けながら合成する包み(ラッパー)をすでに作っていた。 依頼を出す Windows 側や Codex 側も、音声を頼むときはそれを使ってほしい。 そう伝えて、~/.claude にある Mac への依頼の手順書へ組み込んでもらった。 包みが Mac の環境で読み込めて、中のスクリプトまで終了コード 0 で動くのを確かめてから、コミットして push した。 Mac の ~/.claude には、次に合成を頼むとき、依頼文の最初の手順で pull してもらう形で入る。

講義ノート一覧の並べ替えと、所要時間の目安

講義ノート一覧のページは、何度か作り直した。 カード全体ではなく、中の「テキスト|画面再現|動画|ストーリー版」の枠から入りたいことを、スクリーンショットで伝えた。 2カラムにすると、その枠が丸いタグのように見えてドラフトの札と区別がつかなかったので、四角いタイルに変えてもらった。 外部の動画講座プラットフォームにも講座があるものは、5つ目のタイルに直リンクを置き、各区分の中で上へ並べた。 最終的には区分を横に2列、区分の中の講座を1列にし、財務諸表を読む系の講座は新しい区分にまとめた。 URL を知っていれば誰でも開ける「URL 公開のドラフト」は中途半端だとも指摘し、本文の URL 直打ちを塞いでもらった。

各講座を読み上げると何時間になるかの目安も、カードに入れてもらった。 財務諸表の動画の実際の語りから速さを測ると、間を含めて毎分約270字(話している部分だけなら約314字)だった。 Excel 基礎講座は約8.5時間になる。 財務諸表の疑問 Q&A は27.5時間と出たので、大きすぎないかを確かめさせると、1本約7,000字の記事が72本あった。 数字はそのまま残した。

「読み込み中…」のまま止まる舞台

財務諸表ストーリー版の「商品の現金仕入」の回で、左の舞台が「読み込み中…」のまま出てこなかった。 最初は遅さを疑い、測ってもらった。 ページ自体は0.3秒で読み込めるのに、舞台が出るまで36秒かかる。 通信は13.7秒ですべて終わっているのに、舞台は45秒まで出てこない。

ところが、計測していたタブは背景に回っていて、ブラウザがタイマーを絞っていた。 これでは数字を当てにできない。 タブを前面に出して測り直すと、舞台の部品が描画エラーで止まっていた。 遅かったのではなく、エラーでずっと「読み込み中…」のままだった。

原因は、別のセッションの未コミットの変更だった。 この回の台本に1文足したまま、語りのデータを作り直していなかったのである。

最初はエラーの文言を画面に出す直しを入れたが、途中で方針を変えた。 文の数がずれていても舞台は出し、音声の無い文には「音声なし」の印を付けて、その文は無音のまま舞台を台本どおりに動かす。 26文のうち足された1文に「音声なし」が付き、舞台は2秒で出るようになった。 別の回でも「読み込み中」が出ていた。 こちらは動画データが無いのが怪しいと見て直してもらい、舞台が出るのを確かめた。

切り抜きではなく、カメラで寄る

スマホ版で、横長の図や表が小さくて読めないことも気になっていた。 台本と左の画を並べた一覧を作らせ、5つの点検を並行で回させた。 数字の食い違いはどの回にもなく、スマホ版で字が小さすぎる場所が9か所見つかった。 簿記一巡の2か所は、参考書の Kindle 版にあった縦の図を、スマホ版だけに当てた。

ほかの場所は、図の一部を切り抜いたコマで大きく見せる形になっていた。 それを見て、切り抜くのはやめてほしいと伝えた。 切り抜くと、そこが図のどこなのかが分からなくなる。 全体像は最初のコマで見せているのだから、カメラで引いたり寄ったりすればよい。

いちばん見せたかったのは間接法の図である。 税引前当期純利益から出発して、営業外の損益を足し戻して営業利益まで上がり、減価償却費と債権債務の増減を調整して営業キャッシュフローの小計に着く。 その順番を、カメラの動きで追えるようにしてもらった。 同じ切り抜きを使っていた4か所もカメラの寄りにそろえ、PC版も同じように寄る。 動きを見て、「非常に良い」と返した。

そのあと、語っている行が光っていない箇所の直しをサブエージェント3体に分けて頼み、図は128枚中128枚を R2 に上げた。 R2 との照合では260本が一致し、今日書き出し直した5回ぶんの9本が古いままだったので上げ直した。 最後にデプロイとキャッシュ削除を頼んだところで、このセッションのログは終わっている。

簿記講座の「はじめに」と、34本の取り込み

昼前は、簿記講座のストーリー版の「はじめに」を進めた。 STEP 5 の試算表は、STEP 3 と同じ5列の合計残高試算表にしてもらった。 新しい節の音声はどのセッションでもまだ作られていなかったので、合成は Mac に頼むことにした。

途中で、節の外側に付いている灰色の枠が気になった。 聞くと、もともと図の節のために付けたもので、操作教材の節では無くても困らないという。 STEP の節だけ枠を外し、白い矢印が消えないよう、図の節は灰色のまま残した。

「簿記を体感」をトピックのひとつにしておくのはもったいないので、独立したチャプターにした。 「財務諸表の勘定から検索」は目次の最後に回した。 データを分けるときに音声の名前を固定する仕組みを入れてもらい、79本すべてで分割の前後の名前と台本が一致するのを確かめた。 これで Mac の合成をそのまま使える。

Mac の合成が終わって取り込もうとすると、Mac の名前が IPv6 で返ってきて、取り込みスクリプトの SSH が通らなかった。 IP を指定した SSH で34本(新しい28本と、文が変わった6本)を直接取り込み、Mac 側と SHA-256 で全本一致した。

← キーの動きも直した。 STEP 2 の先頭まで進んだところで、1個前は何だったかを見返したくなることがある。 ← で区間の頭から戻ったら、前の区間の最後のコマに着くようにしてもらった。 矢印キーで1手ずつ進む講座の部品5つすべてが対象で、各講座で実際に ← を押して確かめさせた。

MP3 の R2 へのアップロードは、デプロイと一緒でないといけないのかと聞いて、説明に納得した。 別のセッションがデプロイを始めたところで、34本(うち上書き6本)を上げた。

「机の上では」を台本から消す

財務諸表ストーリー版のキャプションにある「机の上では四つの表をこう並べます」という言い方が、ずっと気になっていた。 洗い出してもらうと、「机」を使う語りは財務諸表の14文と別表の1文、計15文あった。 うち9文は「この講座では」に置き換えると不自然になるので、別の言い方の案が付いていた。

最初は、台本だけ直してほしいと頼んだ。 どうせ最後は自分の声で全部吹き替え直すので、台本が合っていればよく、音声は「机の上では」のままでかまわない。 修正の計画書は Codex にレビューさせ、事実誤りの指摘を直して再レビューで承認を得てから、6項目を決裁フォームで決めた。

台本を直したあとで、作り直すならどのくらいかを聞いた。 15文で、音声にすると約56秒だという。 Mac の合成は1文あたり約6秒(9/22 の実測)なので、回ごとのモデルの読み込み直しを足しても10分前後で終わる。 そんなに少なかったかと思いつつ、作り直しを頼んだ。 もっとあったはずだという気がしたので、取りこぼしがないかもリポジトリ全体で洗い直してもらった。

財務諸表の7本は Windows で、別表は Mac で合成した。 Mac の tmux セッション名は claude-eurekapu ではなく claude で、宛先を直して送り直す一手間があった。 最初に気になった15文目は「四つの表は、こう並べます。」にして、この1文の合成を Mac に頼んだ。 Mac にはこの回の文ごとのキャッシュが無かったので、Windows のキャッシュ128本を先に送った。 作り直す文が3文を超えそうなら、声が変わってしまうので合成せずに止めて返信するよう、依頼文に書かせてある。 取り込んだ12件は SHA-256 で一致し、MP3 は72本(財務諸表63本、別表9本)を R2 に上げた。 デプロイと、その直後の CDN キャッシュ削除は、このセッションでは残った。

参考書の縦長の図と、Illustrator の原本

午後は、簿記講座の「各章の論点一覧と仕訳まとめ」に、参考書の Kindle 版の縦に長い図があるはずだから探してほしいと頼んだ。 Kindle 版の原本の .ai から、「各論点のまとめ」の縦のページが見つかった。 Illustrator を自動で動かして書き出させると、約9分で69枚が出てきた。 「現金と預金」の節を、その縦のページに沿って作り直した。 最初は8区切りで組み、最終的に11区切りへ分け直している。

ノートPCの画面では、上の余白と下の「前へ/次へ」の帯(約75px)、それに財務諸表の小ささが気になった。 財務諸表が小さかったのは、左の枠を上下に半分ずつ割り、両方を半分に収まる大きさまで縮めていたからだった。 財務諸表は試算表の約2倍の高さがあるので、財務諸表だけが大きく縮み、試算表側の半分は空いていた。 直すと、広い画面で約1.16倍(倍率 0.84 → 0.97)になった。 それでもノートPCでスクロールが出ると、マウス操作が要る。 縮める下限を外し、どの画面でもスクロールなしで枠に収まるようにしてもらった。

残り10節も同じやり方でよいと伝え、Mac への合成依頼はできた節から順に送らせた。 図の準備はサブエージェント5体に並列で進めさせた。 Mac の IP が変わっていて自動では見つからず、Wi-Fi 側の IP を指定して送り直す場面もあった。 商品売買では36区切りのうち20区切りで範囲が枠の上にはみ出していたが、直して全11節で枠に収まった。 読み上げ音声は全11節で139本(2,104秒)になり、Mac で合成して、取り込んだハッシュも全本一致した。

図の誤りと、原本を壊さない編集

点検で、賃貸借のページの題「先に対価の受取」は「先に対価の支払」の、丸数字「2」は「3」の誤りだと分かった。 確かにそのとおりで、これは Illustrator 側も直さなければいけない。

書き出した SVG の文字は図形(アウトライン)になっていて、書き換えられない。 そこで、間違った字を背景色で覆い、上に正しい字を重ねてもらった。 覆う位置と文字は JSON に記録してあるので、Illustrator から書き出し直しても同じ直しが当たる。

それでも、原本を直せるなら直したい。 聞いてみると、原本の該当の文字は編集できるポイント文字のまま残っていて、スクリプトで書き換えられるという。 原本を書き換えてもいいが、壊れたら困る。 必ず原本をコピーし、末尾に「_ClaudeCode編集」のような名前を付け直して、そちらを編集するよう頼んだ。

コピーは原本と同じフォルダに作られ、ハッシュが原本と一致するのを確かめてから編集に入った。 直したあとも、原本のハッシュは変わっていない。 自分で開いてみると、普通に直っていた。 Illustrator のファイルを Claude Code から編集できるとは思っていなかった。 続けて、手形のページの「600」を「300」に直す修正も、同じコピーでやってもらった。

最後に、各章の論点まとめの一覧ページをトピックの先頭に入れるよう頼んだ。 Q番号だけの文字枠を数える探し方では、商品売買の1枚(Q番号33個)しか見つからなかった。 ページの名前を挙げて見直すと、一覧が無いのは商品売買だけで、現金と預金などには一覧がすでに入っているようだった。 商品売買に一覧を入れ、その1枚ぶんの読み上げは Mac に頼んだ。 スクロールバーのはみ出しは、全11節の140区切りすべてで0にした。 コミットとデプロイはせず、進捗をテキストに書き出したところで、このセッションは止まっている。

学び

  • 台本と音声の文の数がずれると、舞台ごと止まる。ずれても舞台は出し、足りない文には「音声なし」の印を付けるほうが、作っている途中の教材には合っていた。
  • 2台運用では、送っただけでは終わらない。届いた中身の一致(17ファイル、SHA-256)、宛先の tmux セッション名、Mac の IP を確かめ直す場面が何度もあった。
  • 書き出した SVG の文字は図形で書き換えられないが、原本の .ai には編集できる文字が残っていた。コピーを作ってから直せば、原本のハッシュを変えずに試せる。
  • 切り抜くと「図のどこを見ているか」が消える。全体を置いたままカメラで寄れば、位置ごと伝わる。

残っていること

  • 財務諸表ストーリー版まわりのデプロイと CDN キャッシュ削除(講義ノート一覧のセッションでは頼んだところまで、「机」のセッションでは未了)
  • 簿記講座の論点まとめ(全11節)のコミットとデプロイ
  • 商品売買の一覧ページ1枚ぶんの読み上げの取り込み

台本を直すたびに、音声を作り直すかどうかを決めてきた。 けれど、最後には全部を自分の声で吹き替え直すつもりでいる。 そのとき読むのは、今日直した台本である。

#eurekapu-nuxt4#Claude Code#音声合成#Irodori-TTS#Illustrator#2台運用#教材制作