[{"data":1,"prerenderedAt":296},["ShallowReactive",2],{"content-/fs-video-tts-narration-merge":3,"all-pages-for-dir":273,"related-/fs-video-tts-narration-merge":274,"og-image-/fs-video-tts-narration-merge":295},{"id":4,"title":5,"body":6,"category":254,"concepts":255,"description":256,"extension":257,"meta":258,"navigation":225,"ogImage":255,"path":259,"project_name":260,"published":261,"publishedAt":262,"seo":263,"source":264,"stem":265,"tags":266,"todo":255,"unpublished":261,"updatedAt":255,"__hash__":272},"pages/2026-10/2026-10-04/fs-video-tts-narration-merge.md","財務諸表講座の動画プレビューにTTSで仮の声を付ける：PR #34 の取り込み、後追いの Codex レビュー、完了とフィードバック欄",{"type":7,"value":8,"toc":240},"minimark",[9,14,23,26,31,38,41,45,48,51,58,62,69,72,83,87,90,93,96,99,106,109,112,115,118,121,127,130,133,136,141,144,148,163,169,172,175,182,189,192,208,211,214],[10,11,13],"h1",{"id":12},"財務諸表講座の動画プレビューにttsで仮の声を付ける","財務諸表講座の動画プレビューにTTSで仮の声を付ける",[15,16,17,18,22],"p",{},"朝、「GitHub にプッシュされている変更があるはず。34番だったか」と Claude Code に聞いた。\n返ってきたのは、PR #34 は開いたままで、まだ main にマージされていないという答えだった。\n中身は、Web 版のセッションで作った財務諸表講座の動画プレビュー（No01「出資」のサンプル）と計画書である。\nブランチは ",[19,20,21],"code",{},"claude/fs-video-course-plan"," で、コミット2本、18ファイル、+2,356行、削除なし、コンフリクトもなかった。",[15,24,25],{},"この日はここから、取り込み、レビュー、音声の合成、表示の確認と進んだ。\nいちばん手が止まったのは、そのあと書かせた導入動画の下書きで、リンゴの仕入れが「投資活動」に入っていたときである。\n自分の教材で、そんな分類をしたはずがない。\nそう思って聞き返した。",[27,28,30],"h2",{"id":29},"マージは-504-でも通っていた","マージは 504 でも通っていた",[15,32,33,34,37],{},"「マージしてローカルに取り込んで、中身を確認したい」と頼んだ。\nPR はドラフトのままでマージできなかったので、先にドラフトを解除してもらった。\nマージを投げると、GitHub は 504 を返した。\nそれでもマージ自体は通っていて、マージコミット ",[19,35,36],{},"d4679eca"," ができていた。",[15,39,40],{},"ローカルへは rebase で pull させ、まだ push していない手元のコミットが上に残るようにした。\nPR に付いていたテスト2本を回し、dev サーバーの様子も確かめてから、プレビューを Chrome の前面タブに開いてもらった。\n再生位置は冒頭（0:00）に戻してあった。",[27,42,44],{"id":43},"後追いの-codex-レビューと台本8クリップの合成","後追いの Codex レビューと、台本8クリップの合成",[15,46,47],{},"取り込むときに、Codex のレビューを通していなかった。\nそこで「TTS で音声を生成して。あと Codex のレビューも受けておいて」と続けて頼んだ。",[15,49,50],{},"Codex のレビューは裏で回し、その間に tts-narration スキルで合成を進めさせた。\n台本の JSON（8クリップ）はプレビュー画面から取り出し、Irodori-TTS（本人の声）で合成した。\n音声がプレビューに載ったかを確かめる段で、音声のマニフェストが台本の文の区切りとずれていた。\nマニフェストを文の区切りに合わせる修正とユニットテストを足してもらうと、API はずれのないマニフェストを返すようになった。\nプレビューは声に合わせて動いた。",[15,52,53,54,57],{},"Codex の指摘は1件だった。\nClaude Code の見立ては「決算振替の回を作るときに直せば足りる」で、私は y とだけ返した。\n修正は ",[19,55,56],{},"b0077b7e"," としてコミットし、前からあった未 push のコミットと合わせて2本を origin/main へ push させた。\nコミット時の Codex レビューは、critical と high の指摘なしで通った。",[27,59,61],{"id":60},"excel-の画面再現に見た目をそろえる","Excel の画面再現に見た目をそろえる",[15,63,64,65,68],{},"次に、Excel の画面再現（",[19,66,67],{},"/dev/excel-scene","）を見せて頼んだ。\n「セクション、チャプター、区間が要るかどうかは判断してほしい。見た目はこっちの Excel のプレビューと全部そろえてほしい」。",[15,70,71],{},"左の一覧は「セクション → 動画」の2列になり、区間の列は付けなかった。\nカメラのタイムラインも入れていない。\nヘッダー右端の段階のチップが切れて見えたので確かめさせたが、レイアウトそのものは正しかった。\n幅 1280px ではツールバーが 40px ほどはみ出していたので、折り返すようにした。",[15,73,74,75,78,79,82],{},"続けて依頼を貼り付けると、プレイヤーの上に完了のチェック、下にフィードバック欄、左の一覧に完了マークが付いた。\nAPI は ",[19,76,77],{},"fs-no-01"," を受け付け、知らない ID は弾く。\nコンソールエラーが出ていないことを確かめ、lint とテストを通してから、",[19,80,81],{},"60b832ea"," として push させた。\nこの欄は、あとで私が動画を1本ずつ見て感想を書き込む場所になる。",[27,84,86],{"id":85},"表と元帳の読みは直さない","「表」と「元帳」の読みは直さない",[15,88,89],{},"少しあと、別の変更を push したところで、No01 の音声で「表」が正しく読まれているかを確かめてほしいと頼まれた。\n実際に「表」と読まれている箇所もあるし、「元帳」がうまく発音できていないのも、もう確認していた。\nただ、この音声は最後に全部、私が自分の声で入れ直す前提である。\n台本さえ合っていれば、Irodori-TTS がうまく発音できなくても問題ない、と答えた。",[15,91,92],{},"その直後、Codex のレビューで、ある行がこの方針と食い違うという medium の指摘が出た。\nClaude Code も妥当と見て、そこを直してもらった。",[27,94,95],{"id":95},"仮の声の合成で踏んだもの",[15,97,98],{},"この日はこのあと、コクピットの取引図22本の移植、はじめにと導入9本の下書き（サブエージェント5体を並列で派遣して書かせた）、期中取引 No01〜No19 の台本へと進んだ。\n音声はどれも、尺を本物の語りで確かめるための仮の声である。",[15,100,101,102,105],{},"地味な失敗もあった。\nはじめにの仮の音声が「numpy が見つからない」で落ちていた。\nuv の環境が合っておらず、その前に見えていた exit 0 は、パイプの後ろにある ",[19,103,104],{},"tail"," の終了コードだった。",[15,107,108],{},"そのあと、はじめには6クリップ、128秒で合成が済み、グリッド検査も通った。\n導入は1本の合成に約5分かかった。\n9本とも検査を通り、台本との食い違いもなかった。\n机が動く3本（はじめに、導入8、導入9）は、本物の声の時刻で全33コマを撮り直した。",[15,110,111],{},"途中では、別のセッションのコミットで git のロックがかかっていた。\nロックは消さずに、空くのを待って入れ直させた。\nNo06 と No07 は合成し直す場面があり、台本のすべての文が句点で終わっているかを確かめる検査を足してもらった。\n最後は No16〜No19 の合成も終わり、期中取引の19本がすべて仮の声付きで再生できるようになった。",[27,113,114],{"id":114},"リンゴの仕入れは投資活動か",[15,116,117],{},"導入2の下書きを確かめたとき、Claude Code は「リンゴの仕入れは投資活動か」を論点として拾っていた。\nそれでも下書きはそのまま残した。\n素材の静止画そのものが、リンゴの仕入れを投資活動の下に置いており、語りだけ直すと絵と声が食い違う、という理由である。\n判断は私に回し、ほかの質問とまとめて最後に挙げる扱いになった。",[15,119,120],{},"下書き10本ができ、はじめにのページを開いてもらったところで、私は聞いた。",[122,123,124],"blockquote",{},[15,125,126],{},"リンゴの仕入れは投資活動にしているはずないと思うんですけど、本当ですか？",[15,128,129],{},"答えは「本当です」だった。\n元の素材の3か所で、リンゴの仕入れが投資活動に入っていた。\n静止画では「② 投資活動」の下に、「商品の仕入れ」（仕入先にお金300を払ってリンゴを受け取る絵）と「配達車両の購入」が並んでいる。",[15,131,132],{},"そこで、立て付けを貼り付けて渡した。\n図の説明は投資活動のまま残し、語りでは、商品の購入は本来は営業活動であり、ここではお金の動きを一歩ずつ追うために便宜上投資活動に含めている、と明言する。\n財務活動には銀行（間接金融）と投資家（直接金融）の両方が出てくることも、はっきり言わせることにした。",[15,134,135],{},"直す途中で、図の下に注意書きがあることも分かった。",[122,137,138],{},[15,139,140],{},"注：キャッシュ・フロー計算書上では商品の購入は営業活動ですが、ここではモノの購入を投資活動として一括りにしています",[15,142,143],{},"素材は間違えていなかった。\n仕入れは、注意書きを付けたうえで、わざと投資活動の側にまとめてあった。\n台本は、各区切りの末尾に文を足す形で直させ、合図の位置は動かさなかった。\n導入6はもともと仕入れを営業活動として扱っていて、説明が食い違わないことも確かめた。",[27,145,147],{"id":146},"引き継ぎテキストと-compact","引き継ぎテキストと /compact",[15,149,150,151,154,155,158,159,162],{},"長いセッションだったので、区切りで2回、進捗の文書を更新し、引き継ぎをダウンロードディレクトリのテキストに書き出させた。\n1回目は ",[19,152,153],{},"fs-video-handoff-2026-10-04.txt","、2回目は ",[19,156,157],{},"fs-video-handoff-2026-10-04b.txt"," で、1回目のファイルは残してある。\nどちらも、書き出したあとに ",[19,160,161],{},"/compact"," をかけ、そのファイルのパスを貼って続きを始めた。",[15,164,165,166,168],{},"1回目の ",[19,167,161],{}," のあと、Claude Code の報告が英語になった。\n「日本語で教えて。何を聞かれてますか？」と聞き返すと、聞かれていたのは、変更をコミットして push してよいかだった。",[27,170,171],{"id":171},"初回だけ完了とフィードバックが出ない",[15,173,174],{},"完了とフィードバックの欄では、読み込みでも少しつまずいた。",[15,176,177,178,181],{},"別のセッションでは、Excel の画面再現で、最初の読み込みだけ完了とフィードバックが出ない件を調べさせた。\nAPI ごとに wrangler のプロセスを起動しており、そのログイントークンの更新がぶつかっている、というのが Claude Code の見立てだった。\n読み込みに失敗したら少し待って取り直すよう直し、",[19,179,180],{},"c8a8a11a"," としてコミットした。\nトークンが切れた状態での初回読み込みは、その場では確かめられなかった。\nあとでトークンが切れた直後に 500 が1回出て、取り直しの経路が動くことを確かめた。\nなぜ毎回 wrangler を起動するのかも聞いた。\n手元で確認するための画面で、2台で記録を共有できれば足りるという割り切りだと分かり、今のままでいいと伝えた。\npush のときに出た依存パッケージの脆弱性の通知（59件）も調べさせ、修正版が出ているものを上げた。\nアラートは59件から16件に減り、この経緯は別の非公開記事に残した。",[15,183,184,185,188],{},"財務諸表のプレビューでも、再読み込みしても表示がうまくいかない場面があった。\n自動で読み直す修正が入ったが、それが根本的な対応になっているのかと聞くと、答えは「いいえ」だった。\n止まったままになる症状を消すだけで、前の説明には誤りもあったという。\n課題があることは認識しておきたいので、原因3つ、調べた経緯、直し方の案を ",[19,186,187],{},".claude/issues/"," に記録させた。",[27,190,191],{"id":191},"学び",[193,194,195,199,205],"ul",{},[196,197,198],"li",{},"GitHub が 504 を返しても、操作が失敗したとは限らない。マージコミットができているかを先に見る。",[196,200,201,202,204],{},"パイプの後ろの ",[19,203,104],{}," は、元のコマンドの失敗を exit 0 で隠す。成否を判断するときは、元のコマンドの終了コードを見る。",[196,206,207],{},"素材が自分の記憶と違うときは、まず素材の側を読む。リンゴの仕入れは、注意書き付きで意図して投資活動に入れてあった。",[27,209,210],{"id":210},"明日に回したこと",[15,212,213],{},"最後に、明日（10月5日）の Google タスクを3件入れてもらった。",[193,215,218,228,234],{"className":216},[217],"contains-task-list",[196,219,222,227],{"className":220},[221],"task-list-item",[223,224],"input",{"disabled":225,"type":226},true,"checkbox"," はじめに、導入9本、期中取引19本のフィードバックを全部読んで、修正計画を作る",[196,229,231,233],{"className":230},[221],[223,232],{"disabled":225,"type":226}," 決算の台本（No20〜No22）を書く",[196,235,237,239],{"className":236},[221],[223,238],{"disabled":225,"type":226}," 私の判断待ちの5件を決める",{"title":241,"searchDepth":242,"depth":242,"links":243},"",2,[244,245,246,247,248,249,250,251,252,253],{"id":29,"depth":242,"text":30},{"id":43,"depth":242,"text":44},{"id":60,"depth":242,"text":61},{"id":85,"depth":242,"text":86},{"id":95,"depth":242,"text":95},{"id":114,"depth":242,"text":114},{"id":146,"depth":242,"text":147},{"id":171,"depth":242,"text":171},{"id":191,"depth":242,"text":191},{"id":210,"depth":242,"text":210},"dev",null,"Web 版セッションで作った財務諸表講座の動画プレビュー（PR #34）をマージしてローカルに取り込み、後追いで Codex のレビューを受け、Irodori-TTS で台本8クリップを合成した。Excel の画面再現に見た目をそろえ、完了とフィードバック欄を付けた日の記録。","md",{},"/fs-video-tts-narration-merge","eurekapu-nuxt4",false,"2026-10-04T00:00:00.000Z",{"title":5,"description":256},"make-diary","2026-10/2026-10-04/fs-video-tts-narration-merge",[260,267,268,269,270,271],"TTS","Irodori-TTS","Codex","財務諸表","動画制作","0YBfV1562Epg9lCipcjYXsbbT0cDPTYcChUqiB8Uv30",[],[275,279,283,287,291],{"title":276,"path":277,"publishedAt":278},"財務諸表講座の動画をスマホ縦画面に作り直す：縦1列のレイアウトと、見出しを消した財務諸表シーン","/fs-video-mobile-vertical-layout","2026-10-05T00:00:00.000Z",{"title":280,"path":281,"publishedAt":282},"計算モジュールの動画化：Excel画面再現とマインドマップを分割画面にまとめるまで","/sim-modules-video-split-mindmap","2026-10-11T00:00:00.000Z",{"title":284,"path":285,"publishedAt":286},"財務諸表のテキストを節ごとの動画にする：Claude Codeのサブエージェント5体で1〜5章の台本と画をそろえた","/fs-textbook-video-scenes","2026-10-10T00:00:00.000Z",{"title":288,"path":289,"publishedAt":290},"2026年10月8日の開発日記 - ログインしても開かない章と、ファイルを読まずに出た「指摘0件」","/2026-10-08-diary","2026-10-08T00:00:00.000Z",{"title":292,"path":293,"publishedAt":294},"財務諸表の動画で数字のカウントアップをゲーム風に作り込む：花火の作り直しから「浮き出て吸い込まれる＋500」に決めるまで","/fs-summary-video-countup-effects","2026-10-07T00:00:00.000Z","https://log.eurekapu.com/og/blog/fs-video-tts-narration-merge.png?v=2026-10-04T00%3A00%3A00.000Z&title=%E8%B2%A1%E5%8B%99%E8%AB%B8%E8%A1%A8%E8%AC%9B%E5%BA%A7%E3%81%AE%E5%8B%95%E7%94%BB%E3%83%97%E3%83%AC%E3%83%93%E3%83%A5%E3%83%BC%E3%81%ABTTS%E3%81%A7%E4%BB%AE%E3%81%AE%E5%A3%B0%E3%82%92%E4%BB%98%E3%81%91%E3%82%8B%EF%BC%9APR%20%2334%20%E3%81%AE%E5%8F%96%E3%82%8A%E8%BE%BC%E3%81%BF%E3%80%81%E5%BE%8C%E8%BF%BD%E3%81%84%E3%81%AE%20Codex%20%E3%83%AC%E3%83%93%E3%83%A5%E3%83%BC%E3%80%81%E5%AE%8C%E4%BA%86%E3%81%A8%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E6%AC%84&author=Kei%20Komatsu&sig=5f81af3ba7c3f6c5",1791766732698]