"""台本の読み物(台本_*.md)と codex 敵対的検証の依頼(codex_*.md)を、narration.py から作り直す。 台本を直したら、動画の作業フォルダで python3 make_docs.py 2026-10-28: 「何台入れたら店は変わる」の make_docs.py を写して書き換えた(謎解きの型の1本目・1回目の依頼) 2026-10-28: 2回目の依頼にした(台本5版)。エイイチの指示で、codex には事実確認だけを頼む(話の筋・構成・見立ての提案は求めない) """ import sys, json, os sys.path.insert(0, '.') from narration import SEGS, parse NAME = "世界記録と洗濯物" TITLE = "人型ロボットは人間より速く走ったのに、なぜ洗濯物はたためないのか(仮題)" ROUND = 2 FJ = {"base": "基本", "smile": "小さな笑み", "surprise": "驚き", "doubt": "ジト目", "think": "目を閉じる", "trouble": "困り眉", "joy": ">▽<", "wink": "ウインク"} SEC = [("hook", "0 謎"), ("title", "1 自己紹介"), ("question", "2 今日の謎"), ("promise", "3 聞くときの約束"), ("map", "4 地図(たとえは1つだけ)"), ("hayatochiri", "5 ハコブくんの早とちり"), ("c1", "6 手がかり1:練習する場所"), ("c2", "7 手がかり2:相手の形"), ("c3", "8 手がかり3:お手本の数(今日いちばん大事)"), ("ei_desk", " ― 証人:エイイチの机の上"), ("solve", "9 謎が解ける"), ("mitate", "10 エイイチの見立て"), ("answer", "11 謎の答えと、持ち帰る3つ"), ("outro", "12 アウトロ")] idx = {o['i']: o for o in json.load(open('tts/index.json'))} if os.path.exists('tts/index.json') else {} rows, n, t, done, first, last = [], 0, 0.0, set(), {}, {} for k, s in enumerate(SEGS): sc, f, text, p = parse(s) for key, name in SEC: if sc == key and name not in done: rows.append(("sec", name, t)); done.add(name) o = idx.get(k) t += (o['dur'] + o['pause']) if o else 0 if text: n += 1 first.setdefault(sc, n); last[sc] = n rows.append(("line", n, f, sc, text)) def R(*scs): return "・".join((f"S{first[x]:03d}〜S{last[x]:03d}" if first[x] != last[x] else f"S{first[x]:03d}") for x in scs if x in first) # 読み物の台本 out = [f"# 台本:{TITLE}", "", "話し手はハコブくん(エイイチは三人称)。各行は「文番号|表情|場面|字幕の文」。字幕の「|」は、読み上げは1文のまま字幕だけ次の枚に替える位置。", "エイイチ(ドット絵・右下の小窓・声なし)が出るのは、場面が ei_ で始まる所と、見立て(mitate)だけ。", ""] for r in rows: if r[0] == "sec": m, ss = divmod(int(r[2]), 60); out += ["", f"## {r[1]}" + (f"({m}:{ss:02d}〜)" if idx else ""), ""] else: out.append(f"- S{r[1]:03d}|{FJ[r[2]]}|{r[3]}|{r[4]}") if idx: m, ss = divmod(int(t), 60) out += ["", f"全体の長さ(いまの音声):{m}分{ss:02d}秒"] open(f"台本_{NAME}.md", "w").write("\n".join(out) + "\n") # codex 敵対的検証の依頼 body = [] for r in rows: body.append(f"\n### {r[1]}\n" if r[0] == "sec" else f"S{r[1]:03d} {r[4].replace('|', '')}") chars = sum(len(r[4].replace('|', '')) for r in rows if r[0] == "line") md = f"""# 敵対的検証依頼:YouTube台本「{TITLE}」 この台本の**事実確認**をしてください。数字・日付・名前・発言の紹介・研究や発表の中身が出典と合っているか、出典の範囲を超えて言い切っていないかを、ウェブ検索で一次情報を確かめて見てください。日本語で答えてください。 **話の筋・構成・たとえ・問いの立て方・エイイチの見立ては変えません。** それらを組み替える提案や、新しい話題・事例を足す提案は要りません(足すと、ただのニュースの解説になってしまうため。運営者の判断)。直す案は、事実を正しくするための最小の言い換えにしてください。台本の文が、新しい事実(2026年の発表など)で誤りになっている場合だけ、その文を正しくする形で指摘してください。 ## 前提 - チャンネル:フィジカルAI解説|Pixels to Motors(YouTube)。運営はエイイチ(本業はデザイナー。ロボティクスの研究と開発をしている)。ナレーションはキャラクターのハコブくん(AI 音声)で、エイイチは三人称で出てくる - 視聴者:ロボティクスに関心のある経営者・PM・マネージャー・開発者。人型ロボットのニュースは見ているが、専門家ではない人も多い - この回の型:謎解きの型(このチャンネルで1本目)。冒頭で変な事実(謎)を出し、答えは後半の「9 謎が解ける」で出す。たとえは1つだけ(ロボットの学校:走る=体育、たたむ=家庭科)。手がかりは3つ。話の出どころを4種類の札(大会や会社の発表・ニュースの報道・研究の論文・エイイチの見立て)で画面に出す - 謎:2026年4月の北京の人型ロボット・ハーフマラソンで、優勝機が50分26秒(人間の男子の世界記録候補 56分51秒より速い)。なのに、家で洗濯物を毎日任せられる人型ロボットは、公開資料では確認できない。なぜか - 「まだ」の定義:家で、人が遠くから操作したり手伝ったりせずに、毎日任せられる段階には来ていない({R('define')}・{R('answer')}) - エイイチの言葉({R('ei_react')}・{R('ei_desk2')}・{R('mitate2')}・{R('mitate3')})は、2026-10-28 に本人に聞いた答え。中身は足していない。中国の人型ロボットについての見方({R('mitate2')})は、本人が「強く主張していい」と言った見立て。事実の主張としてではなく、見立てとして言い方が伝わっているかを見てください - エイイチの机の上の数(750回)は、本人のロボットアームの通しの試行の台帳(2026-06-18〜10-22・失敗も含む)。外からは確かめられないので、言い方だけ見てください - 台本を書いたあと、書いたのとは別のエージェントに出典と1文ずつ突き合わせてもらい、直した(1年で速くなった理由を仮想の練習から機体づくりと投資に/走れる土台は仮想の練習・2本足の Cassie(2021)でつなぐ/電池・機体交換・伴走の車・道順/HONOR の学ばせ方は「見当たらない」/ETH と NVIDIA・GPU 1枚/π0 の1万時間はいろいろな作業の合計/1X は会社自身の説明/ゴールドバーグの10万年の意味/布の仮想の研究も進んでいる/別の研究者の「思い込み」/答えで「まだ」の定義を言い直す) - **これは{ROUND}回目の検証です。** 1回目(「直してから」・結論「条件つきで成立」・17件)の事実の指摘を入れた:世界記録候補・3倍は機体のちがう優勝タイムの比べ・自律の区分でも一部の補助は認められていた・1年の伸びは機体と投資から「説明する専門家もいる」・優勝機の学ばせ方は未確認なので言い切らない・地面と布の言い方・4096台はやり直し・Figure の2026年9月の30軒の試験(タオル62%・会社の試験)・1X の量産開始と出荷予定・10万年は規模のたとえ・750回は試行錯誤の記録・台の上でたたむだけなら足は要らない・札の言い方。**話の筋を組み替える指摘(題と問いの言い換え・人の作業動画の章・据え置きの専用ロボット・確かめる3つの言い換え)は、運営者の判断で入れていません。それらは再び指摘しないでください。** 文番号は1回目とずれています - 台本は全{n}文・約{chars}字。ナレーションは約11〜12分の見込み ## 検証してほしい観点 ### A. 事実 A1. マラソンの数字({R('hook','hook_wr','hook_last')}):50分26秒・自律で走ったか・56分51秒(公認手続き中)・6分あまり・2時間40分42秒・3倍あまり。比べ方の条件({R('promise_fair')})が出典の範囲か A2. 仮想の世界での練習の研究({R('c1_sim','c1_note','c1_why')}):ETH と NVIDIA・4096台・4分/20分・GPU 1枚・実機に移せた・2本足のロボットの2021年の話 A3. この1年で記録が縮んだ理由({R('c1_speed')})と、優勝機の学ばせ方が未確認であること({R('c1_note')})が、答え({R('solve')}・{R('answer')})まで保たれているか A6. Figure({R('c3_figure')})・1X({R('c3_neo')})の言い方が、会社の発表の範囲か。2026年10月28日時点で古くなっていないか A4. 布の研究({R('c2_cloth')})・π0({R('c3_pi')})・Figure({R('c3_figure')})・1X NEO({R('c3_neo')})・ゴールドバーグ({R('c3_gap')}・{R('solve_twist')})・モラベック({R('solve_moravec')})が出典の範囲か A5. 「人の手を借りずに、家で毎日たたんでいる人型ロボットは見当たらない」({R('hook_q')})が、2026年10月時点で言えるか(家庭向けの人型ロボットの出荷の状況を含めて) ### B. 言い過ぎ(事実の範囲) B1. 出典が言っている範囲を超えた言い切り、条件や限定の抜け(推測が事実に聞こえる所)だけを見てください。論理の組み立てや反論への備えの提案は要りません ## 回答の書式 指摘ごとに次の形で書いてください。重大なものから順に並べてください。 ``` [❌ NG / ⚠️ 要注意] 文番号(例:S043) 問題:何が問題か(1〜2文) 根拠:確認した出典(ウェブの原文)または推論の筋道 修正案:差し替える文(台本の話し言葉の調子に合わせて) ``` 最後に次の2点をまとめてください。 1. 事実の面で、このまま公開してよいか(はい/直してから) 2. 公開前に必ず直すべき指摘の文番号 --- ## 台本が使った出典 | 主張 | 文番号 | 出典 | |---|---|---| | 2026-04-19 北京亦庄の人型ロボット・ハーフマラソン(21.0975km・300台超・優勝 閃電/HONOR 50分26秒・自律・遠隔操作は1.2倍で採点・電池交換・機体交換・伴走の車) | {R('hook','promise_fair','check3')} | 新華社 https://www.news.cn/sports/20260419/c91172da5ef84342b7b07fb3c2ef8f12/c.html /北京市政府 https://english.beijing.gov.cn/latest/news/202604/t20260419_4593508.html ・ https://english.beijing.gov.cn/latest/news/202603/t20260306_4550687.html /中国新聞網 https://www.chinanews.com.cn/cj/2026/04-19/10606411.shtml /AP https://abcnews.com/International/wireStory/humanoid-robot-sprints-victory-beijing-beating-human-half-132179294 /TechCrunch https://techcrunch.com/2026/04/19/robots-beat-human-records-at-beijing-half-marathon/ /Scientific American https://www.scientificamerican.com/article/a-humanoid-robot-beat-the-human-half-marathon-record-at-a-beijing-race-but-what-did-it-actually-prove/ | | 2025年の第1回(天工 Ultra 2時間40分42秒) | {R('hook_last')} | 新華社・Smithsonian https://www.smithsonianmag.com/smart-news/humanoid-robots-just-raced-alongside-human-runners-in-a-world-first-half-marathon-heres-how-it-went-180986469/ | | 男子ハーフマラソン 56分51秒(ケジェルチャ・2026-08-23・世界記録候補・公認手続き中)。57分20秒(キプリモ・2026-03-08)の公認発表は2026-09-03 | {R('hook_wr')} | World Athletics https://worldathletics.org/news/report/world-half-marathon-record-buenos-aires-2026-yomif-kejelcha ・ https://worldathletics.org/news/press-releases/ratified-world-records-kiplimo-tharp-wanyonyi | | 仮想の世界での歩く練習(4096台・平地4分未満・でこぼこ20分未満・GPU 1枚・実機 ANYmal) | {R('c1_sim')} | Rudin ら 2021 https://arxiv.org/pdf/2109.11978 | | 2本足のロボットも2021年に仮想の練習で走れるようになっていた(研究者の発言)/1年の伸びは機体づくりと投資(専門家)/別の研究者の「思い込み」 | {R('c1_note','c1_speed','solve_twist')} | Scientific American(上と同じ記事) | | 布の仮想の世界の難しさ・本物に近づける研究 | {R('c2_cloth')} | RGBench https://arxiv.org/html/2511.06434 | | π0(双腕・固定・1万時間超のいろいろな作業のデータ・手の込んだ作業は1回5〜20分) | {R('c3_pi')} | https://arxiv.org/html/2410.24164v3 | | Figure(2025-08 タオルを自律でたたむ発表/Helix 2.5・2026-09-17・初めての30軒・タオル62%・3作業で56%・安全のための介入は失敗) | {R('c3_figure')} | Figure https://www.figure.ai/news/introducing-index ・ https://www.figure.ai/news/helix-2-5-zero-shot-30-home-generalization /humanoid.guide https://humanoid.guide/?p=18222 /runtimewire https://runtimewire.com/article/figure-index-human-video-robot-training-data | | 1X NEO(2026-04-30 量産開始・一般の出荷は2026年予定・覚えていない作業は担当者が遠くから導く) | {R('c3_neo')} | https://www.globenewswire.com/news-release/2026/04/30/3285118/0/en/1X-opens-NEO-Factory.html ・ https://www.businesswire.com/news/home/20251027434628/en/1X-Launches-NEO-The-Robot-Redefining-Life-at-Home ・ https://www.1x.tech/neo | | 布を仮想で練習させて本物につなげた研究 | {R('c2_cloth')} | Cloth Funnels https://arxiv.org/html/2210.09347 | | 2本足の Cassie が2021年に仮想の練習で走った | {R('c1_note')} | Oregon State University https://engineering.oregonstate.edu/all-stories/great-strides | | ゴールドバーグ(10万年分・仮想の練習は走る・宙返りではうまくいく) | {R('c3_gap','solve_twist')} | UC Berkeley https://vcresearch.berkeley.edu/news/are-we-truly-verge-humanoid-robot-revolution | | モラベック(1988年『Mind Children』の趣旨。原書は未確認) | {R('solve_moravec')} | https://en.wikipedia.org/wiki/Moravec%27s_paradox | | エイイチの机の上(台帳750行・上カメラ1台・要所の姿勢を手で教えて再生) | {R('ei_desk','ei_desk2')} | 本人の台帳と記録(外からは確かめられない) | | 見立て | {R('mitate1','mitate2','mitate3')} | エイイチの言葉(2026-10-19・2026-10-28 本人に聞いた答え) | --- ## 台本全文(動画で読み上げる版) """ + "\n".join(body) + "\n" open(f"codex_敵対的検証依頼_{NAME}.md", "w").write(md) print("文", n, "字", chars)