doco: C4收口 + A稿解析器升级(LLM骨架) + ep002/003/004骨架
- 新增 fusion_align.py(C4 compose + skeleton 提取/校验/预览)与 doco skeleton 命令 - ep001 C4 产物入库: 融合A稿.docx / 融合B稿.txt / c4_alignment.csv / fusion_review.csv - ep002/003/004: A稿 + 分段骨架(json+预览), 上游待跑 - .gitignore 增 .c3_cache/.c4_cache (可重生中间缓存不入库) - 更新 doco/CLAUDE.md 交接备注
This commit is contained in:
@@ -75,3 +75,7 @@ doco/.env
|
|||||||
|
|
||||||
# Python build artifacts
|
# Python build artifacts
|
||||||
*.egg-info/
|
*.egg-info/
|
||||||
|
|
||||||
|
# Doco AI 断点缓存(可重生,不入库)
|
||||||
|
doco/programs/*/.c3_cache/
|
||||||
|
doco/programs/*/.c4_cache/
|
||||||
+37
-20
@@ -16,9 +16,9 @@
|
|||||||
|
|
||||||
## 🔖 状态栏 (STATUS — 每次结束 session 前必须更新这三行)
|
## 🔖 状态栏 (STATUS — 每次结束 session 前必须更新这三行)
|
||||||
|
|
||||||
- **最后更新**:账号A | 2026-06-17
|
- **最后更新**:账号A | 2026-06-18(建议接手者开新 session)
|
||||||
- **当前状态一句话**:P3-C3 交叉复审完工(融合B稿743行+fusion_review 5条留痕落盘),产品文件已就位,下一步 C4 语义融合→融合A稿 docx。
|
- **当前状态一句话**:C4 已收口 + **A稿解析器升级完工**(正则→LLM分段骨架+人工确认+ignore合并,三期 ep002/003/004 骨架已产并人工核验通过:人名零泄露/覆盖完整/隔断与小剧场正确)。**但 ep002/003/004 上游全空**(连抽帧都没做)。下一步=**这三期从 P1 抽帧起走完整流水线 P1→P2→C1→C2→C3→C4 + 串一键脚本**。
|
||||||
- **下一个动手的人从这里开始**:见下方「⏩ 交接备注」
|
- **下一个动手的人从这里开始**:见下方「⏩ 交接备注」(新 session 必读)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -77,13 +77,15 @@
|
|||||||
|
|
||||||
## 3. 当前进度(核心交接区,以最新快照为准)
|
## 3. 当前进度(核心交接区,以最新快照为准)
|
||||||
|
|
||||||
- **正在做**:C3 已收口,C4 待开工。
|
- **正在做**:批量化首批三期(ep002 潜艇/ep003 小尺寸/ep004 枪王)。已完成 A稿解析器升级 + 三期骨架产出并人工核验通过。**下一步:这三期从 P1 抽帧起跑完整流水线**(上游全空,连抽帧/OCR/ASR 都没做),并把 C1→C2→C3→C4 串成一键脚本。
|
||||||
- **卡点 / 待解**:无。
|
- **卡点 / 待解**:无硬卡点。待 Cline 确认 Step5(parse_a_segments 改造)+Step6(compose 前置检查)是否已接好(上一轮其措辞含糊)。OCR 漏字决定不补、seg8/seg27 一逗到底(见关键决策)。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 4. 已完成(只追加,最新在最上)
|
## 4. 已完成(只追加,最新在最上)
|
||||||
|
|
||||||
|
- [2026-06-18 |账号A] **A稿解析器升级:正则 → LLM分段骨架 + 人工确认 + ignore合并**。起因:量产三期(ep002/003/004) A稿格式与 ep001 天差地别(冒号头/正文同段、`【固摇轨】`镜头标记酷似段头、正文整段加粗、小剧场对话角色头),原 `parse_a_segments` 纯正则(`^【.+?】$`)必散架。新机制(`fusion_align.py`):`extract_a_paragraphs`(带 bold/align 样式) → `extract_skeleton_llm`(thinking=True/max_tokens足量,**LLM 只判结构不碰正文**,输出 type/role_label/para 区间 JSON) → `validate_skeleton_coverage`(全覆盖硬校验,抓 LLM 数错下标/JSON 截断) → 落 `<id>_a_skeleton.json` + 人类预览表 → `parse_a_segments` 改读骨架按下标原样抽正文(inline 头切冒号、standalone 头取后续段、**ignore 段丢弃**、**相邻同 role_label 仅隔 ignore 的 normal 段合并**)。新命令 `doco skeleton --episode-id <id> --a-script <docx>`。**三期骨架已产并人工核验通过**:人名零泄露(刘通/孙逸昊/左鑫/穆佩弦/主持人真名都没混进 role_label)、覆盖完整、ep002 四隔断认对、ep003 九个`(出枪柜)`等归 ignore 且主持人被运镜切断后正确合并(37→20段)、ep004 小剧场卡/斯角色保留。ep001 无骨架时仍走旧正则 fallback,不受影响。
|
||||||
|
- [2026-06-18 |账号A] **P3-C4 第一批(保守版)收口**:`fusion_align.py` 把融合B稿743行碎句按 A稿 28 段(含 4 隔断)对齐归拢,套公文 docx 出稿 `融合A稿.docx`。**两条铁律守死**:①汉字零改——正文 100% 来自融合B稿;②标点由 LLM 按语义增删(一逗到底→正常断句)。机制:(a) **AI 对齐层**喂完整 A稿正文、seg_id 单调不减、thinking=True/4096、缓存 `.c4_cache/batch_N.json`;(b) **标点层** `punctuate_segment` 用 STRICT prompt(只许插标点、禁增删改字)+ 硬校验 `strip_punct(出)==strip_punct(入)` 不过即 3 次重试、再不过回退裸文本进 review,缓存 `punct_seg_N.json`,thinking=False/3000。**红线核验脚本逐段 strip_punct 比对 28/28 全过**(diff 全 equal)。隔断按 `^隔断:【(.+?)】` 正则识别、独立成段、line_count=0、位置正确(解说1/主持人2/3/4 后各一)。标点 `punct_ok` 26/28;seg8(专家2)、seg27(专家7) 两段 LLM 顽固插连接词触发回退、已落裸文本+标记"需人工",归第二批。产物:`融合A稿.docx` + `c4_alignment.csv`(32行对齐表,含 start/end_line、confidence、punct_ok、note)。命令 `doco compose --episode-id <id>`。
|
||||||
- [2026-06-17 |账号A] **P3-C3 收口**:`fusion_review.py` 逐行复审 B稿v2 ⊕ ASR(22 批×35行=743行),产 `融合B稿.txt`(行数/时间戳零偏移)+ `fusion_review.csv`(5条真OCR纠错留痕)。关键机制:断点缓存 `.c3_cache/batch_N.json` 可复用;硬校验行数/时间戳/change_type枚举不过不写文件;后处理修正 `final_text==B原文` 被 LLM 误标为 `minor_edit` 的行(19→5)。`--no-ai` 全 unchanged 可验证管道。
|
- [2026-06-17 |账号A] **P3-C3 收口**:`fusion_review.py` 逐行复审 B稿v2 ⊕ ASR(22 批×35行=743行),产 `融合B稿.txt`(行数/时间戳零偏移)+ `fusion_review.csv`(5条真OCR纠错留痕)。关键机制:断点缓存 `.c3_cache/batch_N.json` 可复用;硬校验行数/时间戳/change_type枚举不过不写文件;后处理修正 `final_text==B原文` 被 LLM 误标为 `minor_edit` 的行(19→5)。`--no-ai` 全 unchanged 可验证管道。
|
||||||
- [2026-06-17 |账号A] **P3-C2 收口**:密钥外置三验收点全过(硬编码已删/读 .env/已 gitignore)+ 旧 key 已轮换;`asr_adapter.py` 并入讯飞上传·轮询·解析,复用 P1 `extract_audio` 分离 16kHz/单声道/16bit WAV;新增 `doco asr` 命令读 C1 64条热词。**真转写《现代防空反导大对决》27分钟音频 → 310句带时间戳**,萨德×6/塔米尔/爱国者/箭二箭三/见证者等术语命中良好,raw json 730KB 落盘。(顺带修 `extract_audio` 在 Windows 的 `text=True` 解码崩溃。)
|
- [2026-06-17 |账号A] **P3-C2 收口**:密钥外置三验收点全过(硬编码已删/读 .env/已 gitignore)+ 旧 key 已轮换;`asr_adapter.py` 并入讯飞上传·轮询·解析,复用 P1 `extract_audio` 分离 16kHz/单声道/16bit WAV;新增 `doco asr` 命令读 C1 64条热词。**真转写《现代防空反导大对决》27分钟音频 → 310句带时间戳**,萨德×6/塔米尔/爱国者/箭二箭三/见证者等术语命中良好,raw json 730KB 落盘。(顺带修 `extract_audio` 在 Windows 的 `text=True` 解码崩溃。)
|
||||||
- [2026-06-16 |账号A] **P3-C1 收口**:A稿→规则+DeepSeek AI 提取→累积词典110条→热词清洗→本期热词表64条;AI 44 候选已逐个回查 A 稿原文无幻觉,算术对账一致。
|
- [2026-06-16 |账号A] **P3-C1 收口**:A稿→规则+DeepSeek AI 提取→累积词典110条→热词清洗→本期热词表64条;AI 44 候选已逐个回查 A 稿原文无幻觉,算术对账一致。
|
||||||
@@ -95,7 +97,11 @@
|
|||||||
## 5. 待办(按优先级,做完打勾)
|
## 5. 待办(按优先级,做完打勾)
|
||||||
|
|
||||||
- [x] **C3**:B稿v2 ⊕ ASR 交叉复审 → 融合B稿(743行时间戳零偏移) + fusion_review.csv(5条留痕)。
|
- [x] **C3**:B稿v2 ⊕ ASR 交叉复审 → 融合B稿(743行时间戳零偏移) + fusion_review.csv(5条留痕)。
|
||||||
- [ ] **C4**(下一步)**:融合B稿 + A稿语义对齐 → 融合A稿(公文 docx,GB/T 9704 格式)。按 A稿分段把融合B稿碎句归拢、套 docx 格式,C4 语义融合可开 thinking。
|
- [x] **C4(全部收口)**:融合B稿按 A稿28段对齐归拢 → 融合A稿 docx(公文格式)。汉字零改 + LLM 按语义加标点,红线 28/28 段逐字一致。`doco compose --episode-id <id>`。**OCR 漏字决定不补**(讨论见关键决策);seg8/seg27 两段标点接受一逗到底。
|
||||||
|
- [x] **A稿解析器升级**:正则 → LLM分段骨架+人工确认+ignore合并;三期骨架已产并核验通过。`doco skeleton`。
|
||||||
|
- [ ] **批量化首批三期·跑完整流水线(下一步主线)**:ep002/003/004 上游全空(连抽帧都没做)。需对每期跑 **P1抽帧 → P2 OCR(出B稿v2) → C1术语 → C2 ASR → C3融合(出融合B稿) → C4 compose(出融合A稿)**。重活在 P2 OCR(本地约半小时/期)与 C2 ASR(讯飞额度)。建议从 **ep002(最规整)** 起当烟雾测试,再 ep004(最难)、ep003。**注意:现在还不能直接跑 doco compose——三期都没有融合B稿。**
|
||||||
|
- [ ] **串一键脚本**:把 C1→C2→C3→C4 串成"一条命令跑一期"(薄壳,各阶段已有断点缓存),验 2-3 期稳定后再谈监控文件夹/绑定界面。
|
||||||
|
- [ ] **骨架小瑕疵 backlog(不拦路,后期顺手或跳过)**:ep002 演播室主持人 vs 主持人 是否统一;ep004 小剧场角色编号乱(斯9/斯通纳10、卡8跨场)直接改 JSON 即可,不必重调 LLM;ep003 行内`【固摇轨】`留在参照正文(无害,不进输出)。
|
||||||
- [x] **C2** 讯飞 ASR 适配层(密钥外置 + asr_adapter 并入 + `doco asr` 命令 + 真转写310句)
|
- [x] **C2** 讯飞 ASR 适配层(密钥外置 + asr_adapter 并入 + `doco asr` 命令 + 真转写310句)
|
||||||
- [x] P3-C1 术语提取 + 词典 + 热词表
|
- [x] P3-C1 术语提取 + 词典 + 热词表
|
||||||
- [x] P2 本地 OCR + B稿v2
|
- [x] P2 本地 OCR + B稿v2
|
||||||
@@ -105,6 +111,15 @@
|
|||||||
|
|
||||||
## 6. 关键决策(为什么这么做 — 跨 session 最易丢,别推翻)
|
## 6. 关键决策(为什么这么做 — 跨 session 最易丢,别推翻)
|
||||||
|
|
||||||
|
- [2026-06-18] **A稿段头识别改用「LLM 判结构 + 人工核骨架」,不用死正则。** 编导写法千变万化(方括号/冒号/前缀杂质`Xr`/`【固摇轨】`镜头标记/小剧场对话头),正则分不清`【固】`(镜头)与`【主持人1】`(段头)——这是语义判断,交 LLM。**铁律:LLM 只输出结构(type/role_label/para 区间),绝不复述正文;正文一律代码按下标从 docx 原样抽**(护住"汉字零改"红线)。配两道闸:① `validate_skeleton_coverage` 全覆盖硬校验(title 后每段恰好被覆盖一次,自动抓 LLM 数错下标/JSON 截断);② 人类预览表给制片人肉眼核(重点抓真人姓名泄露/ignore 漏多/隔断认全)。`doco compose` 无骨架即报错(ep001 例外走正则)。
|
||||||
|
- [2026-06-18] **role_label 只标"段落类型",严禁带任何真人姓名/配音员/编导署名。** 解说词只标【解说N】,不标谁配音(踩过 Cline 把"解说:刘通"标错)。但**小剧场里被演绎的历史人物/角色保留**(卡=卡拉什尼科夫、斯=斯通纳、小剧场N-主持人)——那是剧情内容不是配音员实名。有借鉴价值的修饰也留(三维动画解说/演播室主持人),只清杂质(`Xr`/编号/空格)。
|
||||||
|
- [2026-06-18] **解析层合并"被 ignore 隔断的同角色段"。** 编导用`(出枪柜)(换枪)`镜头切换把一个主持人的话从中间切断(ep003),骨架会切成两个同名`【主持人N】`。parse 后处理:相邻 normal 段 role_label 全等、中间仅隔 ignore,则合并(正文顺序拼接、ignore 内容丢弃),避免输出里冒重复段头。合并条件要严,ep002/004 无 ignore 不受影响。
|
||||||
|
- [2026-06-18] **OCR 漏字决定不补(通哥拍板),不让 LLM 补词。** 三条理由:① 漏字的根在**上游抽帧/OCR**——缺的"那么/此外/一方面"都是两三字单独一屏、停留短被整屏漏掉,是真实信息丢失,文稿层无法"还原";② **LLM 补词=猜词=破"汉字零改"红线**,对专业性强、最贴近播出版的稿子风险不可接受;③ 口子守不住——seg8/seg27 标点回退正是 LLM 一有机会就想塞连接词被硬校验拦下,证明给余地它就动手。**真要科学补,唯一正路是 ASR 回捞**(这些连接词主持人/解说真说了,大概率在 ASR 310 句里),而非 LLM 猜,但属 C3 级返工、本期不值;真做时先验 ASR 有无再说。**治本=提醒编导/责编别让两三字单独一屏**;本期连接词缺了能读懂,接受。
|
||||||
|
- [2026-06-18] **`融合A稿_批改.docx`(通哥手批)只当"看缺了什么"的参照,绝不当"让 docx 去贴它"的对齐目标。** 手批稿可能含其他润色,一旦去对齐就等于润色,违背"只守零改汉字+加标点、不润色其他部分"。
|
||||||
|
- [2026-06-18] **seg8(专家2 行169-216)/seg27(专家7 行584-608) 两段标点接受一逗到底(通哥选 B)。** 这是标点没点好,不是缺字,不碰汉字;若日后要美化由人工手点。
|
||||||
|
- [2026-06-18] **C4 红线由"汉字润色"转为"汉字零改、标点交 LLM 按语义增删"**(通哥拍板:"转变后的红线更精准、更科学")。理由:润色会让关键军事表述有不准确风险;保守做法正文 100% 来自融合B稿,只在字符间插标点。**硬校验 `strip_punct(LLM输出)==strip_punct(输入)`** 是这条红线的机器守门员(strip_punct 去掉所有 unicode 'P' 类标点+空白),不过即重试、再不过回退裸文本。**第一批先做保守版,润色/漏字回填留第二批。**
|
||||||
|
- [2026-06-18] **thinking 要按任务分用,不是越开越好——这是 C1"thinking不关content为空"的孪生坑。** 两个独立故障:(a) **开 thinking 时 max_tokens 必须给足**:thinking 与正文 `content` 共享同一配额,配额不够 thinking 吃光 → 正文空输出(C4 标点层 @2000 实测吐 0 字);(b) **浅层活(标点/抽取)开 thinking 会又慢又被推理空转吃光**:标点这种活开 thinking 单段 10+ 分钟还超时,关掉 thinking/3000 单段 6.9s 通过。**规则:语义对齐/融合这类深推理开 thinking 且给足 token(C4 对齐 4096);标点、抽取这类浅层确定性活必须关 thinking。**
|
||||||
|
- [2026-06-18] **A稿分段编号有重复(解说2/解说10 各出现两次)——任何按段头文本做 key 的字典都会把两次出现合并,必须按"文档出现顺序"切块/取块。** C4 红线核验脚本初版犯此错(解说2 行61-77 与行151-168 被并成一段、误报破线),改用 occurrence 队列后 28/28 全过。对齐表 c4_alignment.csv 用 seg_id 区分,不用段头文本。
|
||||||
- [2026-06-17] **C2 音频分离复用 P1 `video_split.extract_audio()`,不另写 ffmpeg。** WAV 落 `programs/<episode>/audio_16k.wav`,已存在则复用(避免 1GB 视频重复解码)。实测产物 `pcm_s16le/16000Hz/1ch/16bit/1620s`,符合讯飞硬要求。
|
- [2026-06-17] **C2 音频分离复用 P1 `video_split.extract_audio()`,不另写 ffmpeg。** WAV 落 `programs/<episode>/audio_16k.wav`,已存在则复用(避免 1GB 视频重复解码)。实测产物 `pcm_s16le/16000Hz/1ch/16bit/1620s`,符合讯飞硬要求。
|
||||||
- [2026-06-17] **`doco asr` 不传 `--output-dir` 会落到当前工作目录的 `programs/`**(命令在 repo 根 `E:\tps-dashboard` 跑时尤其坑),与 doco 产物分家。**命令一律用绝对 `--input-video` + 绝对 `--output-dir`。**
|
- [2026-06-17] **`doco asr` 不传 `--output-dir` 会落到当前工作目录的 `programs/`**(命令在 repo 根 `E:\tps-dashboard` 跑时尤其坑),与 doco 产物分家。**命令一律用绝对 `--input-video` + 绝对 `--output-dir`。**
|
||||||
- [2026-06-17] **ASR 输出是口语形态,型号不规范属正常**(如「箭二箭三」非「箭-3」、「高超音速/高超声速」混用)。按设计稿口语信 ASR、型号规范信 A/B 稿,**这些归一交给 C3,别回头改 C2**。
|
- [2026-06-17] **ASR 输出是口语形态,型号不规范属正常**(如「箭二箭三」非「箭-3」、「高超音速/高超声速」混用)。按设计稿口语信 ASR、型号规范信 A/B 稿,**这些归一交给 C3,别回头改 C2**。
|
||||||
@@ -125,22 +140,24 @@
|
|||||||
|
|
||||||
## 7. ⏩ 交接备注(写给下一个接手的 session)
|
## 7. ⏩ 交接备注(写给下一个接手的 session)
|
||||||
|
|
||||||
> 下次开工读完这段应能 0 摩擦续上。接手后可清空重写。
|
> 下次开工读完这段应能 0 摩擦续上。接手后可清空重写。**(本段已为「ep002/003/004 批量化」新 session 重写,2026-06-18)**
|
||||||
|
|
||||||
- **第一句话该干的**:C3 已完成,产物就位(`融合B稿.txt` 743行 + `fusion_review.csv` 5条留痕,都在 `doco/programs/ep001_20260612_fangkong_fandao/`)。直接开 C4。
|
- **大局**:首期 `ep001_20260612_fangkong_fandao` 全流程 C1→C4 已跑通、红线核验 28/28 逐字一致、`融合A稿.docx` 就位。代码管道(C1 terms / C2 asr / C3 fuse / C4 compose + 新增 skeleton)全部可用。现在进入**量产首批三期**。
|
||||||
- **C4 目标**:融合B稿(743行碎句)+ A稿 docx 语义对齐 → **融合A稿 docx**(公文格式,GB/T 9704)。按 A稿分段(【导视】【主持人N】【解说N】【专家N】【隔断】)把融合B稿碎句归拢到对应段落,套 docx 模板格式输出。C4 语义融合可开 thinking(非抽取类任务,质量优先)。一致性约束:融合A稿由融合B稿生成,不是拿 A 稿改。
|
- **这三期现状(关键!)**:`ep002_20260127_qianting_fangsheng`(潜艇仿生,中等)/`ep003_20260331_qiangxie_chicun`(小尺寸大讲究,最简单)/`ep004_20260526_qiangwang_duijue`(枪王对决,最难)。**只做了 A稿分段骨架(skeleton),上游一片空白**——没抽帧、没 OC、没 B稿v2、没 ASR、没融合B稿。每期目录里现有:原始 A稿 docx + mp4(约 1GB,规格与 ep001 同 = 黑底白字字幕视频,OCR/ASR 共用)+ `<id>_a_skeleton.json` + `<id>_a_skeleton_preview.txt`。
|
||||||
- **C4 输入**(均就位):
|
- **骨架已人工核验通过**(通哥过目):人名零泄露、覆盖完整、隔断/小剧场/ignore 分类正确。ep003 还修过两个真缺陷(主持人被 ignore 切成重复同名段→已合并 37→20;预览表"前20字"显示错位→已修)。**所以 skeleton 阶段对三期都算完成,别重跑。**
|
||||||
- `programs/ep001_20260612_fangkong_fandao/融合B稿.txt`(743行,`[XmYs] 文本`)
|
- **第一句话该干的**:**给这三期补上游流水线**。每期顺序:P1 抽帧 → P2 本地 OCR(DeepSeek-OCR/Ollama,约 30min/期,放独立终端)→ C1 术语热词 → C2 讯飞 ASR(花额度)→ C3 fuse → C4 compose。**`doco compose` 现在跑不了这三期**(没有融合B稿,C3 的产物),别误试。
|
||||||
- `programs/ep001_20260612_fangkong_fandao/现代防空反导大对决A稿.docx`(A稿,python-docx 可读)
|
- **推荐节奏**:先拿**最简单的 ep003** 当冒烟测试走完整条链验证管道,再 ep002,最后**最难的 ep004**(小剧场 58 段、历史人物对话密)。
|
||||||
- `programs/ep001_20260612_fangkong_fandao/fusion_review.csv`(5条改动留痕,可选参考)
|
- **要串的一键脚本**:把 `doco terms → asr → fuse → compose` 串成"一条命令跑完一期"(C1→C4 链;P1/P2 OCR 可先独立跑因为重且慢)。**批量化形态(监控文件夹 vs 绑定界面)通哥还没拍板**,先把半自动脚本串顺、验 2-3 期稳定,再回来定要不要做花活。
|
||||||
- **C3 重跑命令**:`doco fuse --episode-id ep001_20260612_fangkong_fandao`(`--no-ai` 全 unchanged 验证管道,缓存 `.c3_cache/` 复用无需重跑 AI)
|
- **量产坑(务必记住)**:
|
||||||
|
1. 每期热词/术语不同,**C1 每期重跑**;A稿分段编号各有各的重复/空格脏,**按出现顺序走、别假设单调唯一**,任何按段头文本做 key 的字典都会把重复段头合并(核验脚本初版踩过,用 occurrence 队列)。
|
||||||
|
2. **ASR 花讯飞额度、embedding 花 MiniMax 额度**,批量前估下成本;长转写/OCR 放独立终端别让 Cline 盯。
|
||||||
|
3. **OCR 漏字本期不补**(通哥拍板,见关键决策)——根在抽帧/OCR 漏掉两三字单屏,LLM 补词=破红线;治本是提醒编导别让两三字单独一屏。
|
||||||
|
4. Cline 会偷换模型/术语源、误判字数、口头猜错根因——**自报结果一律对源数据核验**。
|
||||||
|
5. **thinking 分任务用**:语义对齐/骨架开、标点/抽取关(见关键决策 2026-06-18)。
|
||||||
|
- **代码待落实的两处(让 Cline 确认已接线,没接就先接)**:① `parse_a_segments()` 改造(读 skeleton.json 抽正文、丢 ignore、合并 ignore 切断的同角色段)是否真生效;② `run_compose` 的"compose 前置检查"(无融合B稿/无骨架要报清错而非跑崩)是否真加。
|
||||||
|
- **骨架小瑕疵 backlog(非阻塞,可不动)**:ep002「演播室主持人」与「主持人」可统一称呼;ep004 小剧场角色编号(卡8/斯9/斯通纳10 等)可清成连续(直接改 JSON,**别重跑 LLM**);ep003 参考正文里内联的 `【固摇轨】` 镜头标记无害。
|
||||||
|
- **字体坑(C4 出稿)**:大标题方正小标宋_GBK(商业字体),出稿前确认制片机/编导机已装,否则脚本回退(标宋→宋体加粗)。
|
||||||
- 通哥连轴转了几轮,回复要紧凑。
|
- 通哥连轴转了几轮,回复要紧凑。
|
||||||
- **已知坑(务必记住)**:
|
|
||||||
1. **A稿真实约 6500–7300 汉字**(栏目常态 6000–8000),**不是 2.2 万**——那是用 `wc -m` 把 UTF-8 字节当字数的乌龙(一个汉字 3 字节)。docx 无文本框无表格,`python-docx` 提取的 ~7.5k 字符就是全文。
|
|
||||||
2. **A稿分段编号有坑**:解说2/解说10 各出现两次、主持人4/5 带空格、专家1–8 齐全。分段对齐**别假设编号单调或唯一,按出现顺序走**(顾问曾误说"跳6号",作废)。
|
|
||||||
3. Cline 会偷换模型/术语源、误判字数——**自报结果一律对源数据核验**。
|
|
||||||
- **C1 已知小尾巴(评估后不修,无害)**:热词条数报告 64、顾问数 65,差 1,远在 200 上限内;几对技术前缀未合并(光学红外/红外、诱饵弹前缀等),再收敛有过度合并风险,故止步。
|
|
||||||
- **C4 字体坑**:大标题用方正小标宋(商业字体),出稿前确认制片机/编导机已装,否则脚本里配回退(标宋→宋体加粗)。
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -33,8 +33,8 @@
|
|||||||
[3m30s] 太空中以子弹击落子弹,
|
[3m30s] 太空中以子弹击落子弹,
|
||||||
[3m33s] 它标志着当今世界军事科技的极致成就,也是战略防空领域真正的制高点。
|
[3m33s] 它标志着当今世界军事科技的极致成就,也是战略防空领域真正的制高点。
|
||||||
[3m47s] 一枚中远程弹道导弹的飞行分为上升段,
|
[3m47s] 一枚中远程弹道导弹的飞行分为上升段,
|
||||||
[3m51s] 终端、
|
[3m51s] 中段、
|
||||||
[3m52s] 末端
|
[3m52s] 末段
|
||||||
[3m53s] 三者在时空速度上的巨大差异,直接决定了拦截难度的天壤之别。
|
[3m53s] 三者在时空速度上的巨大差异,直接决定了拦截难度的天壤之别。
|
||||||
[4m0s] 上升段仅持续3~5分钟,时间窗口稍纵即逝,
|
[4m0s] 上升段仅持续3~5分钟,时间窗口稍纵即逝,
|
||||||
[4m5s] 且需在敌国领土拦截,
|
[4m5s] 且需在敌国领土拦截,
|
||||||
|
|||||||
@@ -0,0 +1,33 @@
|
|||||||
|
seg_id,header,start_line,end_line,line_count,min_confidence,punct_ok,note
|
||||||
|
0,"【导视】",1,17,17,1.0000,True,""
|
||||||
|
1,"【主持人1】",18,40,23,1.0000,True,""
|
||||||
|
2,"【解说1】",41,60,20,1.0000,True,""
|
||||||
|
3,"远程防空:弹道导弹与反导系统的巅峰对决",,,0,0.0000,,"隔断"
|
||||||
|
4,"【解说2】",61,77,17,1.0000,True,""
|
||||||
|
5,"【动画1】",78,111,34,1.0000,True,""
|
||||||
|
6,"【专家1】",112,150,39,1.0000,True,""
|
||||||
|
7,"【解说2】",151,168,18,0.9500,True,""
|
||||||
|
8,"【专家2】",169,216,48,1.0000,False,"标点恢复失败已回退,需人工"
|
||||||
|
9,"【解说3】",217,225,9,1.0000,True,""
|
||||||
|
10,"【主持人2】",226,240,15,1.0000,True,""
|
||||||
|
11,"中程防空:复合威胁下的区域空天防御攻坚战",,,0,0.0000,,"隔断"
|
||||||
|
12,"【解说4】",241,270,30,1.0000,True,""
|
||||||
|
13,"【专家3】",271,300,30,1.0000,True,""
|
||||||
|
14,"【解说5】",301,327,27,1.0000,True,""
|
||||||
|
15,"【专家4】",328,353,26,1.0000,True,""
|
||||||
|
16,"【解说6】",354,360,7,1.0000,True,""
|
||||||
|
17,"【主持人3】",361,376,16,1.0000,True,""
|
||||||
|
18,"近程防空:低空突防与最后防线的生死较量",,,0,0.0000,,"隔断"
|
||||||
|
19,"【解说7】",377,403,27,1.0000,True,""
|
||||||
|
20,"【专家5】",404,442,39,1.0000,True,""
|
||||||
|
21,"【解说8】",443,470,28,1.0000,True,""
|
||||||
|
22,"【专家6】",471,516,46,1.0000,True,""
|
||||||
|
23,"【解说9】",517,539,23,1.0000,True,""
|
||||||
|
24,"【主持人 4】",540,558,19,1.0000,True,""
|
||||||
|
25,"体系防空:全域防御与精准拦截的新困境",,,0,0.0000,,"隔断"
|
||||||
|
26,"【解说10】",559,583,25,0.9900,True,""
|
||||||
|
27,"【专家7】",584,608,25,0.9900,False,"标点恢复失败已回退,需人工"
|
||||||
|
28,"【解说10】",609,668,60,1.0000,True,""
|
||||||
|
29,"【专家8】",669,696,28,1.0000,True,""
|
||||||
|
30,"【解说11】",697,713,17,1.0000,True,""
|
||||||
|
31,"【主持人 5】",714,743,30,1.0000,True,""
|
||||||
|
@@ -0,0 +1,6 @@
|
|||||||
|
line_no,timestamp,b_original,asr_context,final_text,change_type,confidence,reason
|
||||||
|
69,3m21s,作为现代战略空军的最高层级,弹道导弹与反导系统之间的对决,无疑是最具战略威慑力且最检验技术水平的顶峰交锋。 其中中段反导作为现代战略防空的最高层级, 更是左右战场局势的核心要素。 这项技术常被形容为 太空中以子弹击落子弹,,作为现代战略防空的最高层级,minor_edit,0.99,B稿为'作为现代战略空军的最高层级',ASR为'作为现代战略防空的最高层级'。根据上下文(反导系统、中段反导),'防空'比'空军'更准确,应为B稿OCR识别错误,以ASR修正。
|
||||||
|
90,4m12s,未段导弹,受部署限制难以实施拦截,成功率极低。 末段导弹俯冲至几十公里至几公里高空, 速度达马赫数10~20, 仅留数秒至十几秒的反应时间,,末段导弹,editor_typo,1.0,B稿'未段导弹'为明显错字,ASR为'末段导弹',且上下文均为'末段',予以修正。
|
||||||
|
426,15m40s,有的远程防空作战体系,它的搜索系统是比较简单的,视野不够宽广,也无法针对远距离的目标进行识别,所以呢有的近程防空作战体系它本质上来讲是近视眼, 而且呢还涉及到一些地形起伏的问题。 如果对方利用这种地形起伏,啊那么去进行超低空的突防,那么在相关区域内部署的一些传感器,比如说低空搜索雷达或者是光学红外传感器,可能没有办法及时有效的识别目标。,有的近程防空作战体系,minor_edit,0.95,B稿为'远程',ASR及上下文均为'近程',属于OCR错字,根据ASR修正。
|
||||||
|
652,23m18s,作为远程防空核心弹药,美以用于对抗的防空武器却如同天价奢侈品。 以色列铁穹系统的拦截弹作为近程防空核心弹药, 每枚成本达5万到10万美元, 这意味着即便成功拦截防御方的经济损失,也远超进攻方。 更甚者,美国爱国者三拦截弹作为中程防空主力,,作为近程防空核心弹药,minor_edit,0.99,B稿OCR误将“近程”识别为“远程”,根据ASR上下文及铁穹系统实际定位修正。
|
||||||
|
719,25m30s,高低坚固的立体防御天网,完整链条, 构建了远近交错高低兼顾的立体防御天网。 然而 高超声速武器如闪电般突破, 无人机群的压制以及饱和式攻击的浪潮不断袭来, 让传统防空体系面临着严峻的考验,,高低兼顾的立体防御天网,editor_typo,0.99,B稿“高低坚固”应为“高低兼顾”,ASR为“高低兼顾”,语义通顺,修正OCR错字。
|
||||||
|
Binary file not shown.
@@ -0,0 +1,743 @@
|
|||||||
|
[0m8s] 导弹呼啸而过
|
||||||
|
[0m9s] 战机低空穿梭
|
||||||
|
[0m11s] 无人机如蜂群般袭来
|
||||||
|
[0m14s] 这些空中威胁
|
||||||
|
[0m15s] 正不断挑战防御体系的极限
|
||||||
|
[0m18s] 它们是如何被精确拦截的
|
||||||
|
[0m21s] 究竟是什么力量
|
||||||
|
[0m22s] 能在遥远距离精准打击
|
||||||
|
[0m24s] 在近在咫尺时
|
||||||
|
[0m26s] 完成致命一击呢
|
||||||
|
[0m28s] 本期《军事科技》
|
||||||
|
[0m30s] 将带您逐步解析
|
||||||
|
[0m31s] 现代防空网络的复杂机制
|
||||||
|
[0m34s] 亲眼见证
|
||||||
|
[0m35s] 科技与智慧打造的空中屏障
|
||||||
|
[0m38s] 揭秘现代防空体系
|
||||||
|
[0m40s] 御敌于空的终极密码
|
||||||
|
[1m15s] 各位观众你们好
|
||||||
|
[1m16s] 欢迎收看《军事科技》
|
||||||
|
[1m17s] 我是主持人蓝皓
|
||||||
|
[1m20s] 从第二次世界大战时期的
|
||||||
|
[1m21s] 战机轰炸
|
||||||
|
[1m22s] 到冷战时期的导弹威慑
|
||||||
|
[1m24s] 再到如今的无人机
|
||||||
|
[1m26s] 高超声速武器的崛起
|
||||||
|
[1m28s] 空中威胁的形态
|
||||||
|
[1m29s] 不断地迭代
|
||||||
|
[1m31s] 防御体系也在随之进化
|
||||||
|
[1m34s] 而如今的现代化防空系统
|
||||||
|
[1m36s] 早已不再是
|
||||||
|
[1m37s] 单一武器的简单对抗了
|
||||||
|
[1m39s] 而是构建了
|
||||||
|
[1m40s] 以远 中 近衔接
|
||||||
|
[1m42s] 高中 低覆盖为一体的
|
||||||
|
[1m44s] 立体化防御系统
|
||||||
|
[1m46s] 仿佛一块层层镶嵌的空中盾牌
|
||||||
|
[1m49s] 从千里之外的高空
|
||||||
|
[1m51s] 到咫尺之间的低空
|
||||||
|
[1m53s] 形成了无死角的防护
|
||||||
|
[1m56s] 在与新型空中威胁持续对抗当中
|
||||||
|
[1m59s] 上演着一场场激烈的
|
||||||
|
[2m1s] 攻与防的较量
|
||||||
|
[2m19s] 2026年2月28日
|
||||||
|
[2m21s] 美以两国协同向伊朗发起军事打击
|
||||||
|
[2m24s] 中东地区顿时战火纷飞
|
||||||
|
[2m27s] 硝烟弥漫
|
||||||
|
[2m29s] 随着冲突不断加剧
|
||||||
|
[2m30s] 各方频繁动用弹道导弹
|
||||||
|
[2m32s] 巡航导弹
|
||||||
|
[2m34s] 高超声速武器
|
||||||
|
[2m35s] 以及自杀式无人机等先进装备
|
||||||
|
[2m38s] 展开密集的高强度空袭
|
||||||
|
[2m41s] 波斯湾上空
|
||||||
|
[2m42s] 随即呈现出一场
|
||||||
|
[2m44s] 攻防交织的终极较量
|
||||||
|
[2m46s] 涉及突破与拦截
|
||||||
|
[2m48s] 毁灭与保卫
|
||||||
|
[2m50s] 这场关乎生死存亡
|
||||||
|
[2m51s] 与战局走向的空中攻防战
|
||||||
|
[2m54s] 彻底爆发
|
||||||
|
[3m4s] 在涉及远 中 近程
|
||||||
|
[3m7s] 和高 中 低空的
|
||||||
|
[3m8s] 全方位空战对抗中
|
||||||
|
[3m11s] 弹道导弹
|
||||||
|
[3m12s] 与反导系统之间的对决
|
||||||
|
[3m14s] 无疑是最具战略威慑力
|
||||||
|
[3m16s] 且最检验技术水平的顶峰交锋
|
||||||
|
[3m20s] 中段反导
|
||||||
|
[3m21s] 作为现代战略防空的最高层级
|
||||||
|
[3m24s] 更是左右战场局势的核心要素
|
||||||
|
[3m28s] 这项技术
|
||||||
|
[3m29s] 常被形容为
|
||||||
|
[3m30s] 太空中以子弹击落子弹
|
||||||
|
[3m34s] 它标志着
|
||||||
|
[3m35s] 当今世界军事科技的极致成就
|
||||||
|
[3m37s] 也是战略防空领域
|
||||||
|
[3m39s] 真正的制高点
|
||||||
|
[3m48s] 一枚中远程弹道导弹的飞行
|
||||||
|
[3m50s] 分为上升段
|
||||||
|
[3m52s] 中段
|
||||||
|
[3m53s] 末段
|
||||||
|
[3m54s] 三者在时空 速度上的巨大差异
|
||||||
|
[3m57s] 直接决定了
|
||||||
|
[3m58s] 拦截难度的天壤之别
|
||||||
|
[4m0s] 上升段仅持续3至5分钟
|
||||||
|
[4m3s] 时间窗口稍纵即逝
|
||||||
|
[4m6s] 且需在敌国领土拦截
|
||||||
|
[4m8s] 受部署限制难以实施
|
||||||
|
[4m10s] 拦截成功率极低
|
||||||
|
[4m12s] 末段导弹
|
||||||
|
[4m13s] 俯冲至几十公里至几公里高空
|
||||||
|
[4m16s] 速度达马赫数10至20
|
||||||
|
[4m19s] 仅留数秒至十几秒的反应时间
|
||||||
|
[4m22s] 同时面临机动变轨
|
||||||
|
[4m24s] 多弹头诱饵及低空探测盲区
|
||||||
|
[4m27s] 拦截风险高且成功率有限
|
||||||
|
[4m31s] 唯有中段
|
||||||
|
[4m32s] 导弹在100公里以上大气层外
|
||||||
|
[4m34s] 无动力滑行
|
||||||
|
[4m36s] 飞行时间长达10至20分钟
|
||||||
|
[4m39s] 轨迹由万有引力决定
|
||||||
|
[4m41s] 极度稳定
|
||||||
|
[4m42s] 并未释放弹头与诱饵
|
||||||
|
[4m44s] 反导系统有足够的时间预警
|
||||||
|
[4m47s] 测算轨迹并拦截
|
||||||
|
[4m49s] 采用动能撞击
|
||||||
|
[4m51s] 可彻底消除地面威胁
|
||||||
|
[4m53s] 是现代战略防空最理想
|
||||||
|
[4m55s] 效果最佳的黄金拦截期
|
||||||
|
[4m59s] 也是各国反导技术研发的
|
||||||
|
[5m1s] 核心方向
|
||||||
|
[5m9s] 虽然说
|
||||||
|
[5m10s] 中段反导拦截
|
||||||
|
[5m11s] 在整个反导作战的流程当中
|
||||||
|
[5m14s] 它是比较容易实现的
|
||||||
|
[5m16s] 或者说
|
||||||
|
[5m17s] 可以针对对方来袭的导弹
|
||||||
|
[5m20s] 进行精准的摧毁
|
||||||
|
[5m21s] 但是最大的问题
|
||||||
|
[5m22s] 就是你的预警系统
|
||||||
|
[5m24s] 需要看得远
|
||||||
|
[5m25s] 反导拦截弹
|
||||||
|
[5m26s] 需要飞得快
|
||||||
|
[5m27s] 打得高 打得远
|
||||||
|
[5m28s] 所以对于技术方面的要求
|
||||||
|
[5m29s] 是比较高的
|
||||||
|
[5m30s] 这就要求
|
||||||
|
[5m31s] 大型的相控阵预警雷达
|
||||||
|
[5m33s] 能够在极远的距离上
|
||||||
|
[5m35s] 针对外大气层飞行的
|
||||||
|
[5m38s] 这种小型高速移动的目标
|
||||||
|
[5m40s] 能够进行精准的锁定
|
||||||
|
[5m42s] 而且要对它进行持续的跟踪
|
||||||
|
[5m45s] 还要有相关的
|
||||||
|
[5m46s] 这样的一个计算系统
|
||||||
|
[5m47s] 针对它的飞行轨迹进行计算
|
||||||
|
[5m49s] 这样的话
|
||||||
|
[5m50s] 才能够有效地引导反导拦截弹
|
||||||
|
[5m53s] 在外大气层
|
||||||
|
[5m54s] 对它进行精准的这样的一个截杀
|
||||||
|
[5m57s] 而且反导拦截弹的性能
|
||||||
|
[5m58s] 要求非常高
|
||||||
|
[6m0s] 不仅要飞得高
|
||||||
|
[6m1s] 飞得远 飞得快
|
||||||
|
[6m2s] 而且
|
||||||
|
[6m3s] 甚至还要配备有动能的战斗部
|
||||||
|
[6m5s] 要针对处于飞行状态的
|
||||||
|
[6m7s] 弹道导弹
|
||||||
|
[6m8s] 进行精准的撞击
|
||||||
|
[6m10s] 确保它是被彻底摧毁
|
||||||
|
[6m15s] 3月5日
|
||||||
|
[6m17s] 伊朗伊斯兰革命卫队发布声明称
|
||||||
|
[6m20s] 在“真实承诺-4”行动的第17轮中
|
||||||
|
[6m23s] 伊朗动用高超声速导弹
|
||||||
|
[6m25s] 和攻击无人机
|
||||||
|
[6m27s] 成功突破美国“萨德”防御系统
|
||||||
|
[6m30s] 打击了以色列国防部大楼
|
||||||
|
[6m32s] 与本-古里安国际机场
|
||||||
|
[6m34s] 并摧毁了7套雷达系统
|
||||||
|
[6m36s] 及核心配套设备
|
||||||
|
[6m39s] 同期
|
||||||
|
[6m40s] 美国内部评估报告透露
|
||||||
|
[6m42s] 作为中东关键中段反导装备的
|
||||||
|
[6m45s] 以色列“箭式”系统
|
||||||
|
[6m46s] 在拦截伊朗中程弹道导弹时
|
||||||
|
[6m49s] 显现重大短板
|
||||||
|
[6m51s] 实际拦截率
|
||||||
|
[6m52s] 远未达到原有设计标准
|
||||||
|
[6m57s] 那么在以色列的国土范围内
|
||||||
|
[6m59s] 有“箭-2” “箭-3” 反导系统
|
||||||
|
[7m1s] 也有美国部署的“萨德”反导系统
|
||||||
|
[7m4s] 但是我们看
|
||||||
|
[7m5s] 仍然有数量相当多的伊朗弹道导弹
|
||||||
|
[7m8s] 成功突防
|
||||||
|
[7m9s] 针对以色列区域内的目标
|
||||||
|
[7m11s] 进行了毁伤
|
||||||
|
[7m13s] 为什么说“箭-2”“箭-3”
|
||||||
|
[7m14s] 以及“萨德”系统
|
||||||
|
[7m15s] 它联起手来
|
||||||
|
[7m16s] 也没有办法针对伊朗的弹道导弹
|
||||||
|
[7m19s] 进行这种百分之百的防范和拦截
|
||||||
|
[7m21s] 我认为
|
||||||
|
[7m22s] 首先是伊朗弹道导弹的技术
|
||||||
|
[7m25s] 有所提升
|
||||||
|
[7m26s] 部分伊朗的弹道导弹
|
||||||
|
[7m27s] 采用了这种高超音速的战斗部
|
||||||
|
[7m30s] 在飞行的末段
|
||||||
|
[7m31s] 会有突然的加速
|
||||||
|
[7m32s] 或者说有急剧的
|
||||||
|
[7m34s] 飞行轨迹的变化
|
||||||
|
[7m35s] 这样的话
|
||||||
|
[7m36s] “萨德”系统
|
||||||
|
[7m37s] 和“箭-2”“箭-3”反导系统
|
||||||
|
[7m38s] 很难对它进行精准的拦截
|
||||||
|
[7m40s] 此外
|
||||||
|
[7m41s] 伊朗的一些弹道导弹
|
||||||
|
[7m43s] 比如说像“霍拉姆沙赫尔-4”
|
||||||
|
[7m45s] 那么它是一种重型的
|
||||||
|
[7m46s] 这样的一个弹头的设计理念
|
||||||
|
[7m49s] 1.5吨到2吨的战斗部
|
||||||
|
[7m51s] 它可以采用这种集束弹头
|
||||||
|
[7m53s] 这样的一个模式
|
||||||
|
[7m55s] 飞到了目标区上空之后
|
||||||
|
[7m56s] 打出了一个满天星的效果
|
||||||
|
[7m58s] 数十枚子弹头飞向目标区域
|
||||||
|
[8m1s] 所有的防空反导系统
|
||||||
|
[8m3s] 都没有办法对它进行拦截
|
||||||
|
[8m5s] 那么还有另外一种情况
|
||||||
|
[8m7s] 美国的反导作战系统
|
||||||
|
[8m8s] 和以色列的“箭-2” “箭-3” 反导系统
|
||||||
|
[8m10s] 它没有办法进行联网作战
|
||||||
|
[8m12s] 是各打各的
|
||||||
|
[8m13s] 这样的话
|
||||||
|
[8m14s] 在相关的区域内
|
||||||
|
[8m15s] 没有办法进行目标信息的共享
|
||||||
|
[8m17s] 那么也无法形成合力
|
||||||
|
[8m21s] 2026年3月15日
|
||||||
|
[8m23s] 伊朗伊斯兰革命卫队
|
||||||
|
[8m25s] 在“真实承诺-4”军事行动中
|
||||||
|
[8m28s] 首次实战部署了泥石导弹
|
||||||
|
[8m31s] 与此同时
|
||||||
|
[8m32s] 美国从韩国
|
||||||
|
[8m34s] 紧急调遣了萨德反导系统
|
||||||
|
[8m36s] 以加强该地区的防御
|
||||||
|
[8m38s] 应对伊朗导弹带来的持续威胁
|
||||||
|
[8m44s] 若将远程反导
|
||||||
|
[8m45s] 视作千里点穴的区域防空手段
|
||||||
|
[8m48s] 中程防空
|
||||||
|
[8m50s] 便是中空守护网
|
||||||
|
[8m52s] 承担着衔接
|
||||||
|
[8m53s] 远近防御的关键使命
|
||||||
|
[8m56s] 它覆盖数十公里
|
||||||
|
[8m57s] 乃至一百多公里的中高空区域
|
||||||
|
[9m0s] 作为防空体系中的
|
||||||
|
[9m2s] 中坚力量
|
||||||
|
[9m4s] 承担起区域防空重任
|
||||||
|
[9m6s] 护卫城市
|
||||||
|
[9m7s] 军事要地等高价值目标
|
||||||
|
[9m9s] 成为整个防空网络中
|
||||||
|
[9m11s] 承上启下的核心组成部分
|
||||||
|
[9m22s] 中程防空
|
||||||
|
[9m24s] 作为现代防空作战系统的
|
||||||
|
[9m25s] 关键环节
|
||||||
|
[9m27s] 其防御半径
|
||||||
|
[9m28s] 一般在50到200公里之间
|
||||||
|
[9m31s] 拦截高度
|
||||||
|
[9m32s] 重点覆盖10至20公里的中高空域
|
||||||
|
[9m36s] 这片空域
|
||||||
|
[9m37s] 正是现代战争中
|
||||||
|
[9m39s] 空中威胁密集活动的核心地带
|
||||||
|
[9m42s] 敌方战机
|
||||||
|
[9m43s] 若要突破外层防御
|
||||||
|
[9m45s] 打击纵深关键目标
|
||||||
|
[9m47s] 必须穿越此区域
|
||||||
|
[9m49s] 巡航导弹
|
||||||
|
[9m50s] 虽常利用低空突防
|
||||||
|
[9m52s] 但多数情况下
|
||||||
|
[9m54s] 仍需在中高空调整姿态
|
||||||
|
[9m56s] 寻找防御薄弱点
|
||||||
|
[9m58s] 而中近程导弹在俯冲末段
|
||||||
|
[10m1s] 同样会经过这一高度区间
|
||||||
|
[10m4s] 其高速特性
|
||||||
|
[10m5s] 要求中程防空系统及早介入
|
||||||
|
[10m8s] 精确拦截
|
||||||
|
[10m9s] 可以说
|
||||||
|
[10m10s] 这片中高空域
|
||||||
|
[10m11s] 是空中威胁
|
||||||
|
[10m13s] 渗向核心目标的必经通道
|
||||||
|
[10m16s] 也是防空体系中
|
||||||
|
[10m17s] 承前启后的关键拦截区
|
||||||
|
[10m26s] 在现代化的防空作战行动当中
|
||||||
|
[10m29s] 中程防空的难度是非常大的
|
||||||
|
[10m31s] 因为很多对方的
|
||||||
|
[10m34s] 这种空中的来袭目标
|
||||||
|
[10m36s] 其实它都是在
|
||||||
|
[10m37s] 中程防空的任务范围内
|
||||||
|
[10m39s] 目标的属性是非常多的
|
||||||
|
[10m41s] 此外
|
||||||
|
[10m42s] 在复杂的电磁环境的
|
||||||
|
[10m44s] 这样的一个状态下
|
||||||
|
[10m45s] 中程的防空体系
|
||||||
|
[10m47s] 也可能会出现失灵的情况
|
||||||
|
[10m49s] 因为
|
||||||
|
[10m50s] 对方可能会出动电子战飞机
|
||||||
|
[10m52s] 针对你的防空作战体系
|
||||||
|
[10m53s] 进行压制
|
||||||
|
[10m54s] 此外
|
||||||
|
[10m55s] 有的时候面对各种各样的目标
|
||||||
|
[10m57s] 数量众多的目标
|
||||||
|
[10m59s] 中程防空系统
|
||||||
|
[11m0s] 它的这样的一个
|
||||||
|
[11m2s] 火力的密集程度
|
||||||
|
[11m3s] 可能会出现不足的情况
|
||||||
|
[11m5s] 比如说一部发射器上
|
||||||
|
[11m7s] 它只有数量有限的中程防空导弹
|
||||||
|
[11m9s] 打完了之后
|
||||||
|
[11m10s] 对方的目标连续地持续地袭来
|
||||||
|
[11m14s] 那中程防空体系
|
||||||
|
[11m15s] 可能也会面临弹药不足
|
||||||
|
[11m17s] 火力不足的情况
|
||||||
|
[11m21s] 在近期
|
||||||
|
[11m22s] 美以联合对伊朗的军事行动中
|
||||||
|
[11m25s] 中程导弹防御系统
|
||||||
|
[11m27s] 成为防空体系中的
|
||||||
|
[11m28s] 核心作战力量
|
||||||
|
[11m30s] 也是双方攻防较量
|
||||||
|
[11m32s] 最为激烈的领域
|
||||||
|
[11m34s] 为巩固中程防御屏障
|
||||||
|
[11m36s] 美国运用
|
||||||
|
[11m37s] “爱国者”防空反导系统
|
||||||
|
[11m39s] 结合天基预警卫星
|
||||||
|
[11m41s] 陆基远程雷达
|
||||||
|
[11m43s] 及集成化指挥控制中心
|
||||||
|
[11m45s] 打造了能够覆盖30公里
|
||||||
|
[11m48s] 至150公里空域的拦截体系
|
||||||
|
[11m50s] 着重防护其军事基地
|
||||||
|
[11m52s] 与国防工业区域
|
||||||
|
[11m55s] 面对伊朗高超音速武器
|
||||||
|
[11m58s] 配合无人机集群的
|
||||||
|
[11m59s] 非对称组合式打击
|
||||||
|
[12m2s] 此前被美军公开宣称
|
||||||
|
[12m3s] 拦截成功率
|
||||||
|
[12m5s] 可达80%到97%的“爱国者”系统
|
||||||
|
[12m9s] 实际拦截率
|
||||||
|
[12m10s] 已跌至5%以下
|
||||||
|
[12m13s] 系统还频频出现拦截假目标
|
||||||
|
[12m16s] 漏过真实弹头的失误
|
||||||
|
[12m21s] “爱国者”曾在海湾战争期间
|
||||||
|
[12m24s] 一战成名
|
||||||
|
[12m25s] 那当时
|
||||||
|
[12m26s] 美军“爱国者”系统
|
||||||
|
[12m27s] 它所拦截的导弹
|
||||||
|
[12m29s] 都是伊拉克萨达姆政权军队
|
||||||
|
[12m32s] 使用的比较老旧的
|
||||||
|
[12m34s] “飞毛腿”弹道导弹
|
||||||
|
[12m36s] 它的飞行轨迹是一个典型的抛物线
|
||||||
|
[12m38s] 不会有这种
|
||||||
|
[12m39s] 机动变轨的这样的一些动作
|
||||||
|
[12m41s] 所以
|
||||||
|
[12m42s] 只要是探测到了它的飞行轨迹
|
||||||
|
[12m45s] 多发射一些“爱国者”拦截弹
|
||||||
|
[12m48s] 是可以对它进行有效拦截的
|
||||||
|
[12m49s] 但是现代化的弹道导弹
|
||||||
|
[12m51s] 突防能力都很强
|
||||||
|
[12m53s] 飞行轨迹是变化的
|
||||||
|
[12m54s] 甚至可以说是有一些打水漂的
|
||||||
|
[12m56s] 这样的一个飞行轨迹
|
||||||
|
[12m57s] 速度又很快
|
||||||
|
[12m58s] 那么甚至可能会携带
|
||||||
|
[13m0s] 更多的诱饵弹和干扰弹
|
||||||
|
[13m1s] 所以“爱国者”系统
|
||||||
|
[13m2s] 可能根本就看不清
|
||||||
|
[13m4s] 可能也就追不上
|
||||||
|
[13m6s] “爱国者”导弹在部分实战场景中
|
||||||
|
[13m9s] 拦截效果未达预期
|
||||||
|
[13m12s] 这一表现
|
||||||
|
[13m13s] 使得美以联合构建的
|
||||||
|
[13m14s] 中程防空反导系统暴露出短板
|
||||||
|
[13m18s] 也让多国对该系统
|
||||||
|
[13m19s] 产生信任危机
|
||||||
|
[13m24s] 在现代防空系统中
|
||||||
|
[13m25s] 低空与超低空
|
||||||
|
[13m27s] 是远程及中程防空
|
||||||
|
[13m29s] 存在的短板
|
||||||
|
[13m30s] 受到地球曲率
|
||||||
|
[13m32s] 地形掩蔽等影响
|
||||||
|
[13m33s] 远程雷达难以追踪低空目标
|
||||||
|
[13m37s] 而中程防空导弹
|
||||||
|
[13m38s] 在低空条件下
|
||||||
|
[13m39s] 制导系统易受地面杂波的干扰
|
||||||
|
[13m41s] 致使拦截效能下降
|
||||||
|
[13m44s] 因此
|
||||||
|
[13m45s] 近程防空系统由此诞生
|
||||||
|
[13m48s] 专门用于近距离的防护
|
||||||
|
[13m50s] 弥补了防空网络
|
||||||
|
[13m52s] 在低空领域的不足
|
||||||
|
[14m1s] 对普通公众而言
|
||||||
|
[14m3s] 近程防空无疑是最常见
|
||||||
|
[14m6s] 且视觉冲击力最强的防空形式
|
||||||
|
[14m9s] 那些在网络短片
|
||||||
|
[14m11s] 新闻报道和战场记录中
|
||||||
|
[14m13s] 常见的导弹腾空而起
|
||||||
|
[14m15s] 尾焰撕裂黑夜
|
||||||
|
[14m17s] 目标在空中爆炸
|
||||||
|
[14m19s] 火光刹那映亮天空的拦截画面
|
||||||
|
[14m22s] 大多源自近程防空系统
|
||||||
|
[14m25s] 这些系统射程较短
|
||||||
|
[14m27s] 但部署便捷响应迅速
|
||||||
|
[14m30s] 通常在目标接近阵地
|
||||||
|
[14m32s] 城市或重要设施的最后一刻
|
||||||
|
[14m35s] 才发动攻击
|
||||||
|
[14m36s] 因而更易被现场捕捉
|
||||||
|
[14m38s] 媒体记录
|
||||||
|
[14m39s] 并广泛传播
|
||||||
|
[14m41s] 正是由于这种高频曝光
|
||||||
|
[14m43s] 近程防空在许多人心中
|
||||||
|
[14m45s] 几乎成了防空的代名词
|
||||||
|
[14m48s] 然而实际上
|
||||||
|
[14m49s] 近程防空在整体防空网络中
|
||||||
|
[14m52s] 充当的是最终贴身防线的功能
|
||||||
|
[14m56s] 远程和中程防空
|
||||||
|
[14m58s] 无法覆盖的低空
|
||||||
|
[15m0s] 及超低空漏洞
|
||||||
|
[15m4s] 近程防空作战体系
|
||||||
|
[15m6s] 在实际应用的过程当中
|
||||||
|
[15m7s] 有的时候
|
||||||
|
[15m9s] 可能会成为战场上的奇兵
|
||||||
|
[15m10s] 因为对方的直升机
|
||||||
|
[15m13s] 甚至包括战斗机
|
||||||
|
[15m14s] 在低空飞行的时候
|
||||||
|
[15m15s] 它可能会放松警惕
|
||||||
|
[15m16s] 另外一个来不及反应
|
||||||
|
[15m18s] 所以这个时候
|
||||||
|
[15m19s] 近程防空火力
|
||||||
|
[15m20s] 针对目标进行射击的时候
|
||||||
|
[15m21s] 战斗机很难对它进行规避
|
||||||
|
[15m23s] 有的时候甚至连
|
||||||
|
[15m25s] 发射红外诱饵弹的时间都没有
|
||||||
|
[15m28s] 近程防空也有很大的难度
|
||||||
|
[15m30s] 因为很多近程防空作战体系
|
||||||
|
[15m33s] 它的搜索系统是比较简单的
|
||||||
|
[15m35s] 视野不够宽广
|
||||||
|
[15m36s] 也无法针对远距离的目标
|
||||||
|
[15m38s] 进行识别
|
||||||
|
[15m39s] 所以
|
||||||
|
[15m40s] 有的近程防空作战体系
|
||||||
|
[15m41s] 它本质上来讲是“近视眼”
|
||||||
|
[15m43s] 而且还涉及到一些
|
||||||
|
[15m44s] 地形起伏的问题
|
||||||
|
[15m46s] 如果对方利用这种地形起伏
|
||||||
|
[15m49s] 那么去进行超低空的突防
|
||||||
|
[15m51s] 在相关区域内部署的一些传感器
|
||||||
|
[15m53s] 比如说低空搜索雷达
|
||||||
|
[15m54s] 或者是光学红外传感器
|
||||||
|
[15m56s] 可能没有办法
|
||||||
|
[15m57s] 及时有效地识别目标
|
||||||
|
[15m58s] 那么这些低空突防的
|
||||||
|
[16m0s] 这样的一些空中作战平台
|
||||||
|
[16m2s] 也可能会针对
|
||||||
|
[16m3s] 近程的防空作战体系
|
||||||
|
[16m4s] 包括相关的防空阵地
|
||||||
|
[16m6s] 进行打击和压制
|
||||||
|
[16m11s] 在近期
|
||||||
|
[16m12s] 美以联合对伊朗的军事行动中
|
||||||
|
[16m15s] 以色列拉斐尔公司研发的
|
||||||
|
[16m17s] “铁穹”近程防空系统
|
||||||
|
[16m19s] 经历了自2011年部署以来
|
||||||
|
[16m21s] 最激烈
|
||||||
|
[16m22s] 且最具转折性的实战检验
|
||||||
|
[16m25s] 这款以往在冲突中
|
||||||
|
[16m27s] 以85%至90%拦截率
|
||||||
|
[16m30s] 享誉世界的明星武器
|
||||||
|
[16m32s] 在伊朗
|
||||||
|
[16m33s] “真实承诺-4”行动的饱和攻击下
|
||||||
|
[16m36s] 其卓越声誉荡然无存
|
||||||
|
[16m39s] 以色列国防部
|
||||||
|
[16m41s] 3月17日
|
||||||
|
[16m42s] 向国会递交的评估报告中指出
|
||||||
|
[16m45s] 面对伊朗连续发动的
|
||||||
|
[16m47s] 六十多波攻势
|
||||||
|
[16m48s] “铁穹”系统的实际拦截率
|
||||||
|
[16m50s] 从历史标榜的90%以上
|
||||||
|
[16m53s] 骤降至约50%
|
||||||
|
[16m55s] 而在集束弹头密集倾泻
|
||||||
|
[16m58s] 与无人机蜂群
|
||||||
|
[16m59s] 低空突袭的关键战斗阶段
|
||||||
|
[17m1s] 其拦截成功率
|
||||||
|
[17m3s] 更是下滑至30%以下
|
||||||
|
[17m5s] 刷新了服役以来的
|
||||||
|
[17m7s] 最低性能纪录
|
||||||
|
[17m12s] 我们注意到
|
||||||
|
[17m13s] 在此次军事行动的过程当中
|
||||||
|
[17m15s] “铁穹”系统表现平平
|
||||||
|
[17m16s] 我认为
|
||||||
|
[17m17s] 可能是有两方面的考虑
|
||||||
|
[17m19s] 就是它配套的这种传感器
|
||||||
|
[17m22s] 或者是预警体系
|
||||||
|
[17m23s] 可能是遭到了对方的火力打击
|
||||||
|
[17m25s] 有部分“铁穹”系统
|
||||||
|
[17m26s] 那么针对空中来袭目标
|
||||||
|
[17m28s] 它的反应速度不够快
|
||||||
|
[17m30s] 它的这样的一个情报
|
||||||
|
[17m33s] 和目标引导体系
|
||||||
|
[17m35s] 不够完善
|
||||||
|
[17m36s] 另外一个
|
||||||
|
[17m37s] 就是“铁穹”系统
|
||||||
|
[17m38s] 它所使用的是“塔米尔”拦截弹
|
||||||
|
[17m40s] 这种拦截弹
|
||||||
|
[17m41s] 由于它装备
|
||||||
|
[17m43s] 和使用的数量比较多
|
||||||
|
[17m44s] 所以
|
||||||
|
[17m45s] 它必须要进行成本的控制
|
||||||
|
[17m46s] 它的飞行速度
|
||||||
|
[17m49s] 其实并没有那么快
|
||||||
|
[17m50s] 有的时候
|
||||||
|
[17m51s] 针对高速目标进行打击的时候
|
||||||
|
[17m53s] 可能会出现速度跟不上的情况
|
||||||
|
[17m56s] 现在伊朗主要是使用弹道导弹
|
||||||
|
[17m59s] 针对以色列进行打击
|
||||||
|
[18m0s] 面对高空高速飞行的弹道导弹
|
||||||
|
[18m3s] 或者是
|
||||||
|
[18m4s] 配备有
|
||||||
|
[18m5s] 高超音速战斗部的弹道导弹
|
||||||
|
[18m7s] “铁穹”系统可能它的拦截范围
|
||||||
|
[18m9s] 拦截的高度也都不足
|
||||||
|
[18m11s] 伊朗也使用了大量的无人机
|
||||||
|
[18m14s] 但是这一次
|
||||||
|
[18m15s] 针对以色列进行后续的反击
|
||||||
|
[18m17s] 伊朗更加注重使用
|
||||||
|
[18m19s] 这种中程的弹道导弹
|
||||||
|
[18m21s] 或者是突防能力很强的弹道导弹
|
||||||
|
[18m23s] 面对这样的一种情况
|
||||||
|
[18m25s] 它就会出现反应速度不够快
|
||||||
|
[18m28s] 包括拦截的范围
|
||||||
|
[18m30s] 拦截的高度
|
||||||
|
[18m31s] 都存在不足的情况
|
||||||
|
[18m35s] 近程防空系统
|
||||||
|
[18m37s] 作为整个防空架构中
|
||||||
|
[18m38s] 关键的最后屏障
|
||||||
|
[18m40s] 肩负着坚守底线
|
||||||
|
[18m42s] 护卫要害的核心职责
|
||||||
|
[18m45s] 但它并非完美无缺
|
||||||
|
[18m47s] 仍存在明显的短板
|
||||||
|
[18m50s] 其防御范围
|
||||||
|
[18m51s] 通常较为有限
|
||||||
|
[18m53s] 探测与拦截能力
|
||||||
|
[18m54s] 都集中在较小区域
|
||||||
|
[18m57s] 大多只能执行小尺度
|
||||||
|
[18m58s] 重点目标的局部防护任务
|
||||||
|
[19m1s] 无法如同中远程防空系统那样
|
||||||
|
[19m4s] 实现广大空域的大范围
|
||||||
|
[19m6s] 远距离监控与狙击
|
||||||
|
[19m9s] 因此
|
||||||
|
[19m10s] 近程防空系统
|
||||||
|
[19m11s] 不能独自支撑一国 一城
|
||||||
|
[19m13s] 或整个战区的全面防空安全
|
||||||
|
[19m16s] 它更像是一件
|
||||||
|
[19m17s] 贴身的防弹衣
|
||||||
|
[19m19s] 而非是能覆盖全域的保护罩
|
||||||
|
[19m24s] 远程 中程与近程防空系统
|
||||||
|
[19m28s] 相互配合
|
||||||
|
[19m29s] 在现代战争中
|
||||||
|
[19m31s] 构筑了层次分明 分工明确
|
||||||
|
[19m33s] 紧密衔接的全空域
|
||||||
|
[19m35s] 立体防空网络
|
||||||
|
[19m38s] 三者各尽其责
|
||||||
|
[19m39s] 彼此支援 逐层拦截
|
||||||
|
[19m42s] 形成了一套由外至内
|
||||||
|
[19m44s] 由高空到低空
|
||||||
|
[19m45s] 由远及近的周密防御体系
|
||||||
|
[19m49s] 不过
|
||||||
|
[19m50s] 近年多场高强度
|
||||||
|
[19m51s] 军事冲突的实际表现
|
||||||
|
[19m53s] 这套看似牢不可破的防空体系
|
||||||
|
[19m56s] 正持续受到
|
||||||
|
[19m57s] 新兴战场模式的严峻挑战
|
||||||
|
[20m0s] 其传统作战思路和防御能力
|
||||||
|
[20m2s] 正在不断遭受冲击与重塑
|
||||||
|
[20m15s] 在美以联合对伊朗发动的
|
||||||
|
[20m17s] 大规模军事行动中
|
||||||
|
[20m19s] 可以清晰看到
|
||||||
|
[20m20s] 美军
|
||||||
|
[20m21s] 以色列军队
|
||||||
|
[20m22s] 以及伊朗的防空系统
|
||||||
|
[20m24s] 都遭遇了前所未有的考验
|
||||||
|
[20m26s] 在以往严密的多层防护网络
|
||||||
|
[20m29s] 在实战中屡次被突破
|
||||||
|
[20m31s] 撕裂
|
||||||
|
[20m32s] 甚至彻底崩溃
|
||||||
|
[20m34s] 美军采用了
|
||||||
|
[20m36s] 以“爱国者”和“萨德”反导系统
|
||||||
|
[20m38s] 中远程导弹防御体系
|
||||||
|
[20m41s] 以色列则调动了由“铁穹”
|
||||||
|
[20m43s] “大卫投石索”
|
||||||
|
[20m45s] 和“箭式”系统组成的
|
||||||
|
[20m46s] 全域防空反导系统
|
||||||
|
[20m49s] 然而
|
||||||
|
[20m50s] 针对高超声速武器穿透
|
||||||
|
[20m52s] 无人机群饱和攻击
|
||||||
|
[20m54s] 复合诱饵欺骗
|
||||||
|
[20m55s] 与强电磁干扰等策略
|
||||||
|
[20m57s] 拦截失败的情况
|
||||||
|
[20m59s] 依然频繁发生
|
||||||
|
[21m4s] 在此次行动的过程当中
|
||||||
|
[21m6s] 美以的防空反导系统
|
||||||
|
[21m7s] 频频被洞穿
|
||||||
|
[21m9s] 也就是说
|
||||||
|
[21m10s] 伊朗使用了
|
||||||
|
[21m11s] 一系列的突防手段
|
||||||
|
[21m13s] 最终打穿了
|
||||||
|
[21m14s] 美国和以色列的一些
|
||||||
|
[21m15s] 防空反导的保护伞
|
||||||
|
[21m18s] 那么针对相关的区域
|
||||||
|
[21m19s] 构成了更为猛烈的火力打击
|
||||||
|
[21m22s] 我认为
|
||||||
|
[21m23s] 就是存在一些问题
|
||||||
|
[21m25s] 比如说
|
||||||
|
[21m26s] 它系统之间
|
||||||
|
[21m27s] 没有进行有效的联合
|
||||||
|
[21m28s] 存在一些兼容的问题
|
||||||
|
[21m30s] 各自为战的状态下
|
||||||
|
[21m32s] 肯定会出现漏洞
|
||||||
|
[21m33s] 另外一个
|
||||||
|
[21m34s] 伊朗也是采取了一些灵活多变的
|
||||||
|
[21m37s] 这样的一些战术
|
||||||
|
[21m38s] 多种火力 多种模式联合运用
|
||||||
|
[21m41s] 也让美国和以色列的
|
||||||
|
[21m43s] 防空反导系统
|
||||||
|
[21m48s] 在现代军事冲突中
|
||||||
|
[21m50s] 高超声速武器的穿透
|
||||||
|
[21m51s] 与无人机蜂群的饱和攻击
|
||||||
|
[21m54s] 虽是关键威胁
|
||||||
|
[21m55s] 但更具深远颠覆性的
|
||||||
|
[21m57s] 是战场成本效益失衡
|
||||||
|
[21m59s] 对防空体系带来的
|
||||||
|
[22m1s] 系统性难题
|
||||||
|
[22m3s] 这已超越了
|
||||||
|
[22m4s] 单一装备的性能竞争
|
||||||
|
[22m6s] 演变为从经济原理
|
||||||
|
[22m8s] 持久作战能力
|
||||||
|
[22m10s] 到战略自信的全方位压制
|
||||||
|
[22m13s] 引发了拦截不起
|
||||||
|
[22m15s] 消耗不起
|
||||||
|
[22m16s] 补充不上的三重困局
|
||||||
|
[22m20s] 以伊朗主力攻击武器
|
||||||
|
[22m22s] “见证者-136” 自杀式无人机为例
|
||||||
|
[22m25s] 这款被戏称作
|
||||||
|
[22m27s] 飞行摩托车的装备
|
||||||
|
[22m29s] 彻底打破了传统军工的
|
||||||
|
[22m31s] 精密制造范式
|
||||||
|
[22m33s] 机身使用民用级玻璃纤维
|
||||||
|
[22m35s] 和泡沫塑料拼装
|
||||||
|
[22m37s] 动力系统
|
||||||
|
[22m38s] 直接借用普通摩托车的
|
||||||
|
[22m40s] 二冲程发动机
|
||||||
|
[22m41s] 导航依靠
|
||||||
|
[22m42s] 民用GPS模块与简易惯性制导
|
||||||
|
[22m46s] 甚至部分核心零件
|
||||||
|
[22m48s] 来自拆解的汽车和家电
|
||||||
|
[22m50s] 从而极大压低了制造成本
|
||||||
|
[22m53s] 凭借民用技术军用化
|
||||||
|
[22m55s] 复杂系统简易化的理念
|
||||||
|
[22m57s] 其批量生产单价
|
||||||
|
[22m59s] 稳定在2万至5万美元之间
|
||||||
|
[23m2s] 某些简化版本
|
||||||
|
[23m4s] 甚至降至1.5万美元
|
||||||
|
[23m6s] 仅相当于高端防空导弹成本的
|
||||||
|
[23m9s] 极小一部分
|
||||||
|
[23m11s] 美以用于对抗的防空武器
|
||||||
|
[23m13s] 却如同天价奢侈品
|
||||||
|
[23m16s] 以色列“铁穹”系统的拦截弹
|
||||||
|
[23m18s] 作为近程防空核心弹药
|
||||||
|
[23m20s] 每枚成本
|
||||||
|
[23m21s] 达5万到10万美元
|
||||||
|
[23m24s] 这意味着
|
||||||
|
[23m25s] 即便成功拦截
|
||||||
|
[23m26s] 防御方的经济损失
|
||||||
|
[23m28s] 也远超进攻方
|
||||||
|
[23m30s] 更甚者
|
||||||
|
[23m31s] 美国“爱国者-3”拦截弹
|
||||||
|
[23m33s] 作为中程防空主力
|
||||||
|
[23m35s] 单枚成本飙升至
|
||||||
|
[23m37s] 400万至500万美元
|
||||||
|
[23m39s] 堪比用超级跑车
|
||||||
|
[23m41s] 撞击普通代步车
|
||||||
|
[23m43s] 无论胜负如何
|
||||||
|
[23m45s] 防御方已在战略层面
|
||||||
|
[23m47s] 沦为输家
|
||||||
|
[23m51s] 那么在效费比方面
|
||||||
|
[23m53s] 如果说对方在进攻的过程当中
|
||||||
|
[23m56s] 采用了很多廉价的方式
|
||||||
|
[23m58s] 或者说很多省钱的
|
||||||
|
[23m59s] 这样的一些技术手段
|
||||||
|
[24m1s] 像“见证者-136”
|
||||||
|
[24m3s] 其实它就是飞行的小摩托
|
||||||
|
[24m5s] 那么它的成本控制得很低
|
||||||
|
[24m7s] 可能要用先进的防空反导系统
|
||||||
|
[24m9s] 对它进行拦截
|
||||||
|
[24m11s] 而伊朗的一些地区盟友
|
||||||
|
[24m12s] 包括黎巴嫩真主党
|
||||||
|
[24m15s] 会使用大量的“卡桑”火箭弹
|
||||||
|
[24m16s] 也就是说
|
||||||
|
[24m17s] 更低成本的作坊工厂当中
|
||||||
|
[24m19s] 生产出来的这种火箭弹
|
||||||
|
[24m21s] 针对以色列进行打击
|
||||||
|
[24m22s] 那么色列方面使用的是什么
|
||||||
|
[24m24s] 是这种“塔米尔”拦截弹
|
||||||
|
[24m25s] 也就是“铁穹”系统的拦截弹
|
||||||
|
[24m28s] 在这样的 一种
|
||||||
|
[24m29s] 相互的消耗战的过程当中
|
||||||
|
[24m31s] 那么位列或者是美国
|
||||||
|
[24m33s] 他所面临的这种
|
||||||
|
[24m35s] 昂贵弹药的快速消耗
|
||||||
|
[24m37s] 和短缺的情况
|
||||||
|
[24m39s] 也会变得越来越多
|
||||||
|
[24m40s] 也会变得越来越明显
|
||||||
|
[24m43s] 由于战场上
|
||||||
|
[24m44s] 攻击和防御的效费比例
|
||||||
|
[24m46s] 严重失衡
|
||||||
|
[24m47s] 防空弹药库存告急
|
||||||
|
[24m49s] 形势十分紧迫
|
||||||
|
[24m51s] 3月18日
|
||||||
|
[24m52s] 以色列国防部火速向美国求援
|
||||||
|
[24m55s] 美军立刻出动C-17运输机
|
||||||
|
[24m58s] 紧急空运了近千枚拦截导弹
|
||||||
|
[25m1s] 为以色列的库存注入强心针
|
||||||
|
[25m4s] 与此同时
|
||||||
|
[25m5s] 美军从韩国
|
||||||
|
[25m7s] 亚太到欧洲多个据点
|
||||||
|
[25m9s] 迅速调集防空系统
|
||||||
|
[25m11s] 全力缓解战场上
|
||||||
|
[25m13s] 防空装备和弹药
|
||||||
|
[25m14s] 捉襟见肘的困境
|
||||||
|
[25m19s] 现代防空系统
|
||||||
|
[25m20s] 打造了一个从远程中段反导
|
||||||
|
[25m23s] 近程区域防空
|
||||||
|
[25m24s] 到近程末段拦截的完整链条
|
||||||
|
[25m28s] 构建了远近交错
|
||||||
|
[25m30s] 高低兼顾的立体防御天网
|
||||||
|
[25m33s] 然而
|
||||||
|
[25m34s] 高超声速武器如闪电般突破
|
||||||
|
[25m37s] 无人机群的压制
|
||||||
|
[25m38s] 以及饱和式攻击的浪潮不断袭来
|
||||||
|
[25m41s] 让传统防空体系
|
||||||
|
[25m42s] 面临着严峻的考验
|
||||||
|
[25m46s] 攻防成本的天平
|
||||||
|
[25m48s] 正在严重倾斜
|
||||||
|
[25m49s] 威胁形势日新月异
|
||||||
|
[25m52s] 如何在提升拦截效果的同时
|
||||||
|
[25m54s] 勒紧成本的缰绳
|
||||||
|
[25m57s] 变得至关重要
|
||||||
|
[25m59s] 让防空网看得远
|
||||||
|
[26m1s] 拦得准
|
||||||
|
[26m2s] 扛得住
|
||||||
|
[26m3s] 耗得起
|
||||||
|
[26m4s] 成为了左右未来防空安全
|
||||||
|
[26m6s] 和战争胜负的
|
||||||
|
[26m8s] 关键棋局
|
||||||
|
[26m11s] 好了观众朋友们
|
||||||
|
[26m12s] 感谢您持续关注
|
||||||
|
[26m13s] 国防军事频道《军事科技》
|
||||||
|
[26m15s] 我们下周同一时间
|
||||||
|
[26m17s] 再见
|
||||||
Binary file not shown.
+210
@@ -0,0 +1,210 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 1,
|
||||||
|
"para_end": 1,
|
||||||
|
"role_label": "【导视1】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 2,
|
||||||
|
"para_end": 2,
|
||||||
|
"role_label": "【演播室主持人1】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "break",
|
||||||
|
"para_start": 3,
|
||||||
|
"para_end": 3,
|
||||||
|
"role_label": "从鹦鹉螺到“潜艇压载水舱系统”",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 4,
|
||||||
|
"para_end": 4,
|
||||||
|
"role_label": "【二维动画解说1】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 5,
|
||||||
|
"para_end": 5,
|
||||||
|
"role_label": "【三维动画解说1】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 6,
|
||||||
|
"para_end": 6,
|
||||||
|
"role_label": "【专家1】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 6
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 7,
|
||||||
|
"para_end": 7,
|
||||||
|
"role_label": "【解说1】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 7
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 8,
|
||||||
|
"para_end": 8,
|
||||||
|
"role_label": "【三维动画解说2】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 8
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "break",
|
||||||
|
"para_start": 9,
|
||||||
|
"para_end": 9,
|
||||||
|
"role_label": "鲨鱼皮肤与潜艇的外形设计",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 9
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 10,
|
||||||
|
"para_end": 10,
|
||||||
|
"role_label": "【主持人1】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 11,
|
||||||
|
"para_end": 11,
|
||||||
|
"role_label": "【专家2】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 11
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 12,
|
||||||
|
"para_end": 12,
|
||||||
|
"role_label": "【解说2】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 12
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 13,
|
||||||
|
"para_end": 13,
|
||||||
|
"role_label": "【专家3】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 13
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 14,
|
||||||
|
"para_end": 14,
|
||||||
|
"role_label": "【解说3】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 14
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "break",
|
||||||
|
"para_start": 15,
|
||||||
|
"para_end": 15,
|
||||||
|
"role_label": "海豚声呐与潜艇综合声呐系统",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 15
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 16,
|
||||||
|
"para_end": 16,
|
||||||
|
"role_label": "【解说4】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 16
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 17,
|
||||||
|
"para_end": 17,
|
||||||
|
"role_label": "【解说5】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 17
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 18,
|
||||||
|
"para_end": 18,
|
||||||
|
"role_label": "【专家4】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 18
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 19,
|
||||||
|
"para_end": 19,
|
||||||
|
"role_label": "【三维动画解说3】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 19
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 20,
|
||||||
|
"para_end": 20,
|
||||||
|
"role_label": "【解说6】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "break",
|
||||||
|
"para_start": 21,
|
||||||
|
"para_end": 21,
|
||||||
|
"role_label": "乌贼墨汁与声学诱饵",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 21
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 22,
|
||||||
|
"para_end": 22,
|
||||||
|
"role_label": "【主持人2】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 22
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 23,
|
||||||
|
"para_end": 23,
|
||||||
|
"role_label": "【解说7】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 23
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 24,
|
||||||
|
"para_end": 24,
|
||||||
|
"role_label": "【专家5】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 24
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 25,
|
||||||
|
"para_end": 25,
|
||||||
|
"role_label": "【解说8】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 25
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 26,
|
||||||
|
"para_end": 26,
|
||||||
|
"role_label": "【主持人3】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 26
|
||||||
|
}
|
||||||
|
]
|
||||||
+36
@@ -0,0 +1,36 @@
|
|||||||
|
# ep002_20260127_qianting_fangsheng 骨架预览表
|
||||||
|
# 原始骨架: 26 段 → 合并后: 26 段
|
||||||
|
|
||||||
|
======================================================================
|
||||||
|
ep002_20260127_qianting_fangsheng 骨架预览表
|
||||||
|
======================================================================
|
||||||
|
seq | type | role_label | 正文前20字
|
||||||
|
-----+---------+-------------------------------------+---------------------
|
||||||
|
1 | normal | 【导视1】 | 在浩瀚海洋深处,数亿年的进化,塑造了无数
|
||||||
|
2 | normal | 【演播室主持人1】 | 观众朋友们大家好!欢迎收看本期的《军事科
|
||||||
|
3 | break | 从鹦鹉螺到“潜艇压载水舱系统” | 从鹦鹉螺到“潜艇压载水舱系统”
|
||||||
|
4 | normal | 【二维动画解说1】 | 1776年9月7日,历史上第一次潜艇攻击
|
||||||
|
5 | normal | 【三维动画解说1】 | “海龟号”潜艇,顾名思义它的外形很像海龟
|
||||||
|
6 | normal | 【专家1】 | 潜艇通过向压载水舱注水,排水来改变自身重
|
||||||
|
7 | normal | 【解说1】 | 让我们把目光投向鹦鹉螺的身上。在亿万年的
|
||||||
|
8 | normal | 【三维动画解说2】 | 人类潜艇的压载水舱系统,正是对这一自然智
|
||||||
|
9 | break | 鲨鱼皮肤与潜艇的外形设计 | 鲨鱼皮肤与潜艇的外形设计
|
||||||
|
10 | normal | 【主持人1】 | 在广袤的海洋中,生存是一场关乎“看见”与
|
||||||
|
11 | normal | 【专家2】 | 在二战时期,一些潜艇的指挥塔和上层建筑就
|
||||||
|
12 | normal | 【解说2】 | 然而,在深海中,仅仅“看不见”还远远不够
|
||||||
|
13 | normal | 【专家3】 | 从早期潜艇的船型艇体,到现代攻击核潜艇几
|
||||||
|
14 | normal | 【解说3】 | 海豚的皮肤,能够分泌一种特殊黏液,使水流
|
||||||
|
15 | break | 海豚声呐与潜艇综合声呐系统 | 海豚声呐与潜艇综合声呐系统
|
||||||
|
16 | normal | 【解说4】 | 海豚在浑浊的海水中能准确找到小鱼,还能分
|
||||||
|
17 | normal | 【解说5】 | 二战爆发后,德国U型潜艇再次成为海战中的
|
||||||
|
18 | normal | 【专家4】 | 声呐是一种利用声波在水中的传播和反射探测
|
||||||
|
19 | normal | 【三维动画解说3】 | 这是一艘弗吉尼亚级攻击核潜艇。潜艇的艇艏
|
||||||
|
20 | normal | 【解说6】 | 如今,科学家仍在向海豚学习:新的声呐系统
|
||||||
|
21 | break | 乌贼墨汁与声学诱饵 | 乌贼墨汁与声学诱饵
|
||||||
|
22 | normal | 【主持人2】 | 当生存受到直接威胁时,顶尖的猎手与最先进
|
||||||
|
23 | normal | 【解说7】 | 潜艇感知到来袭的声自导鱼雷或敌方主动声呐
|
||||||
|
24 | normal | 【专家5】 | 1942 年,德军 U 型潜艇投放了一种
|
||||||
|
25 | normal | 【解说8】 | 这套系统在实战与对抗演练中屡建奇功。其核
|
||||||
|
26 | normal | 【主持人3】 | 当深海的幽灵收起獠牙,当猎杀者的声呐归于
|
||||||
|
======================================================================
|
||||||
|
[WARN] 请人工核验: role_label是否含真人姓名? ignore是否漏/多? type是否正确?
|
||||||
Binary file not shown.
+298
@@ -0,0 +1,298 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 1,
|
||||||
|
"para_end": 7,
|
||||||
|
"role_label": "【导视1】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 8,
|
||||||
|
"para_end": 11,
|
||||||
|
"role_label": "【主持人1】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 8
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "ignore",
|
||||||
|
"para_start": 12,
|
||||||
|
"para_end": 12,
|
||||||
|
"role_label": "(出枪柜)",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 12
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 13,
|
||||||
|
"para_end": 13,
|
||||||
|
"role_label": "【主持人1】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 8
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 14,
|
||||||
|
"para_end": 19,
|
||||||
|
"role_label": "【解说1】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 14
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 20,
|
||||||
|
"para_end": 22,
|
||||||
|
"role_label": "【主持人2】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "ignore",
|
||||||
|
"para_start": 23,
|
||||||
|
"para_end": 23,
|
||||||
|
"role_label": "(换枪)",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 23
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 24,
|
||||||
|
"para_end": 25,
|
||||||
|
"role_label": "【主持人2】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 26,
|
||||||
|
"para_end": 29,
|
||||||
|
"role_label": "【解说2】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 26
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 30,
|
||||||
|
"para_end": 31,
|
||||||
|
"role_label": "【三维动画1】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 32,
|
||||||
|
"para_end": 34,
|
||||||
|
"role_label": "【解说3】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 32
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 35,
|
||||||
|
"para_end": 37,
|
||||||
|
"role_label": "【主持人3】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 35
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "ignore",
|
||||||
|
"para_start": 38,
|
||||||
|
"para_end": 38,
|
||||||
|
"role_label": "(出枪柜)",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 38
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 39,
|
||||||
|
"para_end": 40,
|
||||||
|
"role_label": "【主持人3】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 35
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 41,
|
||||||
|
"para_end": 47,
|
||||||
|
"role_label": "【解说4】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 41
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 48,
|
||||||
|
"para_end": 50,
|
||||||
|
"role_label": "【主持人4】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 48
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "ignore",
|
||||||
|
"para_start": 51,
|
||||||
|
"para_end": 51,
|
||||||
|
"role_label": "(换枪)",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 51
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 52,
|
||||||
|
"para_end": 53,
|
||||||
|
"role_label": "【主持人4】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 48
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 54,
|
||||||
|
"para_end": 59,
|
||||||
|
"role_label": "【解说5】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 54
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 60,
|
||||||
|
"para_end": 62,
|
||||||
|
"role_label": "【主持人5】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "ignore",
|
||||||
|
"para_start": 63,
|
||||||
|
"para_end": 63,
|
||||||
|
"role_label": "(出枪柜)",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 63
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 64,
|
||||||
|
"para_end": 65,
|
||||||
|
"role_label": "【主持人5】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 66,
|
||||||
|
"para_end": 70,
|
||||||
|
"role_label": "【解说6】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 66
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 71,
|
||||||
|
"para_end": 73,
|
||||||
|
"role_label": "【主持人6】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 71
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "ignore",
|
||||||
|
"para_start": 74,
|
||||||
|
"para_end": 74,
|
||||||
|
"role_label": "(换枪)",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 74
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 75,
|
||||||
|
"para_end": 76,
|
||||||
|
"role_label": "【主持人6】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 71
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 77,
|
||||||
|
"para_end": 86,
|
||||||
|
"role_label": "【解说7】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 77
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 87,
|
||||||
|
"para_end": 89,
|
||||||
|
"role_label": "【主持人7】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 87
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "ignore",
|
||||||
|
"para_start": 90,
|
||||||
|
"para_end": 90,
|
||||||
|
"role_label": "(出枪柜)",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 90
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 91,
|
||||||
|
"para_end": 92,
|
||||||
|
"role_label": "【主持人7】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 87
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 93,
|
||||||
|
"para_end": 99,
|
||||||
|
"role_label": "【解说8】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 93
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 100,
|
||||||
|
"para_end": 101,
|
||||||
|
"role_label": "【主持人8】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 100
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "ignore",
|
||||||
|
"para_start": 102,
|
||||||
|
"para_end": 102,
|
||||||
|
"role_label": "【摇】(换枪)",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 102
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 103,
|
||||||
|
"para_end": 105,
|
||||||
|
"role_label": "【主持人8】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 100
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "ignore",
|
||||||
|
"para_start": 106,
|
||||||
|
"para_end": 106,
|
||||||
|
"role_label": "(拉栓子弹转场,三镜:【摇全】手摸枪栓、【固中】拉推、【轨近】举枪瞄准)",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 106
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 107,
|
||||||
|
"para_end": 116,
|
||||||
|
"role_label": "【解说9】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 107
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 117,
|
||||||
|
"para_end": 120,
|
||||||
|
"role_label": "【主持人9】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 117
|
||||||
|
}
|
||||||
|
]
|
||||||
+30
@@ -0,0 +1,30 @@
|
|||||||
|
# ep003_20260331_qiangxie_chicun 骨架预览表 (合并后: 37 → 20 段)
|
||||||
|
# 原始骨架: 37 段 → 合并后: 20 段
|
||||||
|
|
||||||
|
======================================================================
|
||||||
|
ep003_20260331_qiangxie_chicun (合并后: 37 → 20 段) 骨架预览表
|
||||||
|
======================================================================
|
||||||
|
seq | type | role_label | 正文前20字
|
||||||
|
-----+---------+-------------------------------------+---------------------
|
||||||
|
1 | normal | 【导视1】 | 藏于方寸的敌后利器,锋芒毕露的火力先锋;
|
||||||
|
2 | normal | 【主持人1】 | 各位观众朋友们,大家好,欢迎收看《军事科
|
||||||
|
3 | normal | 【解说1】 | 这是一把用来换取更好枪支的武器,一个构思
|
||||||
|
4 | normal | 【主持人2】 | 【固】如今FP-45成了收藏家眼中的珍品
|
||||||
|
5 | normal | 【解说2】 | 沙漠之鹰是当今世界上最知名的大口径手枪之
|
||||||
|
6 | normal | 【三维动画1】 | 大口径弹药燃烧时会产生巨大的高温高压,必
|
||||||
|
7 | normal | 【解说3】 | 如今,沙漠之鹰虽未大规模列装军队,却因独
|
||||||
|
8 | normal | 【主持人3】 | 【固】一款能藏进火柴盒,一款堪称手枪巨无
|
||||||
|
9 | normal | 【解说4】 | PP-2000的设计,源于俄罗斯在城市反
|
||||||
|
10 | normal | 【主持人4】 | 【固】PP-2000 用 340 毫米的
|
||||||
|
11 | normal | 【解说5】 | MP40 是二战期间产量较大、影响力较广
|
||||||
|
12 | normal | 【主持人5】 | 【固】从340毫米的紧凑灵活,到833毫
|
||||||
|
13 | normal | 【解说6】 | AUG的出现,掀起了步枪设计的一场结构革
|
||||||
|
14 | normal | 【主持人6】 | 【固】AUG用无托枪身的设计真正做到了短
|
||||||
|
15 | normal | 【解说7】 | 如果你曾接触过枪战类游戏,那么你一定知道
|
||||||
|
16 | normal | 【主持人7】 | 【固】两款步枪可以说是短有短的灵活创新,
|
||||||
|
17 | normal | 【解说8】 | VSS的设计,完美诠释了苏联特种部队“敌
|
||||||
|
18 | normal | 【主持人8】 | 【固】相比于短小的VSS,接下来这款狙击
|
||||||
|
19 | normal | 【解说9】 | 20世纪90年代,南非面临着周边地区的轻
|
||||||
|
20 | normal | 【主持人9】 | (固)今天我们展示的每一款枪械,它们没有
|
||||||
|
======================================================================
|
||||||
|
[WARN] 请人工核验: role_label是否含真人姓名? ignore是否漏/多? type是否正确?
|
||||||
Binary file not shown.
+466
@@ -0,0 +1,466 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 1,
|
||||||
|
"para_end": 3,
|
||||||
|
"role_label": "【导视1】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 4,
|
||||||
|
"para_end": 8,
|
||||||
|
"role_label": "【主持人1】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 9,
|
||||||
|
"para_end": 12,
|
||||||
|
"role_label": "【解说1】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 9
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 13,
|
||||||
|
"para_end": 14,
|
||||||
|
"role_label": "【主持人2】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 13
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 15,
|
||||||
|
"para_end": 16,
|
||||||
|
"role_label": "【解说2】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 15
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 17,
|
||||||
|
"para_end": 17,
|
||||||
|
"role_label": "【小剧场1-主持人1】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 17
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 18,
|
||||||
|
"para_end": 18,
|
||||||
|
"role_label": "【小剧场1-卡1】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 18
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 19,
|
||||||
|
"para_end": 19,
|
||||||
|
"role_label": "【小剧场1-主持人2】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 19
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 20,
|
||||||
|
"para_end": 20,
|
||||||
|
"role_label": "【小剧场1-卡2】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 21,
|
||||||
|
"para_end": 24,
|
||||||
|
"role_label": "【解说3】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 21
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 25,
|
||||||
|
"para_end": 25,
|
||||||
|
"role_label": "【小剧场1-主持人3】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 25
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 26,
|
||||||
|
"para_end": 27,
|
||||||
|
"role_label": "【小剧场1-卡3】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 26
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 28,
|
||||||
|
"para_end": 28,
|
||||||
|
"role_label": "【小剧场1-主持人4】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 28
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 29,
|
||||||
|
"para_end": 29,
|
||||||
|
"role_label": "【小剧场1-卡4】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 29
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 30,
|
||||||
|
"para_end": 32,
|
||||||
|
"role_label": "【解说4】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 33,
|
||||||
|
"para_end": 33,
|
||||||
|
"role_label": "【主持人3】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 33
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 34,
|
||||||
|
"para_end": 35,
|
||||||
|
"role_label": "【解说5】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 34
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 36,
|
||||||
|
"para_end": 36,
|
||||||
|
"role_label": "【小剧场2-主持人1】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 36
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 37,
|
||||||
|
"para_end": 37,
|
||||||
|
"role_label": "【小剧场2-斯1】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 37
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 38,
|
||||||
|
"para_end": 38,
|
||||||
|
"role_label": "【小剧场2-主持人2】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 38
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 39,
|
||||||
|
"para_end": 39,
|
||||||
|
"role_label": "【小剧场2-斯2】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 39
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 40,
|
||||||
|
"para_end": 42,
|
||||||
|
"role_label": "【解说6】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 43,
|
||||||
|
"para_end": 43,
|
||||||
|
"role_label": "【小剧场2-斯3】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 43
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 44,
|
||||||
|
"para_end": 46,
|
||||||
|
"role_label": "【解说7】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 44
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 47,
|
||||||
|
"para_end": 47,
|
||||||
|
"role_label": "【小剧场2-斯4】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 47
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 48,
|
||||||
|
"para_end": 48,
|
||||||
|
"role_label": "【小剧场2-主持人3】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 48
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 49,
|
||||||
|
"para_end": 49,
|
||||||
|
"role_label": "【小剧场2-斯5】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 49
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 50,
|
||||||
|
"para_end": 51,
|
||||||
|
"role_label": "【解说8】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 50
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 52,
|
||||||
|
"para_end": 54,
|
||||||
|
"role_label": "【主持人4】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 52
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 55,
|
||||||
|
"para_end": 55,
|
||||||
|
"role_label": "【小剧场3-主持人1】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 55
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 56,
|
||||||
|
"para_end": 56,
|
||||||
|
"role_label": "【小剧场3-卡1】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 56
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 57,
|
||||||
|
"para_end": 57,
|
||||||
|
"role_label": "【小剧场3-主持人2】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 57
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 58,
|
||||||
|
"para_end": 58,
|
||||||
|
"role_label": "【小剧场3-卡2】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 58
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 59,
|
||||||
|
"para_end": 60,
|
||||||
|
"role_label": "【解说9】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 59
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 61,
|
||||||
|
"para_end": 61,
|
||||||
|
"role_label": "【小剧场3-卡3】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 61
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 62,
|
||||||
|
"para_end": 62,
|
||||||
|
"role_label": "【小剧场3-主持人3】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 62
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 63,
|
||||||
|
"para_end": 63,
|
||||||
|
"role_label": "【小剧场3-斯4】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 63
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 64,
|
||||||
|
"para_end": 64,
|
||||||
|
"role_label": "【小剧场3-主持人4】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 64
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 65,
|
||||||
|
"para_end": 65,
|
||||||
|
"role_label": "【小剧场3-斯5】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 65
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 66,
|
||||||
|
"para_end": 67,
|
||||||
|
"role_label": "【解说10】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 66
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 68,
|
||||||
|
"para_end": 68,
|
||||||
|
"role_label": "【小剧场3-斯6】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 68
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 69,
|
||||||
|
"para_end": 72,
|
||||||
|
"role_label": "【解说11】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 69
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 73,
|
||||||
|
"para_end": 74,
|
||||||
|
"role_label": "【小剧场3-主持人5】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 73
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 75,
|
||||||
|
"para_end": 75,
|
||||||
|
"role_label": "【小剧场3-卡8】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 75
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 76,
|
||||||
|
"para_end": 76,
|
||||||
|
"role_label": "【小剧场3-斯9】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 76
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 77,
|
||||||
|
"para_end": 77,
|
||||||
|
"role_label": "【小剧场3-主持人6】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 77
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 78,
|
||||||
|
"para_end": 78,
|
||||||
|
"role_label": "【小剧场3-斯通纳10】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 78
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 79,
|
||||||
|
"para_end": 80,
|
||||||
|
"role_label": "【解说12】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 79
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 81,
|
||||||
|
"para_end": 81,
|
||||||
|
"role_label": "【小剧场4-主持人1】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 81
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 82,
|
||||||
|
"para_end": 82,
|
||||||
|
"role_label": "【小剧场4-卡1】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 82
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 83,
|
||||||
|
"para_end": 83,
|
||||||
|
"role_label": "【小剧场4-主持人2】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 83
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 84,
|
||||||
|
"para_end": 84,
|
||||||
|
"role_label": "【小剧场4-斯2】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 84
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 85,
|
||||||
|
"para_end": 85,
|
||||||
|
"role_label": "【小剧场4-主持人3】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 85
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 86,
|
||||||
|
"para_end": 90,
|
||||||
|
"role_label": "【解说13】",
|
||||||
|
"header_inline": false,
|
||||||
|
"header_para_idx": 86
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 91,
|
||||||
|
"para_end": 91,
|
||||||
|
"role_label": "【小剧场4-卡3】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 91
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 92,
|
||||||
|
"para_end": 92,
|
||||||
|
"role_label": "【小剧场4-斯5】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 92
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 93,
|
||||||
|
"para_end": 93,
|
||||||
|
"role_label": "【小剧场4-主持人6】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 93
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "normal",
|
||||||
|
"para_start": 94,
|
||||||
|
"para_end": 94,
|
||||||
|
"role_label": "【主持人5】",
|
||||||
|
"header_inline": true,
|
||||||
|
"header_para_idx": 94
|
||||||
|
}
|
||||||
|
]
|
||||||
+68
@@ -0,0 +1,68 @@
|
|||||||
|
# ep004_20260526_qiangwang_duijue 骨架预览表
|
||||||
|
# 原始骨架: 58 段 → 合并后: 58 段
|
||||||
|
|
||||||
|
======================================================================
|
||||||
|
ep004_20260526_qiangwang_duijue 骨架预览表
|
||||||
|
======================================================================
|
||||||
|
seq | type | role_label | 正文前20字
|
||||||
|
-----+---------+-------------------------------------+---------------------
|
||||||
|
1 | normal | 【导视1】 | 他们的一生是创造的一生,他们的灵感或许来
|
||||||
|
2 | normal | 【主持人1】 | 各位观众,大家好!欢迎收看《军事科技》,
|
||||||
|
3 | normal | 【解说1】 | 2013年12月23日,枪械设计大师、A
|
||||||
|
4 | normal | 【主持人2】 | 卡拉什尼科夫于1919年11月10日出生
|
||||||
|
5 | normal | 【解说2】 | 少年时期的卡拉什尼科夫,最大的梦想并非设
|
||||||
|
6 | normal | 【小剧场1-主持人1】 | 卡拉什尼科夫先生,您年少时一心想要研发农
|
||||||
|
7 | normal | 【小剧场1-卡1】 | 在不远处就是我的家,你也能看到,除了几间
|
||||||
|
8 | normal | 【小剧场1-主持人2】 | 辍学之后,您没有放弃对机械的钻研,对吗?
|
||||||
|
9 | normal | 【小剧场1-卡2】 | 没错。我打心底里喜欢机械,便自己自学机械
|
||||||
|
10 | normal | 【解说3】 | 1938年,19岁的卡拉什尼科夫应征入伍
|
||||||
|
11 | normal | 【小剧场1-主持人3】 | 战场上的差距往往最直观,您亲身经历过东线
|
||||||
|
12 | normal | 【小剧场1-卡3】 | 当时的情况糟透了,我们根本没有还手之力,
|
||||||
|
13 | normal | 【小剧场1-主持人4】 | 也就是在那个时候,您下定决心,放弃农机梦
|
||||||
|
14 | normal | 【小剧场1-卡4】 | 没错。这个念头一旦萌生,就再也无法消散。
|
||||||
|
15 | normal | 【解说4】 | 经过刻苦钻研,卡拉什尼科夫先后设计出冲锋
|
||||||
|
16 | normal | 【主持人3】 | 在卡拉什尼科夫三岁那年,大洋彼岸的美国,
|
||||||
|
17 | normal | 【解说5】 | 1922年11月,尤金·斯通纳出生于美国
|
||||||
|
18 | normal | 【小剧场2-主持人1】 | 斯通纳先生,您刚进入航空企业时,从事的是
|
||||||
|
19 | normal | 【小剧场2-斯1】 | 刚入职的时候,我做的都是基础工作,主要从
|
||||||
|
20 | normal | 【小剧场2-主持人2】 | 想必过程十分艰辛吧?
|
||||||
|
21 | normal | 【小剧场2-斯2】 | 确实不易。我利用业余时间上夜校,去航空学
|
||||||
|
22 | normal | 【解说6】 | 1941年12月7日,日本海军舰队偷袭珍
|
||||||
|
23 | normal | 【小剧场2-斯3】 | 战争结束后,我荣誉退伍,先后就职于多家知
|
||||||
|
24 | normal | 【解说7】 | 但二战结束后,战争形态发生了彻底变革:堑
|
||||||
|
25 | normal | 【小剧场2-斯4】 | 我亲眼目睹了美军士兵的作战困境。当时列装
|
||||||
|
26 | normal | 【小剧场2-主持人3】 | 所以航空技术成为了您设计M-16的独家优
|
||||||
|
27 | normal | 【小剧场2-斯5】 | 是的。航空制造追求轻量化、高精度、高稳定
|
||||||
|
28 | normal | 【解说8】 | M-16步枪因枪身通体呈黑色,被人们戏称
|
||||||
|
29 | normal | 【主持人4】 | 一位,是战火幸存者的自救式设计;一位,是
|
||||||
|
30 | normal | 【小剧场3-主持人1】 | 卡拉什尼科夫先生,对于AK-47外界有人
|
||||||
|
31 | normal | 【小剧场3-卡1】 | 我从来不认为这是粗糙,却是纯粹的皮实,是
|
||||||
|
32 | normal | 【小剧场3-主持人2】 | 所以您的设计,都是围绕实战可靠性展开?
|
||||||
|
33 | normal | 【小剧场3-卡2】 | 没错。一把好枪,应该是士兵身体的一部分,
|
||||||
|
34 | normal | 【解说9】 | AK-47枪长870毫米,枪管长415毫
|
||||||
|
35 | normal | 【小剧场3-卡3】 | 气式的工作原理,其实一点都不复杂。当击锤
|
||||||
|
36 | normal | 【小剧场3-主持人3】 | 嗯,那么,斯通纳先生,相较于卡拉什尼科夫
|
||||||
|
37 | normal | 【小剧场3-斯4】 | 在我看来,单纯的皮实耐用远远不足以适配现
|
||||||
|
38 | normal | 【小剧场3-主持人4】 | 模块化在当时属于十分新颖的设计,您为什么
|
||||||
|
39 | normal | 【小剧场3-斯5】 | 现代战争场景愈发复杂,作战任务灵活多变,
|
||||||
|
40 | normal | 【解说10】 | M-16 轻便且质感高级,加工工艺精密,
|
||||||
|
41 | normal | 【小剧场3-斯6】 | 我设计的导气方式与卡拉什尼科夫先生的完全
|
||||||
|
42 | normal | 【解说11】 | 此外,M-16还十分注重枪械的人机工学设
|
||||||
|
43 | normal | 【小剧场3-主持人5】 | 1990年两位首次碰面,还互相试射了对方
|
||||||
|
44 | normal | 【小剧场3-卡8】 | 斯通纳先生的枪精度很高,子弹初速快,设计
|
||||||
|
45 | normal | 【小剧场3-斯9】 | 我十分认可卡拉什尼科夫先生的设计。AK-
|
||||||
|
46 | normal | 【小剧场3-主持人6】 | 如果互换使用场景,您会如何选择?
|
||||||
|
47 | normal | 【小剧场3-斯通纳10】 | 如果我是没有后勤保障、身处蛮荒丛林的普通
|
||||||
|
48 | normal | 【解说12】 | 两款经典步枪问世后,在越南战争的战场上迎
|
||||||
|
49 | normal | 【小剧场4-主持人1】 | 两款枪没有优劣之分,只有适配之别。AK-
|
||||||
|
50 | normal | 【小剧场4-卡1】 | 在我看来,可靠性永远排在第一位。一把好武
|
||||||
|
51 | normal | 【小剧场4-主持人2】 | 斯通纳先生,您是怎么认为?
|
||||||
|
52 | normal | 【小剧场4-斯2】 | 我的评判标准更加贴合现代战术。优秀的单兵
|
||||||
|
53 | normal | 【小剧场4-主持人3】 | 二位的设计理念虽不同,却都坚守着自己的初
|
||||||
|
54 | normal | 【解说13】 | 2025年11月10日,联合国安理会就小
|
||||||
|
55 | normal | 【小剧场4-卡3】 | 坦白说,我为它能保护我方士兵、守护和平而
|
||||||
|
56 | normal | 【小剧场4-斯5】 | 技术本身不会制造杀戮,决定善恶的,永远是
|
||||||
|
57 | normal | 【小剧场4-主持人6】 | 你们两人都绝非战争狂热者,只是时代洪流中
|
||||||
|
58 | normal | 【主持人5】 | 本期《军事科技》就到这里,感谢收看,我们
|
||||||
|
======================================================================
|
||||||
|
[WARN] 请人工核验: role_label是否含真人姓名? ignore是否漏/多? type是否正确?
|
||||||
@@ -22,6 +22,9 @@ from .asr_adapter import get_hot_words, transcribe, write_asr_result
|
|||||||
# P3 C3 B稿⊕ASR 交叉复审融合
|
# P3 C3 B稿⊕ASR 交叉复审融合
|
||||||
from .fusion_review import run_fusion
|
from .fusion_review import run_fusion
|
||||||
|
|
||||||
|
# P3 C4 分段对齐 → 融合A稿
|
||||||
|
from .fusion_align import run_compose, run_skeleton
|
||||||
|
|
||||||
|
|
||||||
@click.group()
|
@click.group()
|
||||||
@click.version_option(version="0.1.0")
|
@click.version_option(version="0.1.0")
|
||||||
@@ -285,6 +288,66 @@ def fuse(
|
|||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
|
|
||||||
|
@main.command("skeleton")
|
||||||
|
@click.option("--episode-id", required=True, help="节目 ID,如 ep002_20260127_qianting_fangsheng")
|
||||||
|
@click.option("--a-script", required=True, type=click.Path(exists=True), help="A 稿 docx 路径")
|
||||||
|
@click.option(
|
||||||
|
"--output-dir",
|
||||||
|
default=None,
|
||||||
|
type=click.Path(),
|
||||||
|
help="输出目录(默认 programs/<episode-id>/)",
|
||||||
|
)
|
||||||
|
@click.option(
|
||||||
|
"--max-tokens",
|
||||||
|
default=16000,
|
||||||
|
type=int,
|
||||||
|
help="LLM max_tokens(默认 16000,长稿可调大)",
|
||||||
|
)
|
||||||
|
def skeleton(
|
||||||
|
episode_id: str,
|
||||||
|
a_script: str,
|
||||||
|
output_dir: str,
|
||||||
|
max_tokens: int,
|
||||||
|
):
|
||||||
|
"""
|
||||||
|
P3 新增: LLM 分段骨架抽取(只产骨架,不跑对齐)
|
||||||
|
|
||||||
|
流程:
|
||||||
|
1. extract_a_paragraphs: 纯 docx 段落样式提取
|
||||||
|
2. extract_skeleton_llm: LLM 判断分段结构 → JSON 骨架
|
||||||
|
3. validate_skeleton_coverage: 全覆盖硬校验
|
||||||
|
4. 落盘 <episode_id>_a_skeleton.json + 打印人类可读预览表
|
||||||
|
|
||||||
|
跑完请人工核验骨架预览表(role_label 是否含真人姓名? ignore 是否漏/多?)
|
||||||
|
确认无误后,再跑 doco compose 完成对齐。
|
||||||
|
"""
|
||||||
|
if output_dir is None:
|
||||||
|
out_dir = Path("programs") / episode_id
|
||||||
|
else:
|
||||||
|
out_dir = Path(output_dir)
|
||||||
|
|
||||||
|
click.echo(f"[doco skeleton] episode_id={episode_id}")
|
||||||
|
click.echo(f"[doco skeleton] a_script={a_script}")
|
||||||
|
click.echo(f"[doco skeleton] output_dir={out_dir}")
|
||||||
|
click.echo(f"[doco skeleton] max_tokens={max_tokens}")
|
||||||
|
|
||||||
|
try:
|
||||||
|
result = run_skeleton(
|
||||||
|
episode_id=episode_id,
|
||||||
|
a_script_path=a_script,
|
||||||
|
output_dir=str(out_dir),
|
||||||
|
max_tokens=max_tokens,
|
||||||
|
)
|
||||||
|
click.echo(f"[ok] 段落数: {result['total_paras']} (含标题)")
|
||||||
|
click.echo(f"[ok] 骨架段数: {result['skeleton_count']}")
|
||||||
|
click.echo(f"[ok] 全覆盖校验: {'通过' if result['coverage_ok'] else '失败'}")
|
||||||
|
click.echo(f"[ok] 骨架已保存: {result['skeleton_path']}")
|
||||||
|
click.echo(f"[提示] 请人工确认骨架预览表后,再运行: doco compose --episode-id {episode_id}")
|
||||||
|
except Exception as e:
|
||||||
|
click.echo(f"[error] {e}", err=True)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
|
||||||
@main.command("asr")
|
@main.command("asr")
|
||||||
@click.option("--episode-id", required=True, help="节目 ID,如 ep001_20260612_fangkong_fandao")
|
@click.option("--episode-id", required=True, help="节目 ID,如 ep001_20260612_fangkong_fandao")
|
||||||
@click.option(
|
@click.option(
|
||||||
@@ -390,5 +453,69 @@ def asr(
|
|||||||
click.echo(f"[ok] asr_result_raw.json: {raw_path}")
|
click.echo(f"[ok] asr_result_raw.json: {raw_path}")
|
||||||
|
|
||||||
|
|
||||||
|
@main.command("compose")
|
||||||
|
@click.option("--episode-id", required=True, help="节目 ID,如 ep001_20260612_fangkong_fandao")
|
||||||
|
@click.option(
|
||||||
|
"--output-dir",
|
||||||
|
default=None,
|
||||||
|
type=click.Path(),
|
||||||
|
help="输出目录(默认 programs/<episode-id>/)",
|
||||||
|
)
|
||||||
|
@click.option(
|
||||||
|
"--no-ai",
|
||||||
|
is_flag=True,
|
||||||
|
default=False,
|
||||||
|
help="跳过 LLM 对齐,按时间均分到各段(仅验证管道)",
|
||||||
|
)
|
||||||
|
@click.option(
|
||||||
|
"--batch-size",
|
||||||
|
default=40,
|
||||||
|
type=int,
|
||||||
|
help="每批送对齐行数(默认 40)",
|
||||||
|
)
|
||||||
|
def compose(
|
||||||
|
episode_id: str,
|
||||||
|
output_dir: str,
|
||||||
|
no_ai: bool,
|
||||||
|
batch_size: int,
|
||||||
|
):
|
||||||
|
"""
|
||||||
|
P3 C4: 融合B稿 + A稿分段骨架 → 融合A稿.docx(公文格式)
|
||||||
|
|
||||||
|
AI 唯一职责: 给每行 B 句打段序号,正文一字不改、纯规则拼接。
|
||||||
|
|
||||||
|
产物:
|
||||||
|
- 融合A稿.docx (GB/T 9704 公文格式)
|
||||||
|
- c4_alignment.csv (分段对齐留痕)
|
||||||
|
"""
|
||||||
|
if output_dir is None:
|
||||||
|
out_dir = Path("programs") / episode_id
|
||||||
|
else:
|
||||||
|
out_dir = Path(output_dir)
|
||||||
|
|
||||||
|
click.echo(f"[doco compose] episode_id={episode_id}")
|
||||||
|
click.echo(f"[doco compose] output_dir={out_dir}")
|
||||||
|
click.echo(f"[doco compose] no_ai={no_ai}")
|
||||||
|
click.echo(f"[doco compose] batch_size={batch_size}")
|
||||||
|
|
||||||
|
try:
|
||||||
|
stats = run_compose(
|
||||||
|
episode_id=episode_id,
|
||||||
|
output_dir=str(out_dir),
|
||||||
|
no_ai=no_ai,
|
||||||
|
batch_size=batch_size,
|
||||||
|
)
|
||||||
|
click.echo(f"[ok] 总行数: {stats['total_lines']}")
|
||||||
|
click.echo(f"[ok] 段数: {stats['segment_count']}")
|
||||||
|
click.echo(f"[ok] 空段数: {stats['empty_segments']}")
|
||||||
|
click.echo(f"[ok] 低把握段数: {stats['low_confidence_segments']}")
|
||||||
|
click.echo(f"[ok] 单调修正行数: {stats['audit_forced_lines']}")
|
||||||
|
click.echo(f"[ok] 融合A稿: {stats['docx_path']}")
|
||||||
|
click.echo(f"[ok] 留痕 CSV: {stats['csv_path']}")
|
||||||
|
except Exception as e:
|
||||||
|
click.echo(f"[error] {e}", err=True)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user