[{"data":1,"prerenderedAt":575},["ShallowReactive",2],{"content-/2026-09-24-diary":3,"all-pages-for-dir":559,"related-/2026-09-24-diary":560,"og-image-/2026-09-24-diary":574},{"id":4,"title":5,"body":6,"category":539,"concepts":540,"description":541,"extension":542,"meta":543,"navigation":497,"ogImage":540,"path":544,"project_name":545,"published":546,"publishedAt":547,"seo":548,"source":549,"stem":550,"tags":551,"todo":540,"unpublished":546,"updatedAt":540,"__hash__":558},"pages/2026-09/2026-09-24/diary-2026-09-24.md","2026年9月24日の開発日記 - Excel講座とCF精算表の動画化を並列セッションで進め、TTSの読みを台本側で決めた",{"type":7,"value":8,"toc":523},"minimark",[9,14,18,21,25,32,35,40,43,46,52,65,76,79,83,86,89,93,104,112,114,118,121,124,128,139,147,149,153,161,172,176,194,202,204,207,459,461,464,481,483,486,500,502,505],[10,11,13],"h1",{"id":12},"_2026年9月24日の開発日記","2026年9月24日の開発日記",[15,16,17],"p",{},"朝のセッションで、本人の声で合成した音声が「5万3千」の「3千」を「さんせん」と読んだ。\n合成の側を直すか、台本の側を直すか。\nこの日は、その問いに台本側で答えるところから始まった。",[15,19,20],{},"そのあとは、講座の動画づくりに一日の大半を使った。\nタイムラインで見ると、講座アプリのリポジトリで12セッション、このブログのリポジトリで10セッションが動いている。\n講座アプリ側の合計は32時間55分で、壁時計の時間を大きく超えた。\n同じ時間帯に、いくつものセッションを並べて走らせていたからである。",[22,23,24],"h2",{"id":24},"今日のタイムライン",[15,26,27],{},[28,29],"img",{"alt":30,"src":31},"タイムライン","/2026-09/2026-09-24/timeline-2026-09-24.png",[22,33,34],{"id":34},"今日やったこと",[36,37,39],"h3",{"id":38},"_1-excel講座の動画化と関数の章の組み直し","1. Excel講座の動画化と関数の章の組み直し",[15,41,42],{},"本人の声で合成する音声の読みを聞き比べ、FALSE は「フォルス」、関数名はすべてカタカナで合成に渡すと決めた。\n貸借対照表は音声をバランスシートで統一し、講座の冒頭に読み替え表を置く方針にした。\n「3千」の読みについては線引きを Claude Code に任せ、台本の正本を14か所書き換えさせて、89区間とイントロの音声を作り直してもらった。\n途中、65/89区間目でメモリ不足により止まった。",[15,44,45],{},"Excel を模した再現画面の試作は、講座本文より分かりやすかった。\nそこで関数の活用の66区間をサブエージェント5体で読み直させ、63区間（うち31区間を再現動画）への組み直しを、段①〜⑥まで段ごとに承認しながら進めた。",[15,47,48],{},[49,50,51],"strong",{},"主な成果:",[53,54,55,59,62],"ul",{},[56,57,58],"li",{},"読み替えのルール（FALSE、関数名、バランスシート）を決めた",[56,60,61],{},"89区間とイントロの音声を作り直した",[56,63,64],{},"関数の活用を66区間から63区間へ組み直す計画を、段①〜⑥まで進めた",[15,66,67,70,71],{},[49,68,69],{},"詳細:"," ",[72,73,75],"a",{"href":74},"/excel-course-video-tts-and-functions-restructure","Excel講座の動画化：TTSの読み替えルールを決め、Excel操作の再現シーンで関数の章を組み直す",[77,78],"hr",{},[36,80,82],{"id":81},"_2-cf精算表講座の動画を並列セッションで-step-25-まで進めた","2. CF精算表講座の動画を並列セッションで Step 2〜5 まで進めた",[15,84,85],{},"CF精算表講座の Excel 操作シーンを、Step ごとに動画にした。\nStep 1 を仕上げ、Step 2（CF_304、消費税込み）と Step 3（貸付金、CF_302）を順に進めた。\nStep 3 の途中で並列化を相談し、Claude Code に排他ロック、worktree 3つ、Step 4〜6 の引き継ぎプロンプトを用意させた。\nただ、共有ファイルの scenes.ts では、セッション同士が何度かぶつかった。",[15,87,88],{},"利息の数字は、Step 3 を閉じたあとも気にかかっていた。\nあとで 3万6240円の出どころを Ctrl+[ でたどる流れを、動画に入れさせた。\nStep 4 のセッションでステップをまたいで探させると、Step 3 と Step 4 の数字は裏返しで一致した。\n同じ種類のずれは、CF_300 にだけ残っていた。",[15,90,91],{},[49,92,51],{},[53,94,95,98,101],{},[56,96,97],{},"Step 2〜5 の動画づくりを、別々のセッションで並べて進めた",[56,99,100],{},"再生速度に 1.5倍、1.75倍、2倍を足した",[56,102,103],{},"利息の気がかりを、ステップをまたいで突き合わせた",[15,105,106,70,108],{},[49,107,69],{},[72,109,111],{"href":110},"/cashflow-worksheet-video-parallel-sessions","Claude Codeの並列セッションでExcel操作動画を作る：CF精算表講座をStep 2〜5まで進めた一日",[77,113],{},[36,115,117],{"id":116},"_3-講座ナレーションのための-tts-とボイスクローンの調査","3. 講座ナレーションのための TTS とボイスクローンの調査",[15,119,120],{},"Excel の基礎講座の音声は、Irodori-TTS に自分の声の録音を渡して作っている。\n有料ツールに乗り換えれば良い声になるのかを、3つのセッションで Claude Code に質問した。\n7時台の答えは、Gemini-TTS で選べるのは用意された28種類の声だけ、というものだった。\nGoogle で自分の声を使えるのは Chirp 3 の「Instant Custom Voice」だけで、しかも営業窓口への申請が通った人に限られるという。\nところが10時台のやりとりで、クローンに対応した Gemini 3.8 Flash TTS が見つかった。\n自分の声を日本で使う分には、分かっている制約はどれも支障にならなさそうだが、商用の条件はまだ確認できていない。",[15,122,123],{},"Fish Audio は、講座全編（約8時間分）を1回合成して API 約 $8 という見込みだった。\nところが商用利用にはサブスク契約も要るので、実費は Plus（月 $11〜15）と API 約 $8 の合計になりそうだと見立てが変わった。\n「Drama3」は、Fish Audio が9月24日に出した Drama 3（プレビュー版）だった。\n1区間で Irodori-TTS と聞き比べる作業を、9月25日の Google タスクに登録した。",[15,125,126],{},[49,127,51],{},[53,129,130,133,136],{},[56,131,132],{},"Irodori-TTS の「テキストでボイスデザイン」が、録音を使わない別の指定方法だと分かった",[56,134,135],{},"Fish Audio の費用の見込みを、API 単価だけからサブスク込みへ直した",[56,137,138],{},"Drama 3 の聞き比べをタスクに積んだ",[15,140,141,70,143],{},[49,142,69],{},[72,144,146],{"href":145},"/voice-clone-tts-course-narration-research","講座ナレーションを自分の声で作るTTS調査：Irodori-TTSのボイスデザイン、Gemini TTSの制約、Fish Audioの料金とDrama 3",[77,148],{},[36,150,152],{"id":151},"_4-公開記事2本とデプロイのやり直し","4. 公開記事2本と、デプロイのやり直し",[15,154,155,156,160],{},"Meta の Muse の公開記事を書き終えて、コミットとデプロイを頼んだ。\nすると、コミット済みの内容だけを出すための別フォルダ（worktree）が用意され、",[157,158,159],"code",{},".env"," のコピーを頼まれた。\nいつもはどうしていたのか、別セッションの変更は本番に出てよいのではないか、と問い直した。\n中身を確かめさせると、本番に出て困る変更はなかった。\nそこで、いつもどおりの手順でデプロイさせた。",[15,162,163,164,167,168,171],{},"1回目は、7,005ページのプリレンダー（446秒）の直後に ",[157,165,166],{},"pnpm generate"," が失敗した。\n原因は、前日の Mac 版 Muse の記事に非公開の印（",[157,169,170],{},"unpublished: true","）が付いていなかったことである。\n印を付けさせた2回目は、15.1分で完走した。\n昼前には、AI 投資とインフレの関係を尋ねた答えをもとに、公開記事をもう1本作らせた。",[15,173,174],{},[49,175,51],{},[53,177,178,191],{},[56,179,180,181,185,186,190],{},"公開記事2本（",[72,182,184],{"href":183},"/meta-muse-agent-economy","Meta の Muse","、",[72,187,189],{"href":188},"/ai-capex-inflation-2026","AI 設備投資とインフレ","）",[56,192,193],{},"印の付け忘れ1本を直して、デプロイを完走させた",[15,195,196,70,198],{},[49,197,69],{},[72,199,201],{"href":200},"/article-publishing-and-worktree-deploy-retry","git worktree でデプロイしたら .env のコピーを頼まれた日：未コミット変更の判断と pnpm generate 失敗からの出し直し",[77,203],{},[22,205,206],{"id":206},"今日の試行錯誤",[208,209,210,232],"table",{},[211,212,213],"thead",{},[214,215,216,220,223,226,229],"tr",{},[217,218,219],"th",{},"#",[217,221,222],{},"テーマ",[217,224,225],{},"試したこと",[217,227,228],{},"結果",[217,230,231],{},"気づき",[233,234,235,253,269,284,301,318,335,352,369,386,403,422,444],"tbody",{},[214,236,237,241,244,247,250],{},[238,239,240],"td",{},"1",[238,242,243],{},"Excel講座（06:44）",[238,245,246],{},"「印が付かない」の原因を調べさせた",[238,248,249],{},"別のページを見ていただけで、印は付いていた",[238,251,252],{},"調査の前に、見ているページを確かめる",[214,254,255,258,260,263,266],{},[238,256,257],{},"2",[238,259,243],{},[238,261,262],{},"関数名の読みを計72本で聞き比べ、FALSE、貸借対照表、大きい桁の数字を試した",[238,264,265],{},"「5万3千」は「さんせん」になり、「5万3,000」は通った",[238,267,268],{},"読めない表記は、台本を読める形に寄せる",[214,270,271,274,276,278,281],{},[238,272,273],{},"3",[238,275,243],{},[238,277,61],{},[238,279,280],{},"65/89区間目でメモリ不足で停止。別セッションの終了後、08:59に再開して09:58に完了",[238,282,283],{},"別セッションの合成が8.5GBを使っていた",[214,285,286,289,292,295,298],{},[238,287,288],{},"4",[238,290,291],{},"Excel講座（08:06）",[238,293,294],{},"関数の活用の66区間をサブエージェント5体で見直させた",[238,296,297],{},"MATCH が近似一致のまま偶然合っていたことなどが見つかった",[238,299,300],{},"見た目が正しくても、実物の Excel で突き合わせる",[214,302,303,306,309,312,315],{},[238,304,305],{},"5",[238,307,308],{},"Excel講座（13:11）",[238,310,311],{},"13区間の音声を作り直した",[238,313,314],{},"4区間目でメモリ不足で停止。1区間ずつ前面で流す方式に変えて完走し、技術検査は66/66",[238,316,317],{},"まとめて流さず、1区間ずつ回す",[214,319,320,323,326,329,332],{},[238,321,322],{},"6",[238,324,325],{},"CF精算表（09:14）",[238,327,328],{},"再生速度 1.5倍を計測した",[238,330,331],{},"4秒で4.7秒（約1.17倍）。測り直して4段の切り替えが入った",[238,333,334],{},"速度は実測で確かめる",[214,336,337,340,343,346,349],{},[238,338,339],{},"7",[238,341,342],{},"CF精算表（12:14）",[238,344,345],{},"別のセッション（5c）のコミットに、自分の scenes.ts が混入した",[238,347,348],{},"HEAD が一時読み込みエラー。自分側をコミットして復旧した",[238,350,351],{},"共有ファイルは持ち主を決めておく",[214,353,354,357,360,363,366],{},[238,355,356],{},"8",[238,358,359],{},"CF精算表（14:55）",[238,361,362],{},"git rebase main を実行した",[238,364,365],{},"許可されず停止。許可後に2か所の衝突を両側残しで解消した",[238,367,368],{},"衝突は両側を残して畳む",[214,370,371,374,377,380,383],{},[238,372,373],{},"9",[238,375,376],{},"CF精算表（15:17）",[238,378,379],{},"合流前の main に、他人の未コミットの scenes.ts があった",[238,381,382],{},"3セッションへ同じ文面で連絡し、持ち主の 5c がコミットしたあとに合流した",[238,384,385],{},"持ち主が分からない変更は、候補全員に聞く",[214,387,388,391,394,397,400],{},[238,389,390],{},"10",[238,392,393],{},"TTS 調査（10:44）",[238,395,396],{},"「Drama3」を名前で調べさせた",[238,398,399],{},"最初は別モデルが候補に挙がり、その後 Fish Audio の Drama 3（プレビュー版）だと分かった",[238,401,402],{},"料金は $8（API のみ）から Plus＋API へ見直した",[214,404,405,408,411,414,419],{},[238,406,407],{},"11",[238,409,410],{},"デプロイ（09:43）",[238,412,413],{},"未コミット変更を避けるため、worktree からデプロイしようとした",[238,415,416,418],{},[157,417,159],{}," のコピーが必要になった。問い直して、いつもの手順に戻した",[238,420,421],{},"先に変更の中身を確かめれば、別フォルダは要らなかった",[214,423,424,427,429,432,441],{},[238,425,426],{},"12",[238,428,410],{},[238,430,431],{},"1回目のデプロイ",[238,433,434,435,437,438,440],{},"プリレンダー直後に ",[157,436,166],{}," が失敗。非公開フォルダ70本のうち1本だけ ",[157,439,170],{}," が無かった",[238,442,443],{},"検査はフォルダではなく frontmatter の印を見る",[214,445,446,449,451,454,457],{},[238,447,448],{},"13",[238,450,410],{},[238,452,453],{},"印を付けて2回目のデプロイ",[238,455,456],{},"15.1分で完走した",[238,458],{},[77,460],{},[22,462,463],{"id":463},"今日の学び",[53,465,466,469,472,475],{},[56,467,468],{},"合成でうまくいかない表記は、合成の側を直そうとするより、うまくいく読み方に台本を合わせ、冒頭の読み替え表で断るほうが話が早い。",[56,470,471],{},"画面に映っていた MATCH の結果は、近似一致のまま偶然合っていただけだった。見た目が正しくても、実物の Excel で全セルを突き合わせる工程を段ごとに入れておく。",[56,473,474],{},"並列のセッションは、共有ファイル1つ（scenes.ts）に書き込みが集まるところでぶつかった。持ち主の分からない変更は、候補のセッション全部に同じ文面で頼み、返事で持ち主を特定した。",[56,476,477,478,480],{},"ビルド後の検査は、置き場所のフォルダではなく frontmatter の印で公開かどうかを見る。非公開フォルダに置いても、",[157,479,170],{}," を付け忘れた1本がデプロイを止めた。",[77,482],{},[22,484,485],{"id":485},"明日やること",[53,487,490],{"className":488},[489],"contains-task-list",[56,491,494,499],{"className":492},[493],"task-list-item",[495,496],"input",{"disabled":497,"type":498},true,"checkbox"," Fish Audio の Drama 3（プレビュー版）を、Excel講座の1区間で Irodori-TTS と聞き比べる",[77,501],{},[22,503,504],{"id":504},"関連記事",[53,506,507,511,515,519],{},[56,508,509],{},[72,510,75],{"href":74},[56,512,513],{},[72,514,111],{"href":110},[56,516,517],{},[72,518,146],{"href":145},[56,520,521],{},[72,522,201],{"href":200},{"title":524,"searchDepth":525,"depth":525,"links":526},"",2,[527,528,535,536,537,538],{"id":24,"depth":525,"text":24},{"id":34,"depth":525,"text":34,"children":529},[530,532,533,534],{"id":38,"depth":531,"text":39},3,{"id":81,"depth":531,"text":82},{"id":116,"depth":531,"text":117},{"id":151,"depth":531,"text":152},{"id":206,"depth":525,"text":206},{"id":463,"depth":525,"text":463},{"id":485,"depth":525,"text":485},{"id":504,"depth":525,"text":504},"diary",null,"Excel講座の音声の読み替えルールを決めて関数の章を63区間へ組み直し、CF精算表講座の動画をStep 2〜5まで並列セッションで進めた。講座音声のボイスクローン調査と、公開記事2本のデプロイのやり直しも記録する。","md",{},"/2026-09-24-diary","daily-log",false,"2026-09-24T00:00:00.000Z",{"title":5,"description":541},"make-diary","2026-09/2026-09-24/diary-2026-09-24",[552,553,554,555,556,557],"日記","Claude Code","TTS","Excel講座","並列セッション","デプロイ","11QNALvMg3fXOdVjOYed8VHFiUiIVOUbB5grjL7RjPM",[],[561,565,569,572,573],{"title":562,"path":563,"publishedAt":564},"2026年9月25日の開発日記 - 並行セッションがメモリを取り合い、関数の章をMacへ送った","/2026-09-25-diary","2026-09-25T00:00:00.000Z",{"title":566,"path":567,"publishedAt":568},"2026年9月26日の開発日記 - 再現動画のレビュー画面づくりと、メモリで落ちるdevサーバー","/2026-09-26-diary","2026-09-26T00:00:00.000Z",{"title":570,"path":571,"publishedAt":568},"Nuxtのdevサーバーがheap out of memoryで落ちた原因：再現動画のシーン分割読み込みと終わらない回帰テスト","/excel-scene-dev-memory-split-loading",{"title":111,"path":110,"publishedAt":547},{"title":75,"path":74,"publishedAt":547},"https://log.eurekapu.com/og/blog/2026-09-24-diary.png?v=2026-09-24T00%3A00%3A00.000Z&title=2026%E5%B9%B49%E6%9C%8824%E6%97%A5%E3%81%AE%E9%96%8B%E7%99%BA%E6%97%A5%E8%A8%98%20-%20Excel%E8%AC%9B%E5%BA%A7%E3%81%A8CF%E7%B2%BE%E7%AE%97%E8%A1%A8%E3%81%AE%E5%8B%95%E7%94%BB%E5%8C%96%E3%82%92%E4%B8%A6%E5%88%97%E3%82%BB%E3%83%83%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%A7%E9%80%B2%E3%82%81%E3%80%81TTS%E3%81%AE%E8%AA%AD%E3%81%BF%E3%82%92%E5%8F%B0%E6%9C%AC%E5%81%B4%E3%81%A7%E6%B1%BA%E3%82%81%E3%81%9F&author=Kei%20Komatsu&sig=754a28a512ce7398",1790469280945]