doco: ep002全流程完工(P1→C4) + CLAUDE.md收摊更新
ep002(潜艇仿生)全部产物入库:B稿v2(733行)/ASR(411句)/融合B稿/ 融合A稿.docx/c4_alignment.csv等。fusion_align.py修复align_batch 崩溃bug。CLAUDE.md更新ep002完工状态、新增分段偏差根因和MiMo批次 失败率两条关键决策。 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
+21
-14
@@ -16,8 +16,8 @@
|
||||
|
||||
## 🔖 状态栏 (STATUS — 每次结束 session 前必须更新这三行)
|
||||
|
||||
- **最后更新**:Claude Code | 2026-06-22(晚,收摊)
|
||||
- **当前状态一句话**:**ep002(潜艇仿生)P1→P2→C1→C2→C3 已完成,C4 compose 正在由 Cline 跑**(MiMo 2.5 Pro)。C4 跑完后需审核报告(硬校验/空段/标点回退)。ep004 上游仍全空。另有一个待做事项:为编导制作 doco 全流程可视化图(HTML),方便试用前培训。
|
||||
- **最后更新**:Claude Code | 2026-06-22(深夜,收摊)
|
||||
- **当前状态一句话**:**ep002(潜艇仿生)全流程 P1→C4 完工**,已出稿 + 通哥手动批改分段。**ep004 上游仍全空**(只有骨架),下一期待跑。C4 对齐层 MiMo 批次失败率偏高(47%),ep004 段切换密需留意。
|
||||
- **下一个动手的人从这里开始**:见下方「⏩ 交接备注」
|
||||
|
||||
---
|
||||
@@ -77,13 +77,15 @@
|
||||
|
||||
## 3. 当前进度(核心交接区,以最新快照为准)
|
||||
|
||||
- **正在做**:批量化首批三期。**ep002 已完成 P1→P2→C1→C2→C3**(C3 融合B稿 733行/10条review/专名无同音替换),**C4 compose 正在 Cline 跑**。ep004 上游仍全空(只有骨架)。
|
||||
- **卡点 / 待解**:无硬卡点。C4 跑完后需审核(下个 session 首要任务)。
|
||||
- **已完成至**:ep001 + ep003 + **ep002** 三期全流程跑通。ep002 C4 已出稿,通哥手动批改分段完毕。
|
||||
- **正在做**:无。
|
||||
- **卡点 / 待解**:ep004(枪王对决)上游全空,需跑完整 P1→C4。C4 对齐层 MiMo 批次失败率 47%(ep002 实测),ep004 段切换更密,需关注(见关键决策)。
|
||||
|
||||
---
|
||||
|
||||
## 4. 已完成(只追加,最新在最上)
|
||||
|
||||
- [2026-06-22 晚|Claude Code] **ep002 C4 审核完毕,全流程收工**。Cline 跑完 C4 compose 出稿 `20260127潜艇的仿生之路_穆佩弦_融合A稿.docx`。Opus 审核核验:硬校验(汉字零改)全过、733 行全覆盖、标点回退 0 段。**但发现两个问题**:① Cline 自报空段名称错了两个(报"解说3/解说6",实际是"三维动画解说3/解说8")、隔断数也报错(报 3 个,实际 4 个)——再次印证不信 Cline 自检;② **9/19 批次(47%)LLM 对齐失败走回退**(全 confidence=0.30),本次因失败批次恰在大段中间未翻车,但属黄色预警。**分段偏差根因**:A 稿是拍摄前剧本,专家采访段与实际播出内容差异巨大(A 稿一句话提纲 vs 专家自由发挥两分钟),LLM 无法正确匹配——这是信息不对应,非算法问题。通哥手动批改分段(~10 处高亮标签),内容本身正确。**结论(通哥拍板)**:治本靠编导给贴近播出版的稿子,现阶段接受"程序保证文字零改 + 编导手调分段"的模式。
|
||||
- [2026-06-22 |Claude Code] **ep002 C3 融合通过**。融合B稿 733行(零偏移),review 10条(5 minor_edit 全是 OCR 错字修正,专名无同音替换)。C4 compose 交 Cline 跑中。
|
||||
- [2026-06-22 |Claude Code] **ep002(潜艇仿生)P1→P2→C1→C2 完成**。P1 全量抽帧 1620 帧(不做 dHash/IoU 去重,全部进 OCR);P2 OCR 4路并发首秀通过(~50帧/分钟,约串行3倍),Stage B 文本去重出 B稿v2 733行;C1 术语提取 68 条热词(词典累积至 235 条);C2 讯飞 ASR 411 句。下一步 C3 fuse。
|
||||
- [2026-06-22 |Claude Code] **标点层 prompt 修复 + ep003 重跑出稿**。`PUNCTUATE_SYSTEM_PROMPT` 加第5条规则(陈述句结尾用句号)+ 错误/正确示范。ep003 逗号占比从 88% 降至 76%,句号从 70 涨到 118。红线未破(strip_punct 硬校验通过)。commit `fd2ef1a`。
|
||||
@@ -105,12 +107,14 @@
|
||||
- [x] **C3**:B稿v2 ⊕ ASR 交叉复审 → 融合B稿(743行时间戳零偏移) + fusion_review.csv(5条留痕)。
|
||||
- [x] **C4(全部收口)**:融合B稿按 A稿28段对齐归拢 → 融合A稿 docx(公文格式)。汉字零改 + LLM 按语义加标点,红线 28/28 段逐字一致。`doco compose --episode-id <id>`。**OCR 漏字决定不补**(讨论见关键决策);seg8/seg27 两段标点接受一逗到底。
|
||||
- [x] **A稿解析器升级**:正则 → LLM分段骨架+人工确认+ignore合并;三期骨架已产并核验通过。`doco skeleton`。
|
||||
- [~] **批量化首批三期·跑完整流水线(下一步主线)**:ep003 已全流程跑通。**ep002 已完成 P1→P2→C1→C2,下一步 C3 fuse → C4 compose**。ep004 上游仍全空(只有骨架),需跑完整 P1→C4。stage 脚本从 ep003 复制。
|
||||
- [~] **批量化首批三期·跑完整流水线(下一步主线)**:ep001 + ep003 + ep002 三期已全流程完工。**ep004 上游仍全空**(只有骨架),需跑完整 P1→C4。stage 脚本从 ep003 复制。
|
||||
- [x] **【已完成】标点层 prompt 修复**:加第5条规则+示范,ep003 逗号占比 88%→76%,commit `fd2ef1a`。
|
||||
- [x] **【已完成】配 Ollama 并发**:`OLLAMA_NUM_PARALLEL=4`,ep002 OCR 4路实跑通过,~50帧/分钟。
|
||||
- [ ] **【backlog】C4 对齐层 batch_size 调优**:ep002 实测 batch_size=40 导致 47% 批次 MiMo 返回空/JSON 截断走回退。ep004 段切换更密,建议降到 25-30。Cline 在 `_run_compose.py` 里加 `--batch-size 25` 即可。
|
||||
- [ ] **【产品 backlog】原稿缺【专家N】/【三维动画N】标签**:ep003 复查发现编导原稿里就没有专家、后续三维动画的分段标注,骨架如实反映=融合A稿里也没有(通哥手工补了高亮)。不赖程序(原稿零信号,LLM 与人一样猜不准),**不让程序猜**。治本=提醒编导/责编原稿把【专家N】等段头标全;50 期前在导入须知里写清。
|
||||
- [ ] **【backlog】C3 prompt 收紧**:专有名词(厂名/型号/番号)遇 ASR 同音异写,必须以 B稿v2/A稿为准、不许采 ASR——ep003 已踩"斯泰尔→斯太尔",50 期批量前在 prompt 里收紧防复发。
|
||||
- [ ] **串一键脚本**:把 C1→C2→C3→C4 串成"一条命令跑一期"(薄壳,各阶段已有断点缓存),验 2-3 期稳定后再谈监控文件夹/绑定界面。
|
||||
- [x] **【已修复】`fusion_align.py` align_batch 崩溃 bug**:`_parse_align_json` 调用在 `try/except` 之外,LLM 返回空字符串时进程崩溃。Cline 已修,移入 try/except 内,错误时优雅回退。
|
||||
- [ ] **骨架小瑕疵 backlog(不拦路,后期顺手或跳过)**:ep002 演播室主持人 vs 主持人 是否统一;ep004 小剧场角色编号乱(斯9/斯通纳10、卡8跨场)直接改 JSON 即可,不必重调 LLM;ep003 行内`【固摇轨】`留在参照正文(无害,不进输出)。
|
||||
- [x] **C2** 讯飞 ASR 适配层(密钥外置 + asr_adapter 并入 + `doco asr` 命令 + 真转写310句)
|
||||
- [x] P3-C1 术语提取 + 词典 + 热词表
|
||||
@@ -121,6 +125,8 @@
|
||||
|
||||
## 6. 关键决策(为什么这么做 — 跨 session 最易丢,别推翻)
|
||||
|
||||
- [2026-06-22] **C4 分段偏差的根因是 A 稿与播出版内容差异大,非算法问题,现阶段不追技术方案。** ep002 实证:专家采访段 A 稿只有一句话提纲,实际播出专家自由发挥两分钟,内容/角度/篇幅全变,LLM 拿提纲匹配实录当然对不上。解说段偏差轻,基本能对。**B 稿(唱词字幕 OCR)里没有隔断标题**(隔断是画面美术字不走字幕轨道),所以也没法用隔断做硬分界线。**通哥拍板**:治本靠编导给贴近播出版的稿子(尤其专家段录完后更新);差异大的期接受"程序保证文字零改 + 编导花十几分钟手调分段标签"。
|
||||
- [2026-06-22] **MiMo 2.5 Pro C4 对齐层批次失败率偏高(ep002 实测 9/19=47%)。** 失败批次全 confidence=0.30,回退机制把该批所有行分配给 `min_normal_seg_id`。ep002 运气好——失败批次全在大段中间,回退恰好分对了。但 ep004 段切换密,边界批次失败会导致行归错段。**建议 ep004 前把 batch_size 从 40 降到 25-30**,或排查 MiMo 返回空/JSON 截断的具体原因。
|
||||
- [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 不受影响。
|
||||
@@ -152,13 +158,12 @@
|
||||
|
||||
## 7. ⏩ 交接备注(写给下一个接手的 session)
|
||||
|
||||
> 下次开工读完这段应能 0 摩擦续上。接手后可清空重写。**(2026-06-22 重写)**
|
||||
> 下次开工读完这段应能 0 摩擦续上。接手后可清空重写。**(2026-06-22 深夜重写)**
|
||||
|
||||
- **大局**:ep001 + ep003 两期已全流程跑通。**ep002 已完成 P1→P2→C1→C2**,下一步跑 C3 fuse → C4 compose 即可出稿。ep004 上游仍全空(只有骨架)。
|
||||
- **ep002 现状**:`ep002_20260127_qianting_fangsheng`(潜艇仿生)目录下已有:A稿 docx + mp4 + skeleton + `frames_v2/`(1620帧) + `audio_16k.wav` + `ocr_raw.jsonl`(1620行) + `B稿_v2.txt`(733行) + `本期热词表.txt`(68条) + `c1_term_candidates.json` + `asr_v2_timed.txt`(411句) + `asr_result_raw.json` + stage 脚本。
|
||||
- **第一句话该干的**:**审核 ep002 C4 compose 报告**(Cline 正在跑或已跑完)。检查:硬校验是否全过、空段数、标点回退段数。通过后 ep002 全流程完工,转 ep004。若 C4 还没跑完,等它跑完再审。
|
||||
- **ep002 C3 已审核通过**(10条review/专名无同音替换),不用重审。
|
||||
- **大局**:ep001 + ep003 + ep002 三期已全流程跑通出稿。**ep004(枪王对决)上游全空**,是下一期主线。
|
||||
- **ep002 收尾状态**:全流程完工。出稿 `融合A稿.docx` 硬校验全过(汉字零改),通哥已手动批改分段(`融合A稿_批改.docx`)。分段偏差根因是 A 稿与播出版内容差异大(见关键决策),非程序 bug,现阶段接受编导手调。
|
||||
- **ep004 现状**:`ep004_20260526_qiangwang_duijue`(枪王对决,最难·小剧场密)。只有 A稿 docx + mp4 + skeleton。需跑完整 P1→P2→C1→C2→C3→C4。stage 脚本从 ep003 复制。
|
||||
- **第一句话该干的**:与通哥确认是否开跑 ep004。ep004 小剧场多、段切换密,C4 对齐层可能更吃力(ep002 已有 47% 批次回退),**建议降 batch_size 到 25-30**。
|
||||
- **LLM 已切换**:代码和 Cline 都已从 DeepSeek 切到**小米 MiMo 2.5 Pro**。环境变量名 `LLM_API_KEY` / `LLM_BASE_URL` / `LLM_MODEL`(旧 `DEEPSEEK_*` 已废弃)。
|
||||
- **Ollama 并发已配**:`OLLAMA_NUM_PARALLEL=4`,ep002 实测 ~50帧/分钟(串行的3倍)。4090D 显存余量大(GPU 利用率仅 2%),ep004 可考虑提到 8 路。
|
||||
- **P1 抽帧硬约束**:**不做 dHash/IoU 去重**,全部帧进 OCR,去重交 Stage B 按文本做(P2 完工快照铁律)。`doco split` 的去重逻辑是过时的,不要用。
|
||||
@@ -166,10 +171,12 @@
|
||||
1. 每期热词/术语不同,**C1 每期重跑**;A稿分段编号各有各的重复/空格脏,**按出现顺序走、别假设单调唯一**。
|
||||
2. **C3 fuse 后必扫 `fusion_review.csv`**:专名(厂名/型号/番号)若被 ASR 同音字改了要打回(ep003 踩过"斯泰尔→斯太尔",见关键决策)。
|
||||
3. **C4 出现空段先别当 bug**:多半是播出剪了那段戏,去融合B稿 grep 该段专属词确认(见关键决策)。
|
||||
4. **OCR 漏字本期不补**(通哥拍板)——根在抽帧/OCR 漏两三字单屏,LLM 补词=破红线。
|
||||
5. **ASR 花讯飞额度**;长转写/OCR 放独立终端别让 Cline 盯。
|
||||
6. Cline 会偷换模型/术语源、误判字数、口头猜错根因——**自报结果一律对源数据核验**。
|
||||
7. **thinking 分任务用**:语义对齐/骨架开、标点/抽取/融合关(见关键决策)。
|
||||
4. **C4 分段偏差是常态(A 稿≠播出版)**:内容正确但分段标签可能偏,编导手调十几分钟搞定。不追技术方案(见关键决策)。
|
||||
5. **OCR 漏字本期不补**(通哥拍板)——根在抽帧/OCR 漏两三字单屏,LLM 补词=破红线。
|
||||
6. **ASR 花讯飞额度**;长转写/OCR 放独立终端别让 Cline 盯。
|
||||
7. Cline 会偷换模型/术语源、误判字数、口头猜错根因——**自报结果一律对源数据核验**(ep002 C4 报告空段名称错两个、隔断数也报错)。
|
||||
8. **thinking 分任务用**:语义对齐/骨架开、标点/抽取/融合关(见关键决策)。
|
||||
9. **MiMo C4 对齐批次失败率高**(ep002 47%),ep004 前考虑降 batch_size(见关键决策)。
|
||||
- **出稿命名**:`{原始A稿stem}_融合A稿.docx`(不覆盖原始定稿)。
|
||||
- **字体坑(C4 出稿)**:大标题方正小标宋_GBK(商业字体),出稿前确认已装,否则脚本回退。
|
||||
|
||||
|
||||
+529
-17
@@ -3,9 +3,10 @@
|
||||
"term": "萨德",
|
||||
"domain": "model",
|
||||
"episodes": [
|
||||
"ep001_20260612_fangkong_fandao"
|
||||
"ep001_20260612_fangkong_fandao",
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
"frequency": 2
|
||||
},
|
||||
"铁穹": {
|
||||
"term": "铁穹",
|
||||
@@ -75,9 +76,10 @@
|
||||
"term": "标准",
|
||||
"domain": "model",
|
||||
"episodes": [
|
||||
"ep001_20260612_fangkong_fandao"
|
||||
"ep001_20260612_fangkong_fandao",
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
"frequency": 2
|
||||
},
|
||||
"霍拉姆沙赫尔": {
|
||||
"term": "霍拉姆沙赫尔",
|
||||
@@ -179,9 +181,10 @@
|
||||
"term": "动能撞击",
|
||||
"domain": "tech_concept",
|
||||
"episodes": [
|
||||
"ep001_20260612_fangkong_fandao"
|
||||
"ep001_20260612_fangkong_fandao",
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
"frequency": 2
|
||||
},
|
||||
"相控阵预警雷达": {
|
||||
"term": "相控阵预警雷达",
|
||||
@@ -436,9 +439,10 @@
|
||||
"domain": "org",
|
||||
"episodes": [
|
||||
"ep001_20260612_fangkong_fandao",
|
||||
"ep003_20260331_qiangxie_chicun"
|
||||
"ep003_20260331_qiangxie_chicun",
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 2
|
||||
"frequency": 3
|
||||
},
|
||||
"以色列": {
|
||||
"term": "以色列",
|
||||
@@ -517,9 +521,10 @@
|
||||
"domain": "person",
|
||||
"episodes": [
|
||||
"ep001_20260612_fangkong_fandao",
|
||||
"ep003_20260331_qiangxie_chicun"
|
||||
"ep003_20260331_qiangxie_chicun",
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 2
|
||||
"frequency": 3
|
||||
},
|
||||
"专家1": {
|
||||
"term": "专家1",
|
||||
@@ -621,11 +626,12 @@
|
||||
},
|
||||
"爱国者-3防空反导系统": {
|
||||
"term": "爱国者-3防空反导系统",
|
||||
"domain": "weapon",
|
||||
"domain": "model",
|
||||
"episodes": [
|
||||
"ep001_20260612_fangkong_fandao"
|
||||
"ep001_20260612_fangkong_fandao",
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
"frequency": 2
|
||||
},
|
||||
"萨德防御系统": {
|
||||
"term": "萨德防御系统",
|
||||
@@ -775,17 +781,19 @@
|
||||
"term": "蓝皓",
|
||||
"domain": "person",
|
||||
"episodes": [
|
||||
"ep001_20260612_fangkong_fandao"
|
||||
"ep001_20260612_fangkong_fandao",
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
"frequency": 2
|
||||
},
|
||||
"饱和攻击": {
|
||||
"term": "饱和攻击",
|
||||
"domain": "tech_concept",
|
||||
"episodes": [
|
||||
"ep001_20260612_fangkong_fandao"
|
||||
"ep001_20260612_fangkong_fandao",
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
"frequency": 2
|
||||
},
|
||||
"机动变轨": {
|
||||
"term": "机动变轨",
|
||||
@@ -1378,5 +1386,509 @@
|
||||
"ep003_20260331_qiangxie_chicun"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"AN/SLQ-25": {
|
||||
"term": "AN/SLQ-25",
|
||||
"domain": "weapon",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"海军": {
|
||||
"term": "海军",
|
||||
"domain": "org",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"潜艇": {
|
||||
"term": "潜艇",
|
||||
"domain": "weapon",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"鲨鱼皮": {
|
||||
"term": "鲨鱼皮",
|
||||
"domain": "weapon",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"消声瓦": {
|
||||
"term": "消声瓦",
|
||||
"domain": "weapon",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"声呐": {
|
||||
"term": "声呐",
|
||||
"domain": "weapon",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"海豚": {
|
||||
"term": "海豚",
|
||||
"domain": "weapon",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"乌贼": {
|
||||
"term": "乌贼",
|
||||
"domain": "weapon",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"电子替身": {
|
||||
"term": "电子替身",
|
||||
"domain": "weapon",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"海龟号": {
|
||||
"term": "海龟号",
|
||||
"domain": "weapon",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"鹰号": {
|
||||
"term": "鹰号",
|
||||
"domain": "weapon",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"压载水舱系统": {
|
||||
"term": "压载水舱系统",
|
||||
"domain": "weapon",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"鹦鹉螺": {
|
||||
"term": "鹦鹉螺",
|
||||
"domain": "weapon",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"霍兰号": {
|
||||
"term": "霍兰号",
|
||||
"domain": "weapon",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"大青花鱼号": {
|
||||
"term": "大青花鱼号",
|
||||
"domain": "weapon",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"洛杉矶级": {
|
||||
"term": "洛杉矶级",
|
||||
"domain": "weapon",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"消音瓦": {
|
||||
"term": "消音瓦",
|
||||
"domain": "weapon",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"沟槽面": {
|
||||
"term": "沟槽面",
|
||||
"domain": "weapon",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"仿鲨鱼皮": {
|
||||
"term": "仿鲨鱼皮",
|
||||
"domain": "weapon",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"U型潜艇": {
|
||||
"term": "U型潜艇",
|
||||
"domain": "weapon",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"水听器": {
|
||||
"term": "水听器",
|
||||
"domain": "weapon",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"深水炸弹": {
|
||||
"term": "深水炸弹",
|
||||
"domain": "weapon",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"弗吉尼亚级攻击核潜艇": {
|
||||
"term": "弗吉尼亚级攻击核潜艇",
|
||||
"domain": "weapon",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"艇艏声呐阵列": {
|
||||
"term": "艇艏声呐阵列",
|
||||
"domain": "weapon",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"舷侧声呐阵列": {
|
||||
"term": "舷侧声呐阵列",
|
||||
"domain": "weapon",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"拖曳声呐阵列": {
|
||||
"term": "拖曳声呐阵列",
|
||||
"domain": "weapon",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"声学诱饵": {
|
||||
"term": "声学诱饵",
|
||||
"domain": "weapon",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"声自导鱼雷": {
|
||||
"term": "声自导鱼雷",
|
||||
"domain": "weapon",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"气幕弹": {
|
||||
"term": "气幕弹",
|
||||
"domain": "weapon",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"Bold": {
|
||||
"term": "Bold",
|
||||
"domain": "weapon",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"Sieglinde": {
|
||||
"term": "Sieglinde",
|
||||
"domain": "weapon",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"MOSS Mk70": {
|
||||
"term": "MOSS Mk70",
|
||||
"domain": "weapon",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"ADC Mk1": {
|
||||
"term": "ADC Mk1",
|
||||
"domain": "weapon",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"ADC Mk2": {
|
||||
"term": "ADC Mk2",
|
||||
"domain": "weapon",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"ADC Mk3": {
|
||||
"term": "ADC Mk3",
|
||||
"domain": "weapon",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"Deceptor": {
|
||||
"term": "Deceptor",
|
||||
"domain": "weapon",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"Nixie": {
|
||||
"term": "Nixie",
|
||||
"domain": "weapon",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"反鱼雷软杀伤系统": {
|
||||
"term": "反鱼雷软杀伤系统",
|
||||
"domain": "weapon",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"核潜艇": {
|
||||
"term": "核潜艇",
|
||||
"domain": "weapon",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"攻击核潜艇": {
|
||||
"term": "攻击核潜艇",
|
||||
"domain": "weapon",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"F/A-18E/F": {
|
||||
"term": "F/A-18E/F",
|
||||
"domain": "model",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"歼-10": {
|
||||
"term": "歼-10",
|
||||
"domain": "model",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"SM-3": {
|
||||
"term": "SM-3",
|
||||
"domain": "model",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"英国海军": {
|
||||
"term": "英国海军",
|
||||
"domain": "unit_designation",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"德国U型潜艇": {
|
||||
"term": "德国U型潜艇",
|
||||
"domain": "unit_designation",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"盟军运输船队": {
|
||||
"term": "盟军运输船队",
|
||||
"domain": "unit_designation",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"美国海军": {
|
||||
"term": "美国海军",
|
||||
"domain": "unit_designation",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"埃兹拉·李": {
|
||||
"term": "埃兹拉·李",
|
||||
"domain": "person",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"《军事科技》": {
|
||||
"term": "《军事科技》",
|
||||
"domain": "org",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"英国": {
|
||||
"term": "英国",
|
||||
"domain": "org",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"德国": {
|
||||
"term": "德国",
|
||||
"domain": "org",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"隐蔽色": {
|
||||
"term": "隐蔽色",
|
||||
"domain": "tech_concept",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"光学隐身衣": {
|
||||
"term": "光学隐身衣",
|
||||
"domain": "tech_concept",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"水滴型": {
|
||||
"term": "水滴型",
|
||||
"domain": "tech_concept",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"生物流线": {
|
||||
"term": "生物流线",
|
||||
"domain": "tech_concept",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"流噪声": {
|
||||
"term": "流噪声",
|
||||
"domain": "tech_concept",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"生物声呐": {
|
||||
"term": "生物声呐",
|
||||
"domain": "tech_concept",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"声学指纹": {
|
||||
"term": "声学指纹",
|
||||
"domain": "tech_concept",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"听觉陷阱": {
|
||||
"term": "听觉陷阱",
|
||||
"domain": "tech_concept",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"声学假目标": {
|
||||
"term": "声学假目标",
|
||||
"domain": "tech_concept",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"反潜战": {
|
||||
"term": "反潜战",
|
||||
"domain": "tech_concept",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"非声探测设备": {
|
||||
"term": "非声探测设备",
|
||||
"domain": "tech_concept",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
},
|
||||
"水声信号": {
|
||||
"term": "水声信号",
|
||||
"domain": "tech_concept",
|
||||
"episodes": [
|
||||
"ep002_20260127_qianting_fangsheng"
|
||||
],
|
||||
"frequency": 1
|
||||
}
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,30 @@
|
||||
《潜艇的仿生之路》
|
||||
|
||||
导视:在浩瀚海洋深处,数亿年的进化,塑造了无数神奇的“军事科技”。如今的人类,用钢铁和电路,重新发明了这一切。当潜艇披上"鲨鱼皮"消声瓦,当声呐模仿海豚看穿黑暗,当乌贼的墨汁化作潜艇的电子替身,自然早已写好了深海中生存与猎杀的终极教科书。本期《军事科技》带你见证茫茫深海中潜艇的仿生之路。
|
||||
|
||||
Xr演播室 主持人1:观众朋友们大家好!欢迎收看本期的《军事科技》,我是主持人蓝皓。在人类出现之前,深海就是地球上最残酷的竞技场。(画侧出现水体,水体按颜色深度分层)在这里,生存的法则只有两条:隐藏自己,发现敌人。而如今,深海依旧是地球上最后的黑暗边疆。在这里,潜伏着人类工程学的杰作,也是终极的刺杀兵器——潜艇。(水体中出现潜艇,鱼类游走)提到潜艇,想必大家都并不陌生。那么这样一头深海巨兽从诞生至今都借鉴了大自然中哪些动物的“绝招”呢?
|
||||
从鹦鹉螺到“潜艇压载水舱系统”
|
||||
二维动画解说1: 1776年9月7日,历史上第一次潜艇攻击开始了,这次攻击是由埃兹拉·李来执行。他驾驶着“海龟号”成功潜到英国海军战舰“鹰号”的尾部,接下去的工作就是用钻头在敌舰上穿孔以便固定炸药包。但是,他打钻的地方正好是一块金属板,半个小时之后他仍然没有钻透敌舰,只好上浮返回。虽然“海龟号”没有成功取得战果,但他拉开了潜艇实战的序幕,从此人类的战场也随之从陆地、水面发展到了水下,“海龟号”也得到了与现代潜艇相同的设计原理而获得世界上“第一艘军用潜艇”的称号,在世界潜艇发展史占据了一席之地。
|
||||
三维动画解说:“海龟号”潜艇,顾名思义它的外形很像海龟。舱内空气可供驾驶员呼吸半个小时,在潜艇的上部还装有2根通气管,以便上浮时打开,下沉时关闭,从而补充新鲜的空气。为了控制潜水艇的上浮以及下沉,船内设有压载水舱,用水泵控制水柜内的水。为应付紧急情况的发生,艇内装有一块90千克重的铁块,危机时刻只要抛掉铁块,潜艇就可以迅速上浮。”
|
||||
专家: 潜艇通过向压载水舱注水,排水来改变自身重量,模仿的正是鹦鹉螺的浮控原理。
|
||||
解说:让我们把目光投向鹦鹉螺的身上。在亿万年的进化中,鹦鹉螺掌握了一种堪称完美的浮力控制艺术。它的螺旋形外壳被一系列隔膜分隔成数十个独立的气室,如同一个精密的多舱室潜水器。通过一个被称为串管的活组织,鹦鹉螺能精确调节每个气室内液体与气体的比例——分泌液体进入气室时下潜,排出液体让位给气体时上浮。这种精妙的生理机制,让它能在数百米的深海与浅层水域之间自如升降,几乎不消耗任何额外能量,堪称自然界最古老、最经典的被动浮力控制系统。
|
||||
三维动画解说:人类潜艇的压载水舱系统,正是对这一自然智慧的完美复刻。当潜艇需要下潜时,阀门打开,海水涌入压载舱,取代舱内空气,艇体重量增加;当需要上浮时,高压空气将海水强行排出,艇体重量减轻。从19世纪美国“霍兰”号潜艇的手动阀门,到现代核潜艇的计算机控制高压气系统,其核心原理始终未变——正如鹦鹉螺用气体取代液体,潜艇用海水取代空气。这种能力,鹦鹉螺用了数亿年进化完成,而人类只用了不到一百年。
|
||||
鲨鱼皮肤与潜艇的外形设计
|
||||
Xr主持人:在广袤的海洋中,生存是一场关乎“看见”与“不被看见”的永恒竞赛。为了在这场竞赛中胜出,无数海洋生物进化出了一套精妙的色彩伪装策略,这便是隐蔽色。像虎鲸、鲨鱼、这样一生与海洋打交道的生物,其背部往往呈现深蓝、深灰色,而其腹部通常是白色或银白色。(画侧出现虎鲸)我们经常能够看到一只从深海上浮的虎鲸,其白色的胸膛在来自下方的视线中几乎“消失”在明亮的天光里;而一只从上方发起攻击的鲨鱼,其深色的背部直到最后一刻才会被发现。这套简单而高效的系统,本质上是一种 “光学隐身衣” 。它抹平了生物体在三维空间中的立体感,极大地缩短了被天敌或猎物发现的距离。海军工程师很快意识到,这正是潜艇在海洋中生存所需要的第一层能力。
|
||||
专家:在二战时期,一些潜艇的指挥塔和上层建筑就被涂上了深灰色,以期在水面状态时降低被飞机发现的概率。今天,虽然潜艇绝大部分时间在水下活动,但隐蔽色原则依然被用于其涂装设计。现代潜艇通常采用一种黑色涂装。这不仅仅是为了美观,更是一种功能性设计。
|
||||
解说:然而,在深海中,仅仅“看不见”还远远不够。随着潜艇潜得更深、航行时间更长,真正致命的威胁,开始从光线转移到声音。声音,是深海中传播最远、最难隐藏的信号。一丝多余的噪音,就可能暴露位置,招来猎杀。于是,潜艇的隐身逻辑,也从颜色,升级到了形态。潜艇的外形,并非一开始就是今天的样子。很长一段时间里,它更像是一艘“能够下潜的水面舰艇”。二战时期的潜艇需要频繁浮出水面航行,水下只是暂时藏身之所,因此艇体高耸、结构复杂,水下阻力大、噪音高。真正的转折,发生在核动力出现之后。当潜艇可以长期潜航,人类第一次开始,只为“水下生存”来设计它的形状。工程师将目光投向自然界:鲸类、海豚等高速游泳动物,几乎都拥有同一种外形——前圆后尖的水滴型。1950年代,美国“大青花鱼”号实验潜艇验证了这一答案。水滴型艇体显著降低阻力和流噪,让潜艇更快、更安静,也更难被发现。从此,现代潜艇的外形几乎统一。当潜艇的外形已经足够“像一条鱼”,真正的较量,才刚刚开始。接下来要隐藏的,不再是轮廓,而是声音本身。
|
||||
专家:从早期潜艇的船型艇体,到现代攻击核潜艇几乎统一的水滴形艇体,如美国“洛杉矶”级,其核心目的就是模仿这种生物流线。每一个突出物、每一个转角都被精心优化,只为让海水“感觉不到”潜艇的存在,从而实现更安静、更高效的航行。潜艇需要在声学上“隐形”,经常被使用手是“消音瓦”。
|
||||
解说:海豚的皮肤,能够分泌一种特殊黏液,使水流紧贴体表滑行,从而减少湍流与阻力;而更为人熟知的,是鲨鱼的皮肤结构。鲨鱼体表覆盖着无数微小的 V 形盾鳞,这些看似粗糙的纹理,反而能打散涡流,抑制水流紊乱,大幅降低摩擦阻力。潜艇工程师从中得到启发。在现代潜艇的消声瓦表面,常会设计出类似的微沟槽或细微纹理。这种被称为“沟槽面”或“仿鲨鱼皮”的结构,并不仅仅是为了让潜艇航行得更省力,更重要的是——它能有效降低水流掠过艇体时产生的流噪声,让潜艇在深海中,变得更加安静,也更加致命。鲸类和海豚用数千万年的进化,找到了最安静的形态,而人类,只是照着这个形态,把潜艇重新造了一遍。
|
||||
海豚声呐与潜艇综合声呐系统
|
||||
Xr解说:海豚在浑浊的海水中能准确找到小鱼,还能分辨出哪条鱼更肥美,这种能力来自它们独特的"水下视觉"——生物声呐。当海豚发出"咔嗒咔嗒"的声音,这些声波就像无形的探照灯向前发射。声音遇到物体产生回声,海豚通过下颌接收这些回声,就能在脑海中描绘出周围环境的立体图像。它们能听出藏在泥沙里的两条鱼哪条更肥,能判断前方是岩石还是海草,这种能力让任何人工声呐都望尘莫及。人类从海豚身上获得灵感,发明了声呐技术。
|
||||
解说:二战爆发后,德国U型潜艇再次成为海战中的核心力量。在广阔的大西洋上,它们潜伏在航道附近,利用夜色和水下掩护,对盟军运输船队发动突然袭击。单艘潜艇,就足以瘫痪一整条补给线。对英国而言,这不仅是军事问题,更是生存危机。粮食、燃料、军需,几乎全部依赖海上运输,而水下的敌人,却始终看不见。面对潜艇带来的巨大压力,英国海军被迫改变思路——不再依赖目视搜索,而是尝试在深海中“倾听”敌人的存在。以水听器为基础,配合主动声波探测,声呐系统逐步成型,并率先装备在驱逐舰和护航舰上。在护航战例中,声呐第一次实现了对潜艇的稳定定位,使深水炸弹不再是盲目投掷,而成为有目标的打击。随着反潜技术的成熟,曾经游刃有余的U型潜艇,开始频繁暴露行踪,损失不断增加。大西洋的海战,从潜艇的“单方面猎杀”,逐渐演变为一场围绕隐蔽与探测的技术对抗。而这一技术,正是来源于大自然中的生物声呐。
|
||||
专家:声呐是一种利用声波在水中的传播和反射探测水下物体,如潜艇、水雷、冰山、暗礁等,并可用于导航和测距、定位的装备,现在已广泛装备水面舰艇、潜艇、反潜机,以及无人作战平台。虽然现在雷达、红外、激光等非声探测设备有了长足的进步,但由于海水特性和潜艇潜深等原因,声呐仍然是反潜战中对潜探测最重要的,不可替代的装备。而潜艇在水下航行时,由于电磁波和光在水中衰减很大,传播距离非常有限,对于潜艇来说水声信号是探测目标最有效的方法。
|
||||
三维动画解说:这是一艘弗吉尼亚级攻击核潜艇。潜艇的艇艏,布置着大型声呐阵列。在早期批次上,它呈现为球形结构;在更新批次中,则演变为更加集成的阵面形式。无论外形如何变化,它始终承担着同一项任务——对前方海域进行持续探测。通过分析回波的时间与特征,潜艇能够判断目标的距离、方位,并对水下接触进行初步识别。沿着艇体左右两侧,分布着舷侧声呐阵列。它们如同海豚身体两侧的侧线系统,负责监听来自各个方向的细微声学变化。即使潜艇保持静默状态,不主动发声,这些阵列依然能够捕捉远处螺旋桨的低频噪声,以及水流扰动形成的异常信号。在潜艇尾部,一条细长的拖曳声呐阵列被放出。这是弗吉尼亚级最重要的远程感知手段之一。它远离艇体自身的噪声干扰,将潜艇的听觉延伸到更远的海域,用于发现极其微弱、距离极远的水下目标。艇艏声呐、舷侧阵列与拖曳声呐协同工作,使这艘潜艇即使在完全隐蔽的状态下,也能构建起一幅连续、立体的水下态势图。
|
||||
解说:如今,科学家仍在向海豚学习:新的声呐系统在模仿海豚快速构建图像的能力,智能算法在研究海豚处理声音的思维方式。当我们看到海豚在海洋中自由游弋时,其实是在见证一个活生生的声学奇迹——它的每一次鸣叫,都在为人类展示着更完美的水下探测技术。
|
||||
乌贼墨汁与声学诱饵
|
||||
Xr主持人:当生存受到直接威胁时,顶尖的猎手与最先进的武器,都诉诸同一种策略:制造混乱,隐藏本体。乌贼遇到危险时,会迅速喷出浓密的墨汁,它并非简单的黑色液体,它在海水中会迅速扩散,形成一个与自身形态相似的、浓密的“墨汁伪影”。这个深色轮廓能立即吸引并锁定捕食者的视觉注意力,为真身的逃离创造关键的时间窗口。潜艇工程师完美地借鉴了这套复杂的求生系统,并将其转化为防御装备:声学诱饵。
|
||||
解说:潜艇感知到来袭的声自导鱼雷或敌方主动声呐锁定时,会从发射管快速射出声学诱饵,它是潜艇的一种高“电子替身”。声学诱饵通常是一个自航式的水下航行器,被发射后,它会精确模仿母艇的发动机噪音、螺旋桨节拍等独特的“声学指纹”。还会主动航行,制造出比气幕弹更像一艘真实潜艇的移动声学目标。来袭的智能鱼雷能够区分简单的气泡幕和复杂的潜艇噪音。声学诱饵通过发出更具吸引力的“听觉陷阱”,引诱鱼雷偏离航道,转而追踪并攻击这个“替身”。
|
||||
专家:1942 年,德军 U 型潜艇投放了一种叫 “Bold” 的声纳诱饵。它没有动力,只是释放大量气泡,在水中制造一个“虚假的潜艇回波”。简单,却足以让早期声呐迷失方向。很快,诱饵开始“动起来”。“Sieglinde” 登场。它能以几节航速自行移动,在水下拖出一条看似真实的航迹。这是诱饵第一次尝试模拟潜艇的“行为”,而不仅仅是形态。战争结束,但对抗没有停止。冷战时期,美国海军引入了 MOSS Mk70 移动潜艇模拟器。它被发射出艇后,会在水下独立航行,主动与被动同时工作,制造一个完整的“声学假目标”。在声呐画面中,它和真正的潜艇几乎没有区别。进入 70 年代,诱饵开始标准化、批量化。ADC Mk1,随后是 Mk2、Mk3 系列。这些一次性声学诱饵可以在预定深度悬停,持续发出模拟噪声,把来袭鱼雷从真正的潜艇身边“拉走”。它们不显眼,却成为冷战后期潜艇防御的常规配置。真正的转折,出现在智能化时代。新一代诱饵不再只是“发声”。它们开始计算、判断、机动。例如 Deceptor 自航式声学诱饵。它会主动离艇机动,改变航向和速度,在水下扮演一个“正在逃逸的潜艇”。面对多枚鱼雷,它可以分散、引导、拖延,为真正的潜艇争取生存窗口。而在水面与水下战场上,AN/SLQ-25 “Nixie” 系列拖曳诱饵,成为最广为人知的反鱼雷软杀伤系统之一。
|
||||
解说:这套系统在实战与对抗演练中屡建奇功。其核心战术都与数百万年前的乌贼如出一辙。乌贼用一团墨汁换取生存的时间,人类则用电子替身,把这一秒无限放大。
|
||||
Xr主持人:当深海的幽灵收起獠牙,当猎杀者的声呐归于沉寂,这片蔚蓝疆域的博弈却从未停止。从鹦鹉螺的浮力控制到核潜艇的无限续航,从乌贼的墨汁到潜艇的电子诱饵,我们见证了一场跨越数亿年的军事科技进化。自然用漫长的时光雕琢出生存的智慧,人类用智慧在钢铁中复刻这些法则。这不仅是矛与盾的较量,更是对生命本身最深刻的学习。下一场改变游戏规则的技术革命,或许正随着某只深海生物的游弋,在黑暗中悄然酝酿。好了,本期《军事科技》到此结束,感谢您的观看。
|
||||
|
||||
@@ -0,0 +1,733 @@
|
||||
[0m7s] 在浩瀚海洋深处
|
||||
[0m9s] 数亿年的进化
|
||||
[0m10s] 塑造了无数神奇的
|
||||
[0m12s] 攻防利器
|
||||
[0m14s] 如今的人类
|
||||
[0m15s] 用钢铁和电路
|
||||
[0m16s] 重新发明了这一切
|
||||
[0m19s] 当潜艇
|
||||
[0m20s] 披上鲨鱼皮 消声瓦
|
||||
[0m22s] 当声响模仿海豚
|
||||
[0m24s] 看穿黑暗
|
||||
[0m26s] 当乌贼的墨汁
|
||||
[0m27s] 化作潜艇的电子替身
|
||||
[0m30s] 自然早已写好了深海中
|
||||
[0m32s] 生存与猎杀的
|
||||
[0m34s] 终极教科书
|
||||
[0m38s] 本期《军事科技》
|
||||
[0m39s] 带您见证茫茫海中
|
||||
[0m42s] 潜艇的仿生之路
|
||||
[1m21s] 各位观众你们好
|
||||
[1m22s] 欢迎收看《军事科技》
|
||||
[1m23s] 我是蓝皓
|
||||
[1m26s] 在人类出现之前
|
||||
[1m27s] 深海就是地球上
|
||||
[1m29s] 最残酷的竞技场
|
||||
[1m30s] 在这里生存的法则
|
||||
[1m32s] 只有两条
|
||||
[1m34s] 隐藏自己
|
||||
[1m35s] 发现敌人
|
||||
[1m37s] 深海依旧是地球上
|
||||
[1m39s] 最后的黑暗疆域
|
||||
[1m43s] 潜伏着人类工程学的杰作
|
||||
[1m46s] 也是终极的刺杀兵器
|
||||
[1m48s] 潜艇
|
||||
[1m51s] 提到潜艇
|
||||
[1m52s] 想必大家并不陌生
|
||||
[1m54s] 这样一头深海巨兽
|
||||
[1m56s] 从诞生至今
|
||||
[1m57s] 都借鉴了大自然中的
|
||||
[1m59s] 哪些动物的绝招呢
|
||||
[2m2s] 1776年9月7日
|
||||
[2m4s] 历史上第一次潜艇攻击开始了
|
||||
[2m9s] 这次攻击
|
||||
[2m10s] 是由埃兹拉·李来执行
|
||||
[2m12s] 他驾驶着“海龟”号
|
||||
[2m14s] 成功潜到英国战舰
|
||||
[2m15s] “鹰”号的尾部
|
||||
[2m17s] 接下去的工作
|
||||
[2m18s] 就是用钻头在敌舰上穿孔
|
||||
[2m21s] 以便固定炸药包
|
||||
[2m24s] 他打钻的地方
|
||||
[2m26s] 正好是一块金属板
|
||||
[2m28s] 半个小时之后
|
||||
[2m29s] 他仍然没有钻透敌舰
|
||||
[2m31s] 只好上浮返回
|
||||
[2m34s] 虽然“海龟”号
|
||||
[2m35s] 没有成功取得战果
|
||||
[2m37s] 但它拉开了
|
||||
[2m38s] 潜艇实战的序幕
|
||||
[2m41s] 从此
|
||||
[2m42s] 人类的战场
|
||||
[2m43s] 也随之从陆地
|
||||
[2m44s] 水面
|
||||
[2m45s] 发展到了水下
|
||||
[2m47s] “海龟”号
|
||||
[2m48s] 也凭借与现代潜艇相通的设计原理
|
||||
[2m51s] 获得了世界上
|
||||
[2m52s] 第一艘军用潜艇的称号
|
||||
[2m55s] 在世界潜艇发展史
|
||||
[2m57s] 占据了一席之地
|
||||
[3m0s] “海龟”号潜艇
|
||||
[3m1s] 顾名思义
|
||||
[3m2s] 它的外形很像海龟
|
||||
[3m4s] 舱内空气可供驾驶员
|
||||
[3m7s] 呼吸半个小时
|
||||
[3m9s] 在潜艇的上部
|
||||
[3m10s] 还装有两根通气管
|
||||
[3m12s] 以便上浮时打开
|
||||
[3m13s] 下沉时关闭
|
||||
[3m15s] 从而补充新鲜的空气
|
||||
[3m18s] “海龟”号潜艇之所以能够
|
||||
[3m20s] 成功地上浮下沉
|
||||
[3m22s] 离不开对一种美丽动物的
|
||||
[3m24s] 深刻学习
|
||||
[3m27s] 它就是鹦鹉螺
|
||||
[3m31s] 鹦鹉螺
|
||||
[3m32s] 它是一种海洋中的动物
|
||||
[3m35s] 非常地漂亮
|
||||
[3m36s] 外壳非常漂亮
|
||||
[3m37s] 但是你要到鹦鹉螺的内部
|
||||
[3m40s] 转一圈的话
|
||||
[3m41s] 它里边有很多的腔
|
||||
[3m43s] 就像我们在陆地上
|
||||
[3m46s] 看到的一个一个的小房子
|
||||
[3m48s] 在它的腔里边
|
||||
[3m49s] 人类正是学习了
|
||||
[3m51s] 鹦鹉螺的这种功能
|
||||
[3m53s] 在制造潜艇的过程中
|
||||
[3m56s] 就采用了水柜
|
||||
[3m58s] 水柜就是在这个
|
||||
[4m0s] 潜艇的艇壳的里边
|
||||
[4m3s] 筑成一个一个一个方块的
|
||||
[4m5s] 就是类似于储水的柜子
|
||||
[4m8s] 那么需要沉底的时候
|
||||
[4m10s] 就向水柜里边注水
|
||||
[4m12s] 水多了
|
||||
[4m13s] 沉了
|
||||
[4m14s] 潜艇就下沉到海底
|
||||
[4m19s] 在亿万年的进化中
|
||||
[4m20s] 鹦鹉螺
|
||||
[4m21s] 掌握了一种堪称完美的
|
||||
[4m23s] 浮力控制艺术
|
||||
[4m25s] 它的螺旋形外壳
|
||||
[4m27s] 被一系列隔膜
|
||||
[4m28s] 分隔成数十个独立的气室
|
||||
[4m30s] 如同一个精密的
|
||||
[4m32s] 多舱式潜水器
|
||||
[4m34s] 鹦鹉螺
|
||||
[4m35s] 能精确调节每个气室内液体
|
||||
[4m37s] 与气体的比例
|
||||
[4m39s] 分泌液体
|
||||
[4m40s] 进入气室时下沉
|
||||
[4m42s] 排出液体
|
||||
[4m43s] 让位给气体时上浮
|
||||
[4m46s] 这种精妙的生理机制
|
||||
[4m47s] 让它能在数百米的深海
|
||||
[4m50s] 与浅层水域之间
|
||||
[4m51s] 自如升降
|
||||
[4m53s] 几乎不消耗任何额外能量
|
||||
[4m56s] 人类潜艇的压载水舱系统
|
||||
[4m58s] 正是对这一自然智慧的完美复刻
|
||||
[5m1s] 当潜艇需要下潜时
|
||||
[5m3s] 阀门打开
|
||||
[5m4s] 海水涌入压载舱
|
||||
[5m6s] 取代舱内空气
|
||||
[5m8s] 艇体重量增加
|
||||
[5m10s] 当需要上浮时
|
||||
[5m12s] 高压气体
|
||||
[5m13s] 将海水强行排出
|
||||
[5m15s] 艇体重量减轻
|
||||
[5m18s] 1897年
|
||||
[5m19s] 一艘划时代的潜艇
|
||||
[5m20s] 悄然下水
|
||||
[5m23s] 这就是约翰·霍兰
|
||||
[5m24s] 以自己名字命名的
|
||||
[5m26s] 霍兰潜艇
|
||||
[5m28s] 这艘潜艇
|
||||
[5m29s] 汇集了众多开创式的设计
|
||||
[5m32s] 以往的潜艇
|
||||
[5m33s] 要么动力不足
|
||||
[5m34s] 要么水下姿态不稳
|
||||
[5m36s] 很难在实战中
|
||||
[5m37s] 发挥较大的作用
|
||||
[5m39s] 霍兰首次将压载舱
|
||||
[5m41s] 拆分为主舱与辅助舱
|
||||
[5m44s] 主压载舱
|
||||
[5m45s] 负责核心沉浮
|
||||
[5m47s] 而辅助舱
|
||||
[5m48s] 专攻姿态校准
|
||||
[5m49s] 能通过精准补水
|
||||
[5m51s] 维持平衡
|
||||
[5m52s] 精准调节潜深
|
||||
[5m54s] 解决了早期潜艇
|
||||
[5m55s] 纵倾失控的难题
|
||||
[5m58s] 这套系统
|
||||
[5m59s] 是现代潜艇操控系统的源头
|
||||
[6m2s] 这一设计
|
||||
[6m3s] 让潜艇
|
||||
[6m4s] 真正具备了实战价值
|
||||
[6m6s] 为深海作战开辟了道路
|
||||
[6m9s] 从霍兰潜艇压载舱的手动阀门
|
||||
[6m12s] 到现代潜艇压载舱的
|
||||
[6m14s] 计算机控制高压气系统
|
||||
[6m16s] 其核心原理始终未变
|
||||
[6m18s] 正如鹦鹉螺
|
||||
[6m20s] 用气体取代液体
|
||||
[6m22s] 潜艇用海水取代空气
|
||||
[6m25s] 这种能力
|
||||
[6m26s] 鹦鹉螺用了数亿年进化完成
|
||||
[6m28s] 而人类
|
||||
[6m29s] 只用了不到一百年
|
||||
[6m34s] 在广袤的海洋中
|
||||
[6m35s] 生存
|
||||
[6m36s] 是一场关乎看见
|
||||
[6m37s] 与不被看见的永恒竞赛
|
||||
[6m41s] 为了在这场竞赛中胜出
|
||||
[6m43s] 无数的海洋生物
|
||||
[6m44s] 进化出了一套精妙绝伦的
|
||||
[6m46s] 色彩伪装策略
|
||||
[6m48s] 这便是隐蔽色
|
||||
[6m51s] 像虎鲸
|
||||
[6m52s] 鲨鱼
|
||||
[6m53s] 这样一生与海洋打交道的生物
|
||||
[6m56s] 其背部往往呈现深蓝
|
||||
[6m58s] 深灰色
|
||||
[6m59s] 而其腹部通常是白色
|
||||
[7m2s] 或者是银白色
|
||||
[7m4s] 我们经常能够看到
|
||||
[7m6s] 一只从深海上浮的虎鲸
|
||||
[7m8s] 其白色的胸膛
|
||||
[7m9s] 在来自下方的视线中
|
||||
[7m11s] 几乎消失在明亮的天光里
|
||||
[7m14s] 而一只从上方
|
||||
[7m15s] 发起攻击的鲨鱼
|
||||
[7m16s] 其深色的背部
|
||||
[7m17s] 直到最后一刻
|
||||
[7m19s] 才会被发现
|
||||
[7m21s] 这套系统简单而高效
|
||||
[7m23s] 本质上是一种光学隐身衣
|
||||
[7m26s] 它抹平了生物体
|
||||
[7m27s] 在三维空间中的立体感
|
||||
[7m29s] 极大缩短了
|
||||
[7m30s] 不被天敌或者是猎物
|
||||
[7m32s] 发现的距离
|
||||
[7m34s] 海军工程师很快意识到
|
||||
[7m36s] 这正是潜艇在海洋中生存
|
||||
[7m38s] 所需要的第一层能力
|
||||
[7m43s] 一战时期
|
||||
[7m44s] 潜艇多活跃于浅海区域
|
||||
[7m47s] 主要面临目视侦察的威胁
|
||||
[7m51s] 各国率先借鉴海洋生物的
|
||||
[7m53s] 双色伪装逻辑
|
||||
[7m55s] 尝试用浅灰
|
||||
[7m56s] 绿蓝等颜色涂装艇身
|
||||
[7m59s] 试图让潜艇
|
||||
[8m0s] 融入近海的蓝灰色海水
|
||||
[8m4s] 模仿的正是虎鲸腹部
|
||||
[8m6s] 适配天光的浅色隐身思路
|
||||
[8m10s] 但早期设计
|
||||
[8m11s] 未能兼顾深浅海环境差异
|
||||
[8m14s] 效果变变
|
||||
[8m20s] 到了二战
|
||||
[8m21s] 德军和英军
|
||||
[8m22s] 则试验新的组合涂装
|
||||
[8m25s] 这些色彩既延续了
|
||||
[8m26s] 上部深色
|
||||
[8m28s] 下部浅色的仿生核心
|
||||
[8m30s] 又试图贴合
|
||||
[8m31s] 浅海藻类与海床环境
|
||||
[8m34s] 可一旦潜艇下潜深度增加
|
||||
[8m37s] 这套设计便迅速失效
|
||||
[8m41s] 阳光穿透海水层层衰减
|
||||
[8m44s] 深海本就是一片幽暗
|
||||
[8m47s] 浅色系艇身
|
||||
[8m48s] 反而成为显眼目标
|
||||
[8m50s] 更致命的是
|
||||
[8m52s] 早期涂料易被海水冲刷氧化
|
||||
[8m55s] 很快褪成乳白色
|
||||
[8m57s] 让仿生伪装彻底失效
|
||||
[9m8s] 真正的转折来自人类
|
||||
[9m10s] 对深海环境的深刻洞察
|
||||
[9m13s] 科学家发现
|
||||
[9m15s] 当深度超过200米
|
||||
[9m17s] 阳光完全消失
|
||||
[9m19s] 黑色
|
||||
[9m20s] 成为海洋的天然底色
|
||||
[9m23s] 这与鲨鱼深色背部
|
||||
[9m25s] 在深海中的隐身逻辑
|
||||
[9m27s] 不谋而合
|
||||
[9m29s] 于是纯黑色涂层
|
||||
[9m31s] 应运而生
|
||||
[9m32s] 它不仅能让潜艇
|
||||
[9m34s] 在幽暗海中
|
||||
[9m35s] 完美融入环境
|
||||
[9m37s] 消除视觉轮廓
|
||||
[9m39s] 更凭借改良配方
|
||||
[9m40s] 解决了褪色难题
|
||||
[9m42s] 成为潜艇光学隐身的
|
||||
[9m44s] 终极方案
|
||||
[9m51s] 因为我们讲
|
||||
[9m52s] 涂层主要是为了颜色
|
||||
[9m54s] 也就是视觉上
|
||||
[9m55s] 不被对手发现
|
||||
[9m57s] 那么很多的动物
|
||||
[9m59s] 都有一层保护层
|
||||
[10m1s] 我们在建造潜艇的时候
|
||||
[10m2s] 也是从自然界
|
||||
[10m5s] 或仿生学里边学到了
|
||||
[10m7s] 如何变化颜色
|
||||
[10m9s] 因为颜色如果涂在潜艇上
|
||||
[10m11s] 是很难随着环境变化的
|
||||
[10m14s] 所以我们就要考虑
|
||||
[10m15s] 潜艇它生存在
|
||||
[10m16s] 一个什么样的环境里边
|
||||
[10m18s] 所以随着潜艇以后
|
||||
[10m20s] 也就是越来越先进
|
||||
[10m23s] 它下潜的深度越来越深
|
||||
[10m25s] 我们发现黑颜色
|
||||
[10m27s] 在下潜以后
|
||||
[10m29s] 不容易被发现
|
||||
[10m30s] 可以把自己隐蔽得很好
|
||||
[10m32s] 所以后来的潜艇
|
||||
[10m34s] 也就是
|
||||
[10m35s] 在二次大战以后的潜艇
|
||||
[10m37s] 逐步逐步地就往黑色上靠近
|
||||
[10m40s] 而现在
|
||||
[10m41s] 世界各国的潜艇
|
||||
[10m42s] 基本上全都涂成了黑颜色
|
||||
[10m46s] 然而在深海
|
||||
[10m48s] 仅仅看不见
|
||||
[10m49s] 还远远不够
|
||||
[10m51s] 随着潜艇潜得更深
|
||||
[10m53s] 航行时间更长
|
||||
[10m54s] 真正致命的威胁
|
||||
[10m56s] 开始从光线转移到声音
|
||||
[11m2s] 我听到它了
|
||||
[11m11s] 找到它了 目标很近 正右舷083
|
||||
[11m19s] 声音
|
||||
[11m20s] 是深海中传播最远
|
||||
[11m22s] 最难隐蔽的信号
|
||||
[11m24s] 一丝多余的噪声
|
||||
[11m26s] 就可能暴露位置
|
||||
[11m27s] 招来猎杀
|
||||
[11m33s] 于是
|
||||
[11m34s] 潜艇的隐身逻辑
|
||||
[11m35s] 也从颜色升级到了形态
|
||||
[11m38s] 潜艇的外形
|
||||
[11m40s] 并非一开始
|
||||
[11m41s] 就是今天的样子
|
||||
[11m43s] 很长一段时间里
|
||||
[11m44s] 它更像是一艘
|
||||
[11m45s] 能够下潜的水面舰艇
|
||||
[11m48s] 二战时期的潜艇
|
||||
[11m49s] 需要频繁浮出水面航行
|
||||
[11m52s] 水下只是暂时藏身之所
|
||||
[11m55s] 因此艇体高耸
|
||||
[11m57s] 结构复杂
|
||||
[11m58s] 水下阻力大
|
||||
[11m59s] 噪声高
|
||||
[12m1s] 真正的转折
|
||||
[12m2s] 发生在核动力出现之后
|
||||
[12m5s] 当潜艇可以长期潜航
|
||||
[12m7s] 人类第一次开始
|
||||
[12m9s] 只为水下生存
|
||||
[12m10s] 来设计它的形状
|
||||
[12m12s] 工程师将目光
|
||||
[12m14s] 投向自然界
|
||||
[12m15s] 鲸类
|
||||
[12m16s] 海豚等高速游泳动物
|
||||
[12m19s] 几乎都拥有同一种外形
|
||||
[12m21s] 前圆后尖的水滴形
|
||||
[12m24s] 1950年
|
||||
[12m25s] 美国“大青花鱼”号实验潜艇
|
||||
[12m28s] 验证了这一答案
|
||||
[12m30s] 水滴型艇体
|
||||
[12m31s] 显著降低阻力和流噪
|
||||
[12m34s] 让潜艇更快 更安静
|
||||
[12m36s] 也难被发现
|
||||
[12m38s] 从此
|
||||
[12m39s] 现代潜艇的外形
|
||||
[12m41s] 几乎统一
|
||||
[12m42s] 当潜艇的外形
|
||||
[12m44s] 已经足够像一条鱼
|
||||
[12m46s] 真正的较量才刚刚开始
|
||||
[12m49s] 接下来要隐藏的
|
||||
[12m51s] 不再是轮廓
|
||||
[12m52s] 而是声音本身
|
||||
[12m57s] 生物界
|
||||
[12m58s] 鲨鱼的速度非常快
|
||||
[13m0s] 因为在水中
|
||||
[13m1s] 它可以
|
||||
[13m3s] 以非常高的速度前进
|
||||
[13m5s] 实际上
|
||||
[13m6s] 它除了形体的这种流线型以外
|
||||
[13m9s] 还有就是它的皮肤
|
||||
[13m11s] 为什么我们很多的游泳运动员
|
||||
[13m13s] 所采用的游泳衣或游泳裤
|
||||
[13m16s] 采用的是叫所谓鲨鱼皮呢
|
||||
[13m19s] 就是借鉴了鲨鱼的
|
||||
[13m21s] 它皮肤上的这种V字形
|
||||
[13m23s] 也就是它在前进的时候
|
||||
[13m25s] 水流是顺着
|
||||
[13m27s] 箭头的方向向后流的
|
||||
[13m29s] 减少了阻力
|
||||
[13m31s] 减少了就是水
|
||||
[13m32s] 与鲨鱼皮肤的摩擦的声音
|
||||
[13m35s] 然后使它快速地前行
|
||||
[13m37s] 既减少了阻力
|
||||
[13m38s] 又降低了声音
|
||||
[13m40s] 所以我们在建造潜艇的时候
|
||||
[13m42s] 也借鉴了这样的情况
|
||||
[13m45s] 或者是说借鉴了这种功能
|
||||
[13m48s] 我们在材料上
|
||||
[13m49s] 采取一些特殊的材料
|
||||
[13m51s] 因为在深海大洋里边
|
||||
[13m54s] 这种材料
|
||||
[13m55s] 就是我们讲的这种消声瓦
|
||||
[13m58s] 因为消声瓦既要保证
|
||||
[14m0s] 它在水中
|
||||
[14m3s] 能够把噪音裹在潜艇里边
|
||||
[14m7s] 不被对方探测到
|
||||
[14m8s] 同时它也要像鲨鱼的皮肤一样
|
||||
[14m11s] 有一些减少与水的
|
||||
[14m14s] 这种摩擦和阻力
|
||||
[14m16s] 来使这个声音降低
|
||||
[14m19s] 也就是潜艇在高速航行的时候
|
||||
[14m21s] 要降低它与水的摩擦的声音
|
||||
[14m25s] 这样的话可以进一步地
|
||||
[14m27s] 使我们的潜艇
|
||||
[14m29s] 就是像鲨鱼一样
|
||||
[14m30s] 悄然无声地在水中行进
|
||||
[14m34s] 海豚的皮肤
|
||||
[14m36s] 能够分泌一种特殊黏液
|
||||
[14m38s] 使水流紧贴体表滑行
|
||||
[14m40s] 从而减少湍流与阻力
|
||||
[14m43s] 而更为人熟知的
|
||||
[14m45s] 是鲨鱼的皮肤结构
|
||||
[14m47s] 鲨鱼体表
|
||||
[14m48s] 覆盖着无数微小的V型盾鳞
|
||||
[14m52s] 这些看似粗糙的纹理
|
||||
[14m54s] 反而能打散涡流
|
||||
[14m55s] 抑制水流紊乱
|
||||
[14m57s] 大幅降低摩擦阻力
|
||||
[15m0s] 潜艇工程师
|
||||
[15m1s] 从中得到启发
|
||||
[15m3s] 在现代潜艇的消声瓦表面
|
||||
[15m6s] 常会设计出
|
||||
[15m7s] 类似的微沟槽
|
||||
[15m8s] 或者细微纹理
|
||||
[15m10s] 这种被称为沟槽面
|
||||
[15m12s] 或仿鲨鱼皮的结构
|
||||
[15m14s] 并不仅仅是为了
|
||||
[15m15s] 让潜艇航行得更省力
|
||||
[15m18s] 更重要的是
|
||||
[15m19s] 它能够有效降低水流
|
||||
[15m21s] 掠过躯体时产生的流噪声
|
||||
[15m24s] 让潜艇在深海中
|
||||
[15m26s] 变得更安静
|
||||
[15m27s] 也更加致命
|
||||
[15m29s] 海豚在浑浊的海水中
|
||||
[15m31s] 能够准确地找到小鱼
|
||||
[15m33s] 还能分辨出哪条更加肥美
|
||||
[15m36s] 这种能力来自它们独特的
|
||||
[15m38s] 水下视觉生物声呐
|
||||
[15m41s] 当海豚发出
|
||||
[15m43s] 咔嗒咔嗒的声音时
|
||||
[15m44s] 这些声波
|
||||
[15m45s] 就像无形的探照灯向前发射
|
||||
[15m49s] 声音遇到物体产生回声
|
||||
[15m51s] 海豚通过下颚
|
||||
[15m53s] 接收这些回声
|
||||
[15m54s] 就能在脑海中
|
||||
[15m56s] 描绘出周围环境的立体图像
|
||||
[16m0s] 它们能够听出
|
||||
[16m1s] 藏在泥沙里的两条鱼
|
||||
[16m3s] 哪条更加肥美
|
||||
[16m5s] 前方是岩石还是海草
|
||||
[16m8s] 这种能力
|
||||
[16m9s] 让任何人工声呐都望尘莫及
|
||||
[16m13s] 人类从海豚身上
|
||||
[16m14s] 获得了灵感
|
||||
[16m16s] 发明了声呐技术
|
||||
[16m19s] 二战爆发后
|
||||
[16m20s] 德国U型潜艇
|
||||
[16m22s] 再次成为海战中的核心力量
|
||||
[16m25s] 在广阔的大西洋上
|
||||
[16m27s] 它们潜伏在航道附近
|
||||
[16m29s] 利用夜色和水下掩护
|
||||
[16m31s] 对盟军运输船队
|
||||
[16m33s] 发动突然袭击
|
||||
[16m35s] 单艘潜艇就足以瘫痪
|
||||
[16m37s] 一整条补给线
|
||||
[16m39s] 对英国而言
|
||||
[16m40s] 这不仅是军事问题
|
||||
[16m42s] 更是生存危机
|
||||
[16m45s] 装备
|
||||
[16m46s] 军需
|
||||
[16m47s] 几乎全部依赖海上运输
|
||||
[16m50s] 而水下的敌人却始终看不见
|
||||
[16m53s] 面对潜艇带来的巨大压力
|
||||
[16m56s] 英国海军被迫改变思路
|
||||
[16m58s] 不再依赖目视搜索
|
||||
[17m0s] 而是尝试在深海中
|
||||
[17m2s] 倾听敌人的存在
|
||||
[17m4s] 以水听器为基础
|
||||
[17m6s] 配合主动声波探测
|
||||
[17m7s] 声呐系统
|
||||
[17m9s] 逐步成型
|
||||
[17m11s] 并率先装备在
|
||||
[17m12s] 驱逐舰和护卫舰上
|
||||
[17m15s] 在护航战例中
|
||||
[17m17s] 第一次实现了对潜艇的
|
||||
[17m19s] 稳定定位
|
||||
[17m21s] 使深水炸弹不再是盲目投掷
|
||||
[17m24s] 而成为有目标的打击
|
||||
[17m27s] 随着反潜技术的成熟
|
||||
[17m29s] 曾经游刃有余的U型潜艇
|
||||
[17m31s] 开始频繁暴露行踪
|
||||
[17m33s] 损失不断增加
|
||||
[17m36s] 大西洋的海战
|
||||
[17m37s] 从潜艇的单方面猎杀
|
||||
[17m39s] 逐渐演变成一场
|
||||
[17m41s] 围绕隐蔽与探测的
|
||||
[17m43s] 技术对抗
|
||||
[17m45s] 而这一技术
|
||||
[17m46s] 正是源自大自然中的
|
||||
[17m48s] 生物声呐
|
||||
[17m51s] 那么说到声呐
|
||||
[17m53s] 就涉及到一个有趣的知识
|
||||
[17m56s] 潜艇在水下航行时
|
||||
[17m58s] 由于水的密度
|
||||
[17m59s] 是空气密度的大约800倍
|
||||
[18m2s] 导致雷达电磁波
|
||||
[18m3s] 通讯电磁波
|
||||
[18m4s] 无法穿透海水
|
||||
[18m7s] 严谨地来说
|
||||
[18m8s] 就是被海水快速地吸收
|
||||
[18m10s] 传不远
|
||||
[18m11s] 因此
|
||||
[18m12s] 声呐就成为了潜艇的主要探测工具
|
||||
[18m16s] 声呐的本质
|
||||
[18m17s] 是一个经过微调的耳朵
|
||||
[18m19s] 它的工作原理
|
||||
[18m20s] 类似于鲸鱼或海豚的回声定位
|
||||
[18m24s] 根据工作类型
|
||||
[18m25s] 声呐可分为
|
||||
[18m26s] 主动声呐和被动声呐
|
||||
[18m29s] 主动声呐模式
|
||||
[18m30s] 需要潜艇主动发射声呐信号
|
||||
[18m33s] 声呐信号接触到目标后会反射回来
|
||||
[18m37s] 再被潜艇捕捉
|
||||
[18m39s] 但在战争中
|
||||
[18m40s] 这不是一个明智的决策
|
||||
[18m42s] 因为这种探索
|
||||
[18m43s] 就像黑夜中打开手电筒
|
||||
[18m46s] 照亮目标的同时
|
||||
[18m47s] 也暴露了自己
|
||||
[18m49s] 而被动声响模式
|
||||
[18m51s] 是静默航行
|
||||
[18m53s] 利用被动声呐基阵
|
||||
[18m54s] 接收对方的主动声呐探测信号
|
||||
[18m57s] 来确定对手位置
|
||||
[18m59s] 被动声响模式下
|
||||
[19m1s] 潜艇不会暴露目标
|
||||
[19m3s] 隐蔽性好
|
||||
[19m5s] 声呐
|
||||
[19m6s] 作为动物界里边
|
||||
[19m7s] 海豚
|
||||
[19m9s] 是有它特异的功能
|
||||
[19m11s] 因为海豚
|
||||
[19m12s] 它是从嘴里
|
||||
[19m13s] 发出不同的声响
|
||||
[19m15s] 然后声响传出去以后
|
||||
[19m18s] 如果撞在礁石上
|
||||
[19m20s] 就是海底的礁石上
|
||||
[19m22s] 会反射回来一个回波
|
||||
[19m24s] 它用嘴巴下面的接收器
|
||||
[19m28s] 去把这个声音接收到
|
||||
[19m30s] 然后判定这是石头还是鱼类
|
||||
[19m33s] 如果它的发出去的声音
|
||||
[19m37s] 撞上的是鱼类
|
||||
[19m39s] 它的回声
|
||||
[19m41s] 是和撞在岩石上的声音不同的
|
||||
[19m44s] 而且它收到的回波
|
||||
[19m47s] 也就是声音传播
|
||||
[19m50s] 回波在水里传的
|
||||
[19m51s] 因为很远
|
||||
[19m53s] 它接收下来就可以分辨出来
|
||||
[19m55s] 这是它捕食的猎物了
|
||||
[19m59s] 那么既然
|
||||
[20m0s] 海豚有这么好的这种功能
|
||||
[20m4s] 也就类似于声呐的功能
|
||||
[20m6s] 人类就向它们学习
|
||||
[20m8s] 就仿制了这种声响
|
||||
[20m10s] 这就是主动声响
|
||||
[20m12s] 也就是当我的潜艇
|
||||
[20m14s] 航行的时候
|
||||
[20m15s] 我不断地通过
|
||||
[20m17s] 我的声呐向外释放声波
|
||||
[20m21s] 当这些声波
|
||||
[20m23s] 放到海洋里边去之后
|
||||
[20m25s] 它会一去不复返
|
||||
[20m26s] 但是如果这些声波
|
||||
[20m29s] 撞击到了
|
||||
[20m30s] 对方的潜艇或者是舰艇
|
||||
[20m33s] 或者是海底的这些礁石
|
||||
[20m36s] 它反射回来的声波是不一样的
|
||||
[20m38s] 这样就凭借我们声呐兵
|
||||
[20m41s] 来收到的回波
|
||||
[20m43s] 判断前面是金属
|
||||
[20m46s] 还是石头还是洋流
|
||||
[20m49s] 这是一艘
|
||||
[20m50s] 弗吉尼亚级攻击核潜艇
|
||||
[20m53s] 潜艇的艇艙
|
||||
[20m54s] 布置着大型声呐阵列
|
||||
[20m56s] 在早期批次上
|
||||
[20m58s] 它呈现为球形结构
|
||||
[21m0s] 它始终对前方海域
|
||||
[21m2s] 进行持续探测
|
||||
[21m4s] 通过分析回波的时间与特征
|
||||
[21m7s] 潜艇
|
||||
[21m8s] 能够判断目标的距离
|
||||
[21m10s] 方位
|
||||
[21m11s] 并对水下接触进行初步识别
|
||||
[21m14s] 沿着艇体左右两侧
|
||||
[21m16s] 分布着舷侧声呐阵列
|
||||
[21m19s] 海豚身体两侧的侧线系统
|
||||
[21m22s] 负责监听来自各个方向的
|
||||
[21m24s] 细微声学变化
|
||||
[21m26s] 即使潜艇保持静默状态
|
||||
[21m28s] 不主动发声
|
||||
[21m30s] 这些阵列依然能够捕捉
|
||||
[21m32s] 远处螺旋桨的低频噪声
|
||||
[21m34s] 以及水流扰动形成的异常信号
|
||||
[21m38s] 在潜艇尾部
|
||||
[21m39s] 一条细长的
|
||||
[21m40s] 拖曳声呐阵列被放出
|
||||
[21m43s] 这是弗吉尼亚级
|
||||
[21m44s] 最重要的远程感知手段之一
|
||||
[21m47s] 它远离艇体自身的噪声干扰
|
||||
[21m50s] 将潜艇的声觉
|
||||
[21m52s] 延伸到更远的海域
|
||||
[21m54s] 用于发现极其微弱
|
||||
[21m55s] 距离极远的水下目标
|
||||
[21m58s] 艇舯声呐
|
||||
[21m59s] 舷侧阵列
|
||||
[22m0s] 与拖曳声呐协同工作
|
||||
[22m3s] 使这艘潜艇
|
||||
[22m4s] 即使在完全隐蔽的状态下
|
||||
[22m6s] 也能构建起一幅
|
||||
[22m8s] 连续立体的水下态势图
|
||||
[22m13s] 当生存受到直接威胁时
|
||||
[22m16s] 顶尖的猎手
|
||||
[22m17s] 与最先进的武器
|
||||
[22m18s] 都诉诸同一种策略
|
||||
[22m21s] 制造混乱
|
||||
[22m22s] 隐藏本体
|
||||
[22m24s] 当乌贼遇到危险时
|
||||
[22m26s] 会迅速喷出浓密的墨汁
|
||||
[22m29s] 它并非简单的黑色液体
|
||||
[22m31s] 它在海水中会迅速扩散
|
||||
[22m33s] 形成一个与自身形态相似的
|
||||
[22m36s] 浓密的墨汁伪影
|
||||
[22m39s] 这个深色轮廓能够立即吸引
|
||||
[22m41s] 并且锁定捕食者的
|
||||
[22m43s] 视觉注意力
|
||||
[22m44s] 为真身的逃离
|
||||
[22m46s] 创造关键的时间窗口
|
||||
[22m49s] 潜艇工程师
|
||||
[22m50s] 完美地借鉴了这套
|
||||
[22m52s] 复杂的求生系统
|
||||
[22m54s] 并将其转化为防御装备
|
||||
[22m57s] 声学诱饵
|
||||
[22m59s] 潜艇感知到来袭的
|
||||
[23m1s] 声自导鱼雷
|
||||
[23m2s] 或者敌方主动声响锁定时
|
||||
[23m5s] 会从发射管
|
||||
[23m6s] 快速射出声学诱饵
|
||||
[23m8s] 它是潜艇的一种高电子替身
|
||||
[23m12s] 声学诱饵
|
||||
[23m13s] 通常是一个自航式的
|
||||
[23m15s] 水下航行器
|
||||
[23m16s] 被发射后
|
||||
[23m17s] 它会精确模仿母艇的
|
||||
[23m19s] 发动机噪声
|
||||
[23m21s] 螺旋桨节拍等
|
||||
[23m22s] 独特的声学指纹
|
||||
[23m24s] 还会主动航行
|
||||
[23m26s] 制造出比气幕弹
|
||||
[23m28s] 更像一艘真实潜艇的
|
||||
[23m29s] 移动声学目标
|
||||
[23m31s] 来袭的智能鱼雷
|
||||
[23m33s] 能够区分简单的气泡幕
|
||||
[23m35s] 和复杂的潜艇噪声
|
||||
[23m37s] 声学诱饵
|
||||
[23m38s] 通过发出更具吸引力的
|
||||
[23m40s] 听觉陷阱
|
||||
[23m41s] 引诱鱼雷偏离航道
|
||||
[23m43s] 转而追踪并攻击这个替身
|
||||
[23m47s] 而这些诱饵的发现
|
||||
[23m50s] 实际上就是根据海洋动物
|
||||
[23m52s] 它一些保护自己的这些方式
|
||||
[23m55s] 来学习的
|
||||
[23m56s] 因为它们要么金蝉脱壳
|
||||
[23m58s] 要么以假乱真
|
||||
[24m2s] 所以我们看
|
||||
[24m3s] 随着人工智能的发现
|
||||
[24m5s] 随着我们无人装备的发现
|
||||
[24m9s] 我们就制造了
|
||||
[24m11s] 不同的这种诱饵
|
||||
[24m13s] 主动的 被动的
|
||||
[24m15s] 总之当发现潜艇
|
||||
[24m17s] 被攻击或被人发觉的时候
|
||||
[24m19s] 就扔出一个假目标
|
||||
[24m21s] 向不同的方向
|
||||
[24m22s] 甚至是相反的方向来行进
|
||||
[24m25s] 让它的鱼雷
|
||||
[24m26s] 让它的追踪的设备
|
||||
[24m28s] 去跟踪假目标
|
||||
[24m30s] 而真正的潜艇
|
||||
[24m31s] 悄悄地就逃生了
|
||||
[24m34s] 控制室 这里是声响室
|
||||
[24m35s] 水中有鱼雷 方位241
|
||||
[24m38s] 高速前进 右满舵
|
||||
[24m42s] 找到它了 目标很近 正右舷083
|
||||
[24m49s] 发射5英寸的反鱼雷诱饵
|
||||
[24m51s] 发射反鱼雷诱饵
|
||||
[25m9s] 这套系统
|
||||
[25m10s] 在实战与对抗演练中
|
||||
[25m12s] 屡建奇功
|
||||
[25m14s] 其核心战术
|
||||
[25m15s] 都与数百万年前的乌贼
|
||||
[25m17s] 如出一辙
|
||||
[25m19s] 乌贼用一团墨汁
|
||||
[25m21s] 换取生存的时间
|
||||
[25m23s] 人类则用电子替身
|
||||
[25m25s] 把这一秒无限放大
|
||||
[25m28s] 当深海的幽灵收起獠牙
|
||||
[25m31s] 当猎杀者的声响归于沉寂
|
||||
[25m34s] 这片蔚蓝疆域的博弈
|
||||
[25m36s] 却从未停止
|
||||
[25m38s] 从鹦鹉螺的浮力控制
|
||||
[25m40s] 到核潜艇的无限续航
|
||||
[25m42s] 从乌贼的墨汁
|
||||
[25m43s] 到潜艇的电子诱饵
|
||||
[25m46s] 我们见证了一场
|
||||
[25m47s] 跨越数亿年的
|
||||
[25m48s] 军事科技进化
|
||||
[25m51s] 自然用漫长的时光
|
||||
[25m52s] 雕琢出生存的智慧
|
||||
[25m54s] 人类用智慧在钢铁中
|
||||
[25m57s] 复刻这些法则
|
||||
[25m59s] 这不仅是矛与盾的较量
|
||||
[26m1s] 更是对生命本身
|
||||
[26m3s] 最深刻的学习
|
||||
[26m5s] 下一场改变游戏规则的技术革命
|
||||
[26m8s] 或许正在随着
|
||||
[26m9s] 某只深海生物的游弋
|
||||
[26m11s] 在黑暗中悄然酝酿
|
||||
[26m15s] 感谢您持续关注
|
||||
[26m16s] 国防军事频道《军事科技》
|
||||
[26m19s] 我们下周同一时间
|
||||
[26m20s] 再见
|
||||
@@ -0,0 +1,43 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""去重 ocr_raw.jsonl: 每个 idx 只保留第一条"""
|
||||
import json, os
|
||||
from pathlib import Path
|
||||
|
||||
WORK_DIR = Path(__file__).resolve().parent
|
||||
src = WORK_DIR / "ocr_raw.jsonl"
|
||||
dst = WORK_DIR / "ocr_raw_clean.jsonl"
|
||||
|
||||
sys_out_ok = False
|
||||
try:
|
||||
import sys
|
||||
sys.stdout.reconfigure(encoding="utf-8", errors="replace")
|
||||
sys_out_ok = True
|
||||
except:
|
||||
pass
|
||||
|
||||
lines = [l for l in src.read_text(encoding="utf-8").strip().split("\n") if l.strip()]
|
||||
seen = set()
|
||||
deduped = []
|
||||
for l in lines:
|
||||
rec = json.loads(l)
|
||||
idx = rec.get("idx")
|
||||
if idx not in seen:
|
||||
seen.add(idx)
|
||||
deduped.append(l)
|
||||
|
||||
deduped.sort(key=lambda x: json.loads(x).get("idx", 0))
|
||||
|
||||
# write to clean file
|
||||
dst.write_text("\n".join(deduped) + "\n", encoding="utf-8")
|
||||
print(f"deduped: {len(lines)} -> {len(deduped)} lines")
|
||||
|
||||
# verify clean file
|
||||
v = dst.read_text(encoding="utf-8").strip().split("\n")
|
||||
print(f"verify clean: {len(v)} lines")
|
||||
|
||||
# replace original
|
||||
os.replace(str(dst), str(src))
|
||||
|
||||
# verify original
|
||||
v2 = src.read_text(encoding="utf-8").strip().split("\n")
|
||||
print(f"verify original: {len(v2)} lines, {src.stat().st_size//1024}KB")
|
||||
@@ -0,0 +1,19 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""将 A稿 docx 转为 txt 供 doco terms 使用"""
|
||||
from docx import Document
|
||||
from pathlib import Path
|
||||
|
||||
ep_dir = Path(__file__).resolve().parent
|
||||
docx_files = list(ep_dir.glob("*.docx"))
|
||||
if not docx_files:
|
||||
raise FileNotFoundError(f"在 {ep_dir} 下找不到 .docx 文件")
|
||||
|
||||
docx_file = docx_files[0]
|
||||
print(f"Reading: {docx_file.name}")
|
||||
|
||||
doc = Document(str(docx_file))
|
||||
text = "\n".join(p.text for p in doc.paragraphs)
|
||||
|
||||
out_file = ep_dir / "A稿.txt"
|
||||
out_file.write_text(text, encoding="utf-8")
|
||||
print(f"Written: {out_file} ({len(text)} chars, {len(text.splitlines())} lines)")
|
||||
@@ -0,0 +1,27 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""调用 doco compose 命令"""
|
||||
import subprocess
|
||||
from pathlib import Path
|
||||
|
||||
ep_dir = Path(__file__).resolve().parent
|
||||
repo_root = ep_dir.parent.parent # doco/programs/ep002... -> tps-dashboard
|
||||
|
||||
episode_id = ep_dir.name
|
||||
|
||||
cmd = [
|
||||
"doco", "compose",
|
||||
"--episode-id", episode_id,
|
||||
]
|
||||
|
||||
print(f"Running: doco compose --episode-id {episode_id}")
|
||||
print(f"CWD: {repo_root}")
|
||||
|
||||
result = subprocess.run(
|
||||
cmd,
|
||||
cwd=str(repo_root),
|
||||
shell=True,
|
||||
encoding="utf-8",
|
||||
errors="replace",
|
||||
)
|
||||
|
||||
print(f"\nExit code: {result.returncode}")
|
||||
@@ -0,0 +1,28 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""调用 doco fuse 命令"""
|
||||
import subprocess
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
ep_dir = Path(__file__).resolve().parent
|
||||
repo_root = ep_dir.parent.parent # doco/programs/ep002... -> tps-dashboard
|
||||
|
||||
episode_id = ep_dir.name
|
||||
|
||||
cmd = [
|
||||
"doco", "fuse",
|
||||
"--episode-id", episode_id,
|
||||
]
|
||||
|
||||
print(f"Running: doco fuse --episode-id {episode_id}")
|
||||
print(f"CWD: {repo_root}")
|
||||
|
||||
result = subprocess.run(
|
||||
cmd,
|
||||
cwd=str(repo_root),
|
||||
shell=True,
|
||||
encoding="utf-8",
|
||||
errors="replace",
|
||||
)
|
||||
|
||||
print(f"\nExit code: {result.returncode}")
|
||||
@@ -0,0 +1,31 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""调用 doco terms 命令"""
|
||||
import subprocess
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
ep_dir = Path(__file__).resolve().parent
|
||||
repo_root = ep_dir.parent.parent # doco/programs/ep002... -> tps-dashboard
|
||||
|
||||
a_script = ep_dir / "A稿.txt"
|
||||
episode_id = ep_dir.name
|
||||
|
||||
# Use doco CLI directly
|
||||
cmd = [
|
||||
"doco", "terms",
|
||||
"--episode-id", episode_id,
|
||||
"--a-script", str(a_script),
|
||||
]
|
||||
|
||||
print(f"Running: doco terms --episode-id {episode_id} --a-script {a_script}")
|
||||
print(f"CWD: {repo_root}")
|
||||
|
||||
result = subprocess.run(
|
||||
cmd,
|
||||
cwd=str(repo_root),
|
||||
shell=True,
|
||||
encoding="utf-8",
|
||||
errors="replace",
|
||||
)
|
||||
|
||||
print(f"\nExit code: {result.returncode}")
|
||||
@@ -0,0 +1,25 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""轮询等待 C4 compose 完成"""
|
||||
import time
|
||||
from pathlib import Path
|
||||
|
||||
ep_dir = Path(r"E:\tps-dashboard\doco\programs\ep002_20260127_qianting_fangsheng")
|
||||
cache_dir = ep_dir / ".c4_cache"
|
||||
docx_out = ep_dir / "融合A稿.docx"
|
||||
|
||||
while True:
|
||||
if not cache_dir.exists():
|
||||
print(f"[{time.strftime('%H:%M:%S')}] .c4_cache not yet, waiting 30s...")
|
||||
time.sleep(30)
|
||||
continue
|
||||
|
||||
n = len(list(cache_dir.iterdir()))
|
||||
print(f"[{time.strftime('%H:%M:%S')}] cache batches: {n}")
|
||||
|
||||
if docx_out.exists():
|
||||
print(f"\n融合A稿.docx exists! ({docx_out.stat().st_size} bytes)")
|
||||
break
|
||||
|
||||
time.sleep(120)
|
||||
|
||||
print("Done.")
|
||||
@@ -0,0 +1,24 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""轮询等待 C4 compose 完成"""
|
||||
import time
|
||||
from pathlib import Path
|
||||
|
||||
ep_dir = Path(r"E:\tps-dashboard\doco\programs\ep002_20260127_qianting_fangsheng")
|
||||
cache_dir = ep_dir / ".c4_cache"
|
||||
|
||||
# Find docx output dynamically
|
||||
while True:
|
||||
n = len(list(cache_dir.iterdir())) if cache_dir.exists() else 0
|
||||
# Check for any 融合A稿 docx
|
||||
docx_files = list(ep_dir.glob("*融合A稿.docx"))
|
||||
csv_files = list(ep_dir.glob("c4_alignment.csv"))
|
||||
|
||||
print(f"[{time.strftime('%H:%M:%S')}] cache={n}, docx={bool(docx_files)}, csv={bool(csv_files)}")
|
||||
|
||||
if docx_files and csv_files:
|
||||
print(f"\nDone! docx={docx_files[0]}, csv={csv_files[0]}")
|
||||
break
|
||||
|
||||
time.sleep(90)
|
||||
|
||||
print("Complete.")
|
||||
@@ -0,0 +1,40 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""轮询等待 C3 fusion 完成"""
|
||||
import os
|
||||
import time
|
||||
from pathlib import Path
|
||||
|
||||
ep_dir = Path(r"E:\tps-dashboard\doco\programs\ep002_20260127_qianting_fangsheng")
|
||||
cache_dir = ep_dir / ".c3_cache"
|
||||
expected_batches = 21 # 733 / 35
|
||||
|
||||
while True:
|
||||
if not cache_dir.exists():
|
||||
print("Cache dir not yet created, waiting 30s...")
|
||||
time.sleep(30)
|
||||
continue
|
||||
|
||||
n = len(list(cache_dir.iterdir()))
|
||||
print(f"[{time.strftime('%H:%M:%S')}] Cache batches: {n}/{expected_batches}")
|
||||
|
||||
# Check if output file exists (fusion complete)
|
||||
fuse_out = ep_dir / "融合B稿.txt"
|
||||
if fuse_out.exists():
|
||||
print(f"\n融合B稿.txt exists! ({fuse_out.stat().st_size} bytes)")
|
||||
break
|
||||
|
||||
# Check if background process log indicates completion
|
||||
log_dir = Path(r"C:\Users\Lenovo\AppData\Local\Temp\cline")
|
||||
log_files = sorted(log_dir.glob("background-*.log"), key=lambda f: f.stat().st_mtime, reverse=True)
|
||||
for lf in log_files[:3]:
|
||||
content = lf.read_text(encoding="utf-8", errors="replace")
|
||||
if "[ok] doco fuse" in content or "Exit code" in content:
|
||||
print(f"\nBackground process completed (found in {lf.name})")
|
||||
print(content[-1000:])
|
||||
break
|
||||
else:
|
||||
time.sleep(60)
|
||||
continue
|
||||
break
|
||||
|
||||
print("Done waiting.")
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,411 @@
|
||||
[0m6s] 在浩瀚海洋深处数亿年的进化,
|
||||
[0m10s] 塑造了无数神奇的攻防利器。
|
||||
[0m13s] 如今的人类
|
||||
[0m14s] 用钢铁和电路重新发明了这一切,
|
||||
[0m18s] 当潜艇披上鲨鱼皮消声瓦,
|
||||
[0m22s] 当声呐模仿海豚,看穿黑暗。
|
||||
[0m26s] 当乌贼的墨汁化作潜艇的电子替身,
|
||||
[0m29s] 自然早已写好了深海中生存与猎杀的终极教科书。
|
||||
[0m38s] 本期军事科技带您见证茫茫深海中潜艇的仿生之路。
|
||||
[1m20s] 各位观众你们好,欢迎收看军事科技,我是蓝皓。
|
||||
[1m25s] 在人类出现之前,啊深海就是地球上最残酷的竞技场,
|
||||
[1m30s] 在这里生存的法则只有两条,
|
||||
[1m33s] 隐藏自己,
|
||||
[1m34s] 发现敌人。
|
||||
[1m36s] 而如今深海依旧是地球上最后的
|
||||
[1m40s] 黑暗战场,
|
||||
[1m42s] 在这里潜伏着人类工程学的杰作,
|
||||
[1m45s] 也是终极的刺杀兵器。
|
||||
[1m48s] 潜艇
|
||||
[1m50s] 提到潜艇,啊想必大家呢并不陌生,
|
||||
[1m53s] 那么这样一头深海巨兽从诞生至今,
|
||||
[1m57s] 都借鉴了大自然中的哪些动物的
|
||||
[2m0s] 绝招。
|
||||
[2m1s] 呢
|
||||
[2m2s] 1776年9月7日,
|
||||
[2m4s] 历史上第一次潜艇攻击开始了,
|
||||
[2m8s] 这次攻击是由艾兹拉里来执行,
|
||||
[2m12s] 他驾驶着海龟号成功潜到英国战舰鹰号的尾部,
|
||||
[2m17s] 接下去的工作就是用钻头在敌舰上穿孔以便固定炸药包,
|
||||
[2m23s] 但是他打钻的地方正好是一块金属板,
|
||||
[2m27s] 半个小时之后他仍然没有钻透敌舰,
|
||||
[2m30s] 只好上浮返回。
|
||||
[2m34s] 虽然海龟号没有成功取得战果,
|
||||
[2m37s] 但它拉开了潜艇实战的序幕。
|
||||
[2m41s] 从此人类的战场也随之从陆地
|
||||
[2m44s] 水面发展到了水下。
|
||||
[2m47s] 海龟号也凭借与现代潜艇相通的设计原理,
|
||||
[2m51s] 获得了世界上第一艘军用潜艇的称号,
|
||||
[2m54s] 在世界潜艇发展史占据了一席之地。
|
||||
[2m59s] 海龟号潜艇
|
||||
[3m1s] 顾名思义,
|
||||
[3m2s] 它的外形很像海龟,
|
||||
[3m4s] 舱内空气可供驾驶员呼吸半个小时,
|
||||
[3m8s] 在潜艇的上部还装有两根通气管,
|
||||
[3m11s] 以便上浮时打开,下沉时关闭,
|
||||
[3m14s] 从而补充新鲜的空气。
|
||||
[3m18s] 海龟号潜艇之所以能够成功的上浮下沉,
|
||||
[3m22s] 离不开对一种美丽动物的深刻学习,
|
||||
[3m27s] 他就是鹦鹉螺、
|
||||
[3m31s] 呃鹦鹉螺,呀
|
||||
[3m32s] 它是一种海洋中的动物,非常的漂亮,外壳非常漂亮,但是你要到鹦鹉螺的内部转一圈的话,你可以发现它里边有很多的腔,唉
|
||||
[3m43s] 就像我们在陆地上看到的一个一个的小房子,啊在它的这个腔里边,人类正是学习了鹦鹉螺的这种功能,在制造潜艇的过程中
|
||||
[3m55s] 就采用了水柜水柜,就是在这个潜艇的啊这个艇壳的里边
|
||||
[4m3s] 筑成一个一个的方块的,啊就是类似于储水的柜子,那么需要沉底的时候呢就向水柜里边注水,
|
||||
[4m11s] 水多了,那
|
||||
[4m13s] 沉了
|
||||
[4m14s] 潜艇就
|
||||
[4m15s] 下沉到海底,
|
||||
[4m18s] 在亿万年的进化中,
|
||||
[4m20s] 鹦鹉螺掌握了一种堪称完美的浮力控制艺术,
|
||||
[4m24s] 它的螺旋形外壳
|
||||
[4m26s] 被一系列隔膜分隔成数10个独立的气室,
|
||||
[4m30s] 如同一个精密的多舱室潜水器,
|
||||
[4m33s] 鹦鹉螺能精确调节每个气室内液体与气体的比例,
|
||||
[4m39s] 分泌液体进入气室时下沉,
|
||||
[4m42s] 排出液体让位给气体时上浮,
|
||||
[4m45s] 这种精妙的生理机制,
|
||||
[4m47s] 让它能在数百米的深海
|
||||
[4m49s] 于浅层水域之间自如升降,
|
||||
[4m52s] 几乎不消耗任何额外能量。
|
||||
[4m55s] 人类潜艇的压载水舱系统,
|
||||
[4m58s] 正是对这一自然智慧的完美复刻,
|
||||
[5m1s] 当潜艇需要下潜时,
|
||||
[5m3s] 阀门打开,海水涌入压载舱取代舱内空气,
|
||||
[5m7s] 艇体重量增加,
|
||||
[5m10s] 当需要上浮时,
|
||||
[5m11s] 高压气体将海水强行排出艇体重量减轻。
|
||||
[5m17s] 180097年,
|
||||
[5m18s] 一艘划时代的潜艇悄然下水,
|
||||
[5m22s] 这就是约翰霍兰以自己名字命名的霍兰潜艇。
|
||||
[5m27s] 这艘潜艇汇集了众多开创式的设计,
|
||||
[5m31s] 以往的潜艇要么动力不足,要么水下姿态不稳,很难在实战中发挥较大的作用。
|
||||
[5m38s] 霍兰首次将压载舱拆分为主,舱与辅助舱,
|
||||
[5m44s] 主压载舱负责核心沉浮,而辅助舱专攻姿态校准,能通过精准补水维持平衡,精准调节潜深,
|
||||
[5m53s] 解决了早期潜艇纵倾失控的难题。
|
||||
[5m57s] 这套系统是现代潜艇操控系统的源头,
|
||||
[6m2s] 这一设计让潜艇真正具备了实战价值,
|
||||
[6m5s] 为深海作战开辟了道路。
|
||||
[6m8s] 从霍兰潜艇压载舱的手动阀门,
|
||||
[6m11s] 到现代潜艇压载舱的计算机控制高压气系统,
|
||||
[6m15s] 其核心原理始终未变,
|
||||
[6m18s] 正如鹦鹉螺用气体取代液体,
|
||||
[6m21s] 潜艇用海水取代空气,
|
||||
[6m24s] 这种能力,
|
||||
[6m25s] 鹦鹉螺用了数亿年进化完成,而人类只用了不到100年,
|
||||
[6m33s] 在广袤的海洋中生存是一场关乎看见与不被看见的
|
||||
[6m39s] 永恒竞赛。
|
||||
[6m40s] 为了在这场竞赛中胜出,
|
||||
[6m43s] 无数的海洋生物进化出了一套精妙绝伦的色彩伪装策略,
|
||||
[6m48s] 这便是
|
||||
[6m49s] 隐蔽色,
|
||||
[6m51s] 像虎、鲸、
|
||||
[6m52s] 鲨鱼这样一生与海洋打交道的生物,
|
||||
[6m55s] 其背部啊往往呈现深蓝、深灰色,
|
||||
[6m59s] 而其腹部呢通常是白色或者是银白色。
|
||||
[7m4s] 我们经常能够看到一只从深海上浮的虎鲸,其白色的胸膛在来自下方的视线中几乎消失在明亮的天光里,
|
||||
[7m13s] 而一直从上方发起攻击的鲨鱼,其深色的背部直到最后一刻才会被发现
|
||||
[7m20s] 这套系统简单而高效,
|
||||
[7m23s] 本质上是一种光学隐身衣,
|
||||
[7m26s] 它抹平了生物体在三维空间中的立体感,
|
||||
[7m29s] 极大缩短了不被天敌或者是猎物发现的距离。
|
||||
[7m33s] 海军工程师很快意识到,
|
||||
[7m35s] 这正是潜艇在海洋中生存所需要的
|
||||
[7m39s] 第一层能力。
|
||||
[7m43s] 一战时期,
|
||||
[7m44s] 潜艇多活跃于浅海区域,
|
||||
[7m47s] 主要面临目视侦察的威胁。
|
||||
[7m50s] 各国率先借鉴海洋生物的双色伪装逻辑,
|
||||
[7m54s] 尝试用浅灰、绿蓝等颜色涂装挺身,
|
||||
[7m58s] 试图让潜艇融入近海的蓝灰色海水,
|
||||
[8m4s] 模仿的正是虎鲸腹部适配天光的浅色隐身思路,
|
||||
[8m10s] 但早期设计未能兼顾深浅海环境差异,
|
||||
[8m14s] 效果寥寥。
|
||||
[8m19s] 到了二战,德军和英军则试验新的组合涂装,
|
||||
[8m24s] 这些色彩既延续了上部深色下部浅色的仿生核心,
|
||||
[8m30s] 又试图贴合浅海藻类与海床环境。
|
||||
[8m34s] 可一旦潜艇下潜深度增加,这套设计便迅速失效。
|
||||
[8m41s] 阳光穿透海水层层衰减,
|
||||
[8m44s] 深海本就是一片幽暗,
|
||||
[8m46s] 浅色系挺身反而成为显眼目标。
|
||||
[8m50s] 更致命的是
|
||||
[8m51s] 早期涂料易被海水冲刷氧化,
|
||||
[8m55s] 很快退成乳白色,
|
||||
[8m56s] 让仿生伪装彻底失效。
|
||||
[9m8s] 真正的转折
|
||||
[9m9s] 来自人类对深海环境的深刻洞察。
|
||||
[9m13s] 科学家发现,
|
||||
[9m14s] 当深度超过200米,
|
||||
[9m17s] 阳光完全消失,
|
||||
[9m18s] 黑色成为海洋的天然底色,
|
||||
[9m23s] 这与鲨鱼深色背部在深海中的隐身逻辑不谋而合,
|
||||
[9m28s] 于是纯黑色涂层应运而生,
|
||||
[9m32s] 它不仅能让潜艇在幽暗深海中完美融入环境,
|
||||
[9m36s] 消除视觉轮廓,
|
||||
[9m38s] 更凭借改良配方解决了褪色难题,成为潜艇光学隐身的终极方案。
|
||||
[9m50s] 呃因为我们讲涂层主要是为了颜色,也就是视觉上不被对手发现,那么很多的动物唉都有一层保护层,我们在建造潜艇的时候也是
|
||||
[10m3s] 从自然界或仿生学里边学到了如何变化颜色,因为颜色如果涂在潜艇上是很难随着环境变化的,
|
||||
[10m13s] 所以我们就要考虑潜艇它生存在一个什么样的环境里边。
|
||||
[10m18s] 所以随着潜艇啊以后啊也就是越来越
|
||||
[10m22s] 先进,它下潜的深度越来越深。
|
||||
[10m25s] 我们发现呢黑颜色
|
||||
[10m27s] 在下潜以后呢不容易被发现,可以把自己隐蔽的很好,所以啊后来的潜艇也就是在二次大战以后的潜艇逐步逐步的
|
||||
[10m38s] 就往黑色上靠近,而现在世界各国的潜艇
|
||||
[10m42s] 基本上全都涂成了黑颜色。
|
||||
[10m46s] 然而在深海
|
||||
[10m47s] 仅仅看不见还远远不够。
|
||||
[10m50s] 随着潜艇潜得更深,航行时间更长,
|
||||
[10m54s] 真正致命的威胁
|
||||
[10m56s] 开始从光线转移到声音,
|
||||
[11m19s] 声音是深海中传播最远最难隐蔽的信号,
|
||||
[11m24s] 一丝多余的噪声就可能暴露位置招来猎杀。
|
||||
[11m32s] 于是潜艇的隐身逻辑
|
||||
[11m35s] 也从颜色升级到了形态,
|
||||
[11m38s] 潜艇的外形并非一开始就是今天的样子,
|
||||
[11m42s] 很长一段时间里,它更像是一艘能够下潜的水面舰艇。
|
||||
[11m47s] 二战时期的潜艇需要频繁浮出水面航行,
|
||||
[11m51s] 水下只是暂时藏身之所,
|
||||
[11m54s] 因此艇体高耸,结构复杂,水下阻力大,噪声高,
|
||||
[12m0s] 真正的转折
|
||||
[12m2s] 发生在核动力出现之后,
|
||||
[12m4s] 当潜艇可以长期潜航,
|
||||
[12m7s] 人类第一次开始只为水下生存来设计它的形状,
|
||||
[12m12s] 工程师将目光投向自然界,
|
||||
[12m15s] 鲸类海豚等高速游泳动物,
|
||||
[12m18s] 几乎都拥有同一种外形,
|
||||
[12m21s] 前圆后尖的水滴型。
|
||||
[12m24s] 1950年,
|
||||
[12m25s] 美国大青花鱼号实验潜艇验证了这一答案,
|
||||
[12m30s] 水滴形艇体显著降低阻力和流噪,
|
||||
[12m33s] 让潜艇更快更安静,也更难被发现。
|
||||
[12m38s] 从此现代潜艇的外形几乎统一,
|
||||
[12m42s] 当潜艇的外形已经足够像一条鱼,
|
||||
[12m45s] 真正的较量才刚刚开始,
|
||||
[12m49s] 接下来要隐藏的不再是轮廓,
|
||||
[12m52s] 而是
|
||||
[12m52s] 声音本身
|
||||
[12m57s] 生物界呢鲨鱼的速度非常快,啊因为在水中
|
||||
[13m1s] 唉它可以以非常高的速度
|
||||
[13m4s] 呃前进,实际上呢它除了形体的啊这种流线型以外,还有就是他的皮肤,因为为什么我们很多的游泳运动员所采用的这个游泳衣或游泳裤,
|
||||
[13m16s] 采用的是叫所谓鲨鱼皮,呢就是借鉴了鲨鱼的它皮肤上的这种v字形,也就是它在前进的时候,水流是顺着
|
||||
[13m26s] 这个箭头的方向啊向后流的,减少了阻力,减少了就是水与这个鲨鱼皮肤的摩擦的声音,然后使它快速的前行,
|
||||
[13m37s] 既减少了阻力又降低了声音,所以我们在建造潜艇的时候也借鉴了啊这样的
|
||||
[13m44s] 情况,或者是说借鉴了这种功能,我们在材料上啊采取一些特殊的材料,因为
|
||||
[13m51s] 呃在深海大洋里边这种材料就是我们讲的
|
||||
[13m57s] 这种消声瓦,因为消声瓦既要保证
|
||||
[14m0s] 他在
|
||||
[14m1s] 这个水中能够把噪音裹在
|
||||
[14m5s] 这个潜艇里边,不被对方探测到,同时它也要像鲨鱼的皮肤一样,有一些减少与水的这种摩擦和阻力,
|
||||
[14m16s] 来使这个声音降低,也就是潜艇在高速航行的时候要降低它与水的摩擦的声音,唉这样话呢可以进一步的
|
||||
[14m26s] 使我们的潜艇啊就是像鲨鱼一样悄然无声的在水中行进。
|
||||
[14m34s] 海豚的皮肤
|
||||
[14m35s] 能够分泌一种特殊黏液,
|
||||
[14m37s] 使水流紧贴体表滑行,
|
||||
[14m40s] 从而减少湍流与阻力。
|
||||
[14m43s] 而更为人熟知的
|
||||
[14m44s] 是鲨鱼的皮肤结构,
|
||||
[14m47s] 鲨鱼体表覆盖着无数微小的微型盾鳞,
|
||||
[14m51s] 这些看似粗糙的纹理,反而能打散涡流,抑制水流紊乱,
|
||||
[14m57s] 大幅降低摩擦阻力,
|
||||
[14m59s] 潜艇工程师从中得到启发。
|
||||
[15m2s] 在现代潜艇的消声瓦表面,
|
||||
[15m5s] 常会设计出类似的微沟槽或者细微纹理,
|
||||
[15m10s] 这种被称为沟槽面或仿鲨鱼皮的结构,
|
||||
[15m14s] 并不仅仅是为了让潜艇航行得更省力,
|
||||
[15m17s] 更重要的是它能够有效降低水流掠过艇体时产生的流噪声,
|
||||
[15m24s] 让潜艇在深海中变得更安静,
|
||||
[15m27s] 也更加致命。
|
||||
[15m29s] 海豚在浑浊的海水中能够准确地找到小鱼,
|
||||
[15m32s] 还能分辨出哪条更加肥美。
|
||||
[15m35s] 这种能力啊来自他们独特的水下视觉生物声。
|
||||
[15m40s] 呐
|
||||
[15m41s] 当海豚发出咔哒咔哒的声音时,
|
||||
[15m44s] 这些声波就像无形的探照灯向前发射,
|
||||
[15m48s] 声音遇到物体产生回声,
|
||||
[15m51s] 海豚通过下颚接收这些回声,
|
||||
[15m54s] 就能在脑海中描绘出周围环境的
|
||||
[15m57s] 立体图像,
|
||||
[15m59s] 他们能够听出藏在泥沙里的两条鱼哪条更加肥美,
|
||||
[16m4s] 能够判断前方是岩石还是海草,
|
||||
[16m8s] 这种能力让任何人工声呐都望尘莫及。
|
||||
[16m12s] 人类从海豚身上获得了灵感,
|
||||
[16m15s] 发明了
|
||||
[16m16s] 声呐技术。
|
||||
[16m19s] 二战爆发后,
|
||||
[16m20s] 德国u型潜艇再次成为海战中的核心力量,
|
||||
[16m24s] 在广阔的大西洋上,
|
||||
[16m26s] 他们潜伏在航道附近,
|
||||
[16m28s] 利用夜色和水下掩护,对盟军运输船队发动突然袭击,
|
||||
[16m34s] 单艘潜艇就足以瘫痪一整条补给线。
|
||||
[16m38s] 对英国而言,
|
||||
[16m40s] 这不仅是军事问题,
|
||||
[16m41s] 更是生存危机,
|
||||
[16m44s] 装备、
|
||||
[16m45s] 军需
|
||||
[16m46s] 几乎全部依赖海上运输,
|
||||
[16m49s] 而水下的敌人却始终看不见,
|
||||
[16m53s] 面对潜艇带来的巨大压力,
|
||||
[16m55s] 英国海军被迫改变思路,
|
||||
[16m58s] 不再依赖目视搜索,
|
||||
[17m0s] 而是尝试在深海中倾听敌人的存在。
|
||||
[17m3s] 以水听器为基础,配合主动声波探测,
|
||||
[17m7s] 声呐系统逐步成型,
|
||||
[17m10s] 并率先装备在驱逐舰和护卫舰上。
|
||||
[17m15s] 在护航战例中声呐第一次实现了对潜艇的稳定定位,
|
||||
[17m20s] 使深水炸弹不再是盲目投掷,
|
||||
[17m23s] 而成为有目标的打击。
|
||||
[17m26s] 随着反潜技术的成熟,曾经游刃有余的u型潜艇
|
||||
[17m31s] 开始频繁暴露,行踪损失不断增加。
|
||||
[17m35s] 大西洋的海战从潜艇的单方面猎杀,逐渐演变成一场围绕隐蔽与探测的技术对抗。
|
||||
[17m44s] 而这一技术
|
||||
[17m46s] 正是源自大自然中的生物声呐。
|
||||
[17m51s] 那么说到声呐就涉及到一个有趣的知识,
|
||||
[17m55s] 潜艇在水下航行时,
|
||||
[17m57s] 由于水的密度是空气密度的大约800倍,
|
||||
[18m1s] 导致雷达电磁波、通讯电磁波无法穿透海水,
|
||||
[18m6s] 严谨的来说就是被海水快速的吸收传不远,
|
||||
[18m11s] 因此声呐就成为了潜艇的主要探测工具。
|
||||
[18m15s] 声呐的本质是一个经过微调的耳朵,
|
||||
[18m18s] 它的工作原理类似于鲸鱼或海豚的回声定位。
|
||||
[18m23s] 根据工作类型,声纳可分为主动声呐和被动声,呐
|
||||
[18m29s] 主动声呐模式需要潜艇主动发射声呐信号,
|
||||
[18m33s] 声纳信号接触到目标后会反射回来,
|
||||
[18m36s] 再被潜艇捕捉,
|
||||
[18m38s] 但在战争中这不是一个明智的决策,
|
||||
[18m42s] 因为这种探索就像黑夜中打开手电筒,
|
||||
[18m45s] 照亮目标的,同时也暴露了自己。
|
||||
[18m49s] 而被动声纳模式是静默航行,
|
||||
[18m52s] 利用被动声纳基诊接受对方的主动声纳探测信号来确定对手位置。
|
||||
[18m59s] 被动声纳模式下潜艇不会暴露目标,
|
||||
[19m2s] 隐蔽性好
|
||||
[19m4s] 声。呐
|
||||
[19m5s] 作为动物界里边,
|
||||
[19m7s] 这个海豚是有它特异的功能,因为海豚哪它是从嘴里
|
||||
[19m13s] 发出不同的声响,
|
||||
[19m15s] 然后这个声响呢传出去以后,如果撞在
|
||||
[19m19s] 礁石上,就是海底的礁石上,
|
||||
[19m21s] 会反射回来一个回波,它用
|
||||
[19m25s] 嘴巴下面的啊这个接收器
|
||||
[19m27s] 去把这个声音
|
||||
[19m29s] 接收到,
|
||||
[19m29s] 然后判定这是石头
|
||||
[19m32s] 还是鱼类,如果它的这个
|
||||
[19m35s] 发出去的声音
|
||||
[19m37s] 撞上的
|
||||
[19m38s] 是鱼类,它的回声是和撞在
|
||||
[19m41s] 岩石上的声音不同的,嗯
|
||||
[19m44s] 而且它收到的这个回波唉也就是
|
||||
[19m48s] 这个
|
||||
[19m48s] 声音传播的这个回波在水里传的,因为很远,嘛
|
||||
[19m52s] 它接收下来就可以分辨出来,这是它朴实的这个
|
||||
[19m57s] 猎物了。
|
||||
[19m58s] 那么既然海豚有这么好的这种
|
||||
[20m3s] 功能,
|
||||
[20m3s] 也就类似于声呐的功能,人类就向他们学习,就仿制了啊这种声,呐这就是主动声,呐也就是
|
||||
[20m13s] 当我的潜艇航行的时候,我不断的
|
||||
[20m16s] 通过我的
|
||||
[20m18s] 声呐向外释放这个声波,当这些声波
|
||||
[20m22s] 放到海洋里边去之后,它会一去不复返。
|
||||
[20m26s] 但是如果这些声波撞击到了
|
||||
[20m30s] 对方的潜艇
|
||||
[20m31s] 或者是舰艇,
|
||||
[20m32s] 或者是海底的这些礁石,它反射回来的声波是不一样的,这样就凭借我们声呐兵来
|
||||
[20m41s] 收到的回波判断
|
||||
[20m44s] 前面是金属
|
||||
[20m45s] 还是石头,
|
||||
[20m47s] 还是洋流,
|
||||
[20m49s] 这是一艘弗吉尼亚级攻击核潜艇,
|
||||
[20m52s] 潜艇的艇首
|
||||
[20m54s] 布置着大型声呐阵列,
|
||||
[20m56s] 在早期批次上
|
||||
[20m58s] 它呈现为球形结构,
|
||||
[21m0s] 它始终对前方海域进行持续探测,
|
||||
[21m4s] 通过分析回拨的时间与特征,
|
||||
[21m7s] 潜艇能够判断目标的距离、
|
||||
[21m9s] 方位,
|
||||
[21m10s] 并对水下接触进行初步识别,
|
||||
[21m13s] 沿着亭体左右两侧
|
||||
[21m15s] 分布着舷侧声呐阵列,
|
||||
[21m18s] 他们如同海豚身体两侧的侧线系统,
|
||||
[21m21s] 负责监听来自各个方向的细微声学变化。
|
||||
[21m26s] 即使潜艇保持静默状态,不主动发声,
|
||||
[21m29s] 这些阵列依然能够捕捉远处螺旋桨的低频噪声,
|
||||
[21m34s] 以及水流扰动形成的异常信号。
|
||||
[21m37s] 在潜艇尾部,
|
||||
[21m39s] 一条细长的拖曳声呐阵列被放出,
|
||||
[21m42s] 这是弗吉尼亚级最重要的远程感知手段之一。
|
||||
[21m47s] 他远离艇体自身的噪声干扰,
|
||||
[21m50s] 将潜艇的声觉延伸到更远的海域,
|
||||
[21m53s] 用于发现极其微弱距离极远的水下目标,
|
||||
[21m57s] 停首声呐舷侧阵列
|
||||
[22m0s] 与拖曳声呐协同工作,
|
||||
[22m2s] 使这艘潜艇即使在完全隐蔽的状态下,
|
||||
[22m6s] 也能构建起一幅连续立体的水下态势图。
|
||||
[22m13s] 当生存受到直接威胁时,
|
||||
[22m16s] 顶尖的猎手与最先进的武器
|
||||
[22m18s] 都诉诸同一种策略,
|
||||
[22m20s] 制造混乱,
|
||||
[22m22s] 隐藏本体。
|
||||
[22m24s] 当乌贼遇到危险时会迅速喷出浓密的墨汁,
|
||||
[22m29s] 它并非简单的黑色液体,
|
||||
[22m31s] 它在海水中会迅速扩散,
|
||||
[22m33s] 形成一个与自身形态相似的浓密的
|
||||
[22m36s] 莫之为影。
|
||||
[22m38s] 这个深色轮廓啊能够立即吸引并且锁定捕食者的视觉注意力,
|
||||
[22m44s] 为真身的逃离创造关键的时间窗口。
|
||||
[22m49s] 潜艇工程师啊完美地借鉴了这套复杂的求生系统,
|
||||
[22m53s] 并将其转化为防御装备
|
||||
[22m56s] 声学诱饵。
|
||||
[22m59s] 潜艇感知到来袭的声自导鱼雷,
|
||||
[23m2s] 或者敌方主动声呐锁定时
|
||||
[23m5s] 会从发射管快速射出声学诱饵,
|
||||
[23m8s] 它是潜艇的一种高电子替身,
|
||||
[23m11s] 声学诱饵通常是一个自航式的水下航行器,
|
||||
[23m16s] 被发射后,它会精确模仿母艇的发动机噪声,
|
||||
[23m20s] 螺旋桨节拍等独特的声学指纹,
|
||||
[23m24s] 还会主动航行,
|
||||
[23m26s] 制造出比气幕弹,更像一艘真实潜艇的移动声学目标。
|
||||
[23m31s] 来袭的智能鱼雷能够区分简单的气泡幕和复杂的潜艇噪声,
|
||||
[23m36s] 声学诱饵通过发出更具吸引力的听觉陷阱,
|
||||
[23m41s] 引诱鱼雷偏离航道,转而追踪并攻击这个替身。
|
||||
[23m47s] 而这些诱饵的发现,
|
||||
[23m49s] 实际上就是根据海洋动物它一些保护自己的啊这些方式
|
||||
[23m55s] 啊来学习的,哈因为他们要么金蝉脱壳,要么
|
||||
[23m59s] 呃这个以假乱真。
|
||||
[24m2s] 所以我们看
|
||||
[24m3s] 随着人工智能的发现,
|
||||
[24m5s] 随着我们这个无人装备的发现,我们就
|
||||
[24m10s] 制造了
|
||||
[24m11s] 不同的这种诱饵,
|
||||
[24m13s] 主动的被动的。
|
||||
[24m14s] 总之当发现潜艇被攻击或被人发觉的时候,就扔出一个假目标,向不同的方向相甚至是相反的方向
|
||||
[24m23s] 来行进,让它的鱼雷,让它的
|
||||
[24m26s] 这个追踪的设备去跟踪那个假目标,而真正的潜艇悄悄的就逃生了。
|
||||
[25m9s] 这套系统在实战与对抗演练中屡建奇功,
|
||||
[25m13s] 其核心战术都与数百万年前的乌贼如出一辙,
|
||||
[25m18s] 乌贼用一团墨汁换取生存的时间,
|
||||
[25m22s] 人类则用电子替身
|
||||
[25m25s] 把这一秒无限放大,
|
||||
[25m28s] 当深海的幽灵收起獠牙,当猎杀者的声呐归于沉寂。
|
||||
[25m33s] 这片蔚蓝疆域的博弈
|
||||
[25m35s] 却从未停止,
|
||||
[25m38s] 从鹦鹉螺的浮力控制到核潜艇的无限续航,
|
||||
[25m42s] 从乌贼的墨汁到潜艇的电子诱饵,
|
||||
[25m45s] 我们见证了一场跨越数亿年的军事科技进化,
|
||||
[25m50s] 自然用漫长的时光雕琢出生存的智慧。
|
||||
[25m54s] 人类呢用智慧在钢铁中复刻这些法则,
|
||||
[25m58s] 这不仅是矛与盾的较量,
|
||||
[26m1s] 更是对生命本身最深刻的学习。
|
||||
[26m5s] 下一场改变游戏规则的技术革命,
|
||||
[26m7s] 或许正在随着某只深海生物的游弋,
|
||||
[26m11s] 在黑暗中
|
||||
[26m12s] 悄然酝酿。
|
||||
[26m14s] 好了,观众朋友们,感谢您持续关注国防军事频道、军事科技。
|
||||
[26m18s] 我们下周同一时间
|
||||
[26m20s] 再见。
|
||||
[26m22s] 藏于方寸的敌后利器,
|
||||
[26m25s] 锋芒毕露的火力先锋,
|
||||
[26m27s] 穿梭街巷的近战精灵,主宰阵地的压制王者,
|
||||
[26m33s] 同为枪械家族成员为何长度取舍各不相同,
|
||||
[26m38s] 每一寸伸缩都是对实战需求的精准回应,每一款设计都凝结着军工领域的深邃考量,
|
||||
[26m48s] 军事科技带您解码枪械设计背后的长短智慧。
|
||||
@@ -0,0 +1,2 @@
|
||||
<table><td colspan="3">As of December 31,<i>(In millions)</i>201820172016Net cash provided by (used in) operating activities$1,000$(2,100)$(4,300)</table>
|
||||
<table><td colspan="3">As of December 31,<i>(In millions)</i>201820172016Total return4.9%5.0%5.1%</table>
|
||||
@@ -0,0 +1,734 @@
|
||||
{
|
||||
"episode_id": "ep002_20260127_qianting_fangsheng",
|
||||
"rule_candidates": [
|
||||
{
|
||||
"term": "标准",
|
||||
"domain": "model",
|
||||
"source": "rule_model_cn"
|
||||
},
|
||||
{
|
||||
"term": "AN/SLQ-25",
|
||||
"domain": "model",
|
||||
"source": "rule_model"
|
||||
},
|
||||
{
|
||||
"term": "美国",
|
||||
"domain": "org",
|
||||
"source": "rule_country"
|
||||
},
|
||||
{
|
||||
"term": "海军",
|
||||
"domain": "org",
|
||||
"source": "rule_org"
|
||||
},
|
||||
{
|
||||
"term": "主持人1",
|
||||
"domain": "person",
|
||||
"source": "rule_person"
|
||||
}
|
||||
],
|
||||
"ai_raw_response": [
|
||||
{
|
||||
"term": "潜艇",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "鲨鱼皮",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "消声瓦",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "声呐",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "海豚",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "乌贼",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "电子替身",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "海龟号",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "鹰号",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "压载水舱系统",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "鹦鹉螺",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "霍兰号",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "大青花鱼号",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "洛杉矶级",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "消音瓦",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "沟槽面",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "仿鲨鱼皮",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "U型潜艇",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "水听器",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "深水炸弹",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "弗吉尼亚级攻击核潜艇",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "艇艏声呐阵列",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "舷侧声呐阵列",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "拖曳声呐阵列",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "声学诱饵",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "声自导鱼雷",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "气幕弹",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "Bold",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "Sieglinde",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "MOSS Mk70",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "ADC Mk1",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "ADC Mk2",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "ADC Mk3",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "Deceptor",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "AN/SLQ-25",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "Nixie",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "反鱼雷软杀伤系统",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "核潜艇",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "攻击核潜艇",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "F/A-18E/F",
|
||||
"domain": "model",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "歼-10",
|
||||
"domain": "model",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "SM-3",
|
||||
"domain": "model",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "萨德",
|
||||
"domain": "model",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "爱国者-3防空反导系统",
|
||||
"domain": "model",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "英国海军",
|
||||
"domain": "unit_designation",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "德国U型潜艇",
|
||||
"domain": "unit_designation",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "盟军运输船队",
|
||||
"domain": "unit_designation",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "美国海军",
|
||||
"domain": "unit_designation",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "蓝皓",
|
||||
"domain": "person",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "埃兹拉·李",
|
||||
"domain": "person",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "《军事科技》",
|
||||
"domain": "org",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "英国",
|
||||
"domain": "org",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "美国",
|
||||
"domain": "org",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "德国",
|
||||
"domain": "org",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "动能撞击",
|
||||
"domain": "tech_concept",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "饱和攻击",
|
||||
"domain": "tech_concept",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "隐蔽色",
|
||||
"domain": "tech_concept",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "光学隐身衣",
|
||||
"domain": "tech_concept",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "水滴型",
|
||||
"domain": "tech_concept",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "生物流线",
|
||||
"domain": "tech_concept",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "流噪声",
|
||||
"domain": "tech_concept",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "生物声呐",
|
||||
"domain": "tech_concept",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "声学指纹",
|
||||
"domain": "tech_concept",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "听觉陷阱",
|
||||
"domain": "tech_concept",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "声学假目标",
|
||||
"domain": "tech_concept",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "反潜战",
|
||||
"domain": "tech_concept",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "非声探测设备",
|
||||
"domain": "tech_concept",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "水声信号",
|
||||
"domain": "tech_concept",
|
||||
"source": "ai_deepseek"
|
||||
}
|
||||
],
|
||||
"merged_candidates": [
|
||||
{
|
||||
"term": "标准",
|
||||
"domain": "model",
|
||||
"source": "rule_model_cn"
|
||||
},
|
||||
{
|
||||
"term": "AN/SLQ-25",
|
||||
"domain": "weapon",
|
||||
"source": "rule_model+ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "美国",
|
||||
"domain": "org",
|
||||
"source": "rule_country+ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "海军",
|
||||
"domain": "org",
|
||||
"source": "rule_org"
|
||||
},
|
||||
{
|
||||
"term": "主持人1",
|
||||
"domain": "person",
|
||||
"source": "rule_person"
|
||||
},
|
||||
{
|
||||
"term": "潜艇",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "鲨鱼皮",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "消声瓦",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "声呐",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "海豚",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "乌贼",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "电子替身",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "海龟号",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "鹰号",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "压载水舱系统",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "鹦鹉螺",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "霍兰号",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "大青花鱼号",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "洛杉矶级",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "消音瓦",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "沟槽面",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "仿鲨鱼皮",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "U型潜艇",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "水听器",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "深水炸弹",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "弗吉尼亚级攻击核潜艇",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "艇艏声呐阵列",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "舷侧声呐阵列",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "拖曳声呐阵列",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "声学诱饵",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "声自导鱼雷",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "气幕弹",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "Bold",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "Sieglinde",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "MOSS Mk70",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "ADC Mk1",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "ADC Mk2",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "ADC Mk3",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "Deceptor",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "Nixie",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "反鱼雷软杀伤系统",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "核潜艇",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "攻击核潜艇",
|
||||
"domain": "weapon",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "F/A-18E/F",
|
||||
"domain": "model",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "歼-10",
|
||||
"domain": "model",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "SM-3",
|
||||
"domain": "model",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "萨德",
|
||||
"domain": "model",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "爱国者-3防空反导系统",
|
||||
"domain": "model",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "英国海军",
|
||||
"domain": "unit_designation",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "德国U型潜艇",
|
||||
"domain": "unit_designation",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "盟军运输船队",
|
||||
"domain": "unit_designation",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "美国海军",
|
||||
"domain": "unit_designation",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "蓝皓",
|
||||
"domain": "person",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "埃兹拉·李",
|
||||
"domain": "person",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "《军事科技》",
|
||||
"domain": "org",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "英国",
|
||||
"domain": "org",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "德国",
|
||||
"domain": "org",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "动能撞击",
|
||||
"domain": "tech_concept",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "饱和攻击",
|
||||
"domain": "tech_concept",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "隐蔽色",
|
||||
"domain": "tech_concept",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "光学隐身衣",
|
||||
"domain": "tech_concept",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "水滴型",
|
||||
"domain": "tech_concept",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "生物流线",
|
||||
"domain": "tech_concept",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "流噪声",
|
||||
"domain": "tech_concept",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "生物声呐",
|
||||
"domain": "tech_concept",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "声学指纹",
|
||||
"domain": "tech_concept",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "听觉陷阱",
|
||||
"domain": "tech_concept",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "声学假目标",
|
||||
"domain": "tech_concept",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "反潜战",
|
||||
"domain": "tech_concept",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "非声探测设备",
|
||||
"domain": "tech_concept",
|
||||
"source": "ai_deepseek"
|
||||
},
|
||||
{
|
||||
"term": "水声信号",
|
||||
"domain": "tech_concept",
|
||||
"source": "ai_deepseek"
|
||||
}
|
||||
],
|
||||
"stats": {
|
||||
"rule_count": 5,
|
||||
"ai_count": 68,
|
||||
"merged_count": 71
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
seg_id,header,start_line,end_line,line_count,min_confidence,punct_ok,note
|
||||
0,"【导视1】",1,19,19,0.9000,True,""
|
||||
1,"【演播室主持人1】",20,40,21,0.9000,True,""
|
||||
2,"从鹦鹉螺到“潜艇压载水舱系统”",,,0,0.0000,,"隔断"
|
||||
3,"【二维动画解说1】",41,70,30,0.9500,True,""
|
||||
4,"【三维动画解说1】",71,160,90,0.3000,True,"低把握(min_confidence=0.30)"
|
||||
5,"【专家1】",,,0,1.0000,True,"空段:无对应字幕"
|
||||
6,"【解说1】",,,0,1.0000,True,"空段:无对应字幕"
|
||||
7,"【三维动画解说2】",161,181,21,0.9000,True,""
|
||||
8,"鲨鱼皮肤与潜艇的外形设计",,,0,0.0000,,"隔断"
|
||||
9,"【主持人1】",182,217,36,1.0000,True,""
|
||||
10,"【专家2】",218,360,143,0.3000,True,"低把握(min_confidence=0.30)"
|
||||
11,"【解说2】",,,0,1.0000,True,"空段:无对应字幕"
|
||||
12,"【专家3】",,,0,1.0000,True,"空段:无对应字幕"
|
||||
13,"【解说3】",361,440,80,0.3000,True,"低把握(min_confidence=0.30)"
|
||||
14,"海豚声呐与潜艇综合声呐系统",,,0,0.0000,,"隔断"
|
||||
15,"【解说4】",441,452,12,0.9500,True,""
|
||||
16,"【解说5】",453,520,68,0.3000,True,"低把握(min_confidence=0.30)"
|
||||
17,"【专家4】",521,535,15,0.9000,True,""
|
||||
18,"【三维动画解说3】",,,0,1.0000,True,"空段:无对应字幕"
|
||||
19,"【解说6】",536,640,105,0.3000,True,"低把握(min_confidence=0.30)"
|
||||
20,"乌贼墨汁与声学诱饵",,,0,0.0000,,"隔断"
|
||||
21,"【主持人2】",641,643,3,0.9000,True,""
|
||||
22,"【解说7】",644,669,26,0.9500,True,""
|
||||
23,"【专家5】",670,720,51,0.3000,True,"低把握(min_confidence=0.30)"
|
||||
24,"【解说8】",,,0,1.0000,True,"空段:无对应字幕"
|
||||
25,"【主持人3】",721,733,13,0.9000,True,""
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,11 @@
|
||||
line_no,timestamp,b_original,asr_context,final_text,change_type,confidence,reason
|
||||
10,0m22s,当声响模仿海豚,当潜艇披上鲨鱼皮消声瓦, 当声呐模仿海豚,看穿黑暗。 当乌贼的墨汁化作潜艇的电子替身, 自然早已写好了深海中生存与猎杀的终极教科书。,当声呐模仿海豚,term_normalize,0.95,B稿'声响'为OCR错字,ASR'声呐'为正确术语
|
||||
18,0m39s,带您见证茫茫海中,自然早已写好了深海中生存与猎杀的终极教科书。 本期军事科技带您见证茫茫深海中潜艇的仿生之路。 各位观众你们好,欢迎收看军事科技,我是蓝皓。,带您见证茫茫深海中,editor_typo,0.95,B稿'海中'为OCR漏字,ASR'深海中'正确
|
||||
231,8m14s,效果变变,但早期设计未能兼顾深浅海环境差异, 效果寥寥。 到了二战,德军和英军则试验新的组合涂装, 这些色彩既延续了上部深色下部浅色的仿生核心,,效果寥寥,minor_edit,0.95,B稿OCR错字'变变',ASR为'寥寥',用ASR覆盖
|
||||
263,9m34s,在幽暗海中,于是纯黑色涂层应运而生, 它不仅能让潜艇在幽暗深海中完美融入环境, 消除视觉轮廓, 更凭借改良配方解决了褪色难题,成为潜艇光学隐身的终极方案。 呃因为我们讲涂层主要是为了颜色,也就是视觉上不被对手发现,那么很多的动物唉都有一层保护层,我们在建造潜艇的时候也是,在幽暗深海中,minor_edit,0.9,B稿OCR为‘海中’,ASR为‘深海中’,补充‘深’字更完整
|
||||
426,15m21s,掠过躯体时产生的流噪声,更重要的是它能够有效降低水流掠过艇体时产生的流噪声, 让潜艇在深海中变得更安静, 也更加致命。 海豚在浑浊的海水中能够准确地找到小鱼,,掠过艇体时产生的流噪声,minor_edit,0.95,B稿OCR错字'躯体',ASR为'艇体',修正
|
||||
528,18m49s,而被动声响模式,照亮目标的,同时也暴露了自己。 而被动声纳模式是静默航行, 利用被动声纳基诊接受对方的主动声纳探测信号来确定对手位置。 被动声纳模式下潜艇不会暴露目标,,而被动声纳模式,term_normalize,0.9,B稿‘声响’为OCR错字,ASR为‘声纳’,术语统一
|
||||
533,18m59s,被动声响模式下,利用被动声纳基诊接受对方的主动声纳探测信号来确定对手位置。 被动声纳模式下潜艇不会暴露目标, 隐蔽性好 声。呐 作为动物界里边,,被动声纳模式下,term_normalize,0.9,B稿‘声响’为OCR错字,ASR为‘声纳’,术语统一
|
||||
584,20m53s,潜艇的艇艙,这是一艘弗吉尼亚级攻击核潜艇, 潜艇的艇首 布置着大型声呐阵列, 在早期批次上 它呈现为球形结构,,潜艇的艇首,minor_edit,0.95,B稿OCR错字'艙',ASR为'首',修正为'艇首'
|
||||
646,23m2s,或者敌方主动声响锁定时,声学诱饵。 潜艇感知到来袭的声自导鱼雷, 或者敌方主动声呐锁定时 会从发射管快速射出声学诱饵, 它是潜艇的一种高电子替身, 声学诱饵通常是一个自航式的水下航行器,,或者敌方主动声呐锁定时,term_normalize,0.9,B稿为'声响',ASR为'声呐','声呐'是更规范的军事术语。
|
||||
709,25m31s,当猎杀者的声响归于沉寂,把这一秒无限放大, 当深海的幽灵收起獠牙,当猎杀者的声呐归于沉寂。 这片蔚蓝疆域的博弈 却从未停止, 从鹦鹉螺的浮力控制到核潜艇的无限续航,,当猎杀者的声呐归于沉寂,minor_edit,0.95,B稿OCR错字'声响',ASR为'声呐',后者符合军事术语
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,284 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
阶段 A:抽帧 + OCR(产出原始缓存 ocr_raw.jsonl)
|
||||
================================================
|
||||
策略:OCR 优先,每帧都 OCR。绝不使用亮度判空/dHash/IoU 过滤。
|
||||
按 idx 断点续跑:读取已有 ocr_raw.jsonl 中最大 idx,从 max_idx+1 继续。
|
||||
"""
|
||||
import base64
|
||||
import json
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
import threading
|
||||
from concurrent.futures import ThreadPoolExecutor, as_completed
|
||||
from pathlib import Path
|
||||
|
||||
import requests
|
||||
|
||||
# 根治 Windows 控制台 GBK 崩溃:强制 stdout 用 UTF-8
|
||||
sys.stdout.reconfigure(encoding="utf-8", errors="replace")
|
||||
|
||||
# ========================================================================
|
||||
# 全局参数(放文件顶部做常量,方便后续调)
|
||||
# ========================================================================
|
||||
FPS = 1
|
||||
CROP_BOTTOM_RATIO = 0.2
|
||||
SIM_THRESHOLD = 0.85
|
||||
OLLAMA_URL = "http://localhost:11434/api/generate"
|
||||
MODEL = "deepseek-ocr"
|
||||
OCR_PROMPT = "Free OCR."
|
||||
# 并发 OCR 线程数(环境变量 OCR_NUM_WORKERS 可覆盖)。
|
||||
# 需配合 Ollama 服务端 OLLAMA_NUM_PARALLEL >= 此值,否则服务端仍排队、提速无效。
|
||||
NUM_WORKERS = int(os.environ.get("OCR_NUM_WORKERS", "4"))
|
||||
|
||||
# 工作目录(脚本所在目录)
|
||||
WORK_DIR = Path(__file__).resolve().parent
|
||||
SOURCE_VIDEO_DIR = WORK_DIR / "source"
|
||||
FRAMES_DIR = WORK_DIR / "frames_v2"
|
||||
OCR_RAW_PATH = WORK_DIR / "ocr_raw.jsonl"
|
||||
|
||||
|
||||
# ========================================================================
|
||||
# A1: 定位源视频
|
||||
# ========================================================================
|
||||
def find_source_video():
|
||||
"""在工作目录 source/ 或根目录下定位 .mp4 或 .mkv 源视频"""
|
||||
for ext in (".mp4", ".mkv"):
|
||||
candidates = list(SOURCE_VIDEO_DIR.glob(f"*{ext}"))
|
||||
if candidates:
|
||||
return candidates[0]
|
||||
# fallback: 也检查工作目录根(ep002 等视频直接在根目录的情况)
|
||||
for ext in (".mp4", ".mkv"):
|
||||
candidates = list(WORK_DIR.glob(f"*{ext}"))
|
||||
if candidates:
|
||||
return candidates[0]
|
||||
raise FileNotFoundError(
|
||||
f"在 {SOURCE_VIDEO_DIR} 和 {WORK_DIR} 中均未找到 .mp4 或 .mkv 文件"
|
||||
)
|
||||
|
||||
|
||||
def get_video_info(video_path):
|
||||
"""用 ffprobe 获取时长(秒)和分辨率(宽x高)"""
|
||||
cmd = [
|
||||
"ffprobe", "-v", "error",
|
||||
"-select_streams", "v:0",
|
||||
"-show_entries", "stream=duration,width,height",
|
||||
"-of", "json",
|
||||
str(video_path),
|
||||
]
|
||||
result = subprocess.run(cmd, capture_output=True, text=True, encoding="utf-8", errors="replace")
|
||||
if result.returncode != 0:
|
||||
raise RuntimeError(f"ffprobe 失败:\n{result.stderr}")
|
||||
info = json.loads(result.stdout)
|
||||
stream = info["streams"][0]
|
||||
duration = float(stream.get("duration", 0))
|
||||
width = stream["width"]
|
||||
height = stream["height"]
|
||||
return duration, width, height
|
||||
|
||||
|
||||
# ========================================================================
|
||||
# A2: ffmpeg 抽帧
|
||||
# ========================================================================
|
||||
def extract_frames(video_path):
|
||||
"""
|
||||
用 ffmpeg 按 1fps 抽帧,裁切下方 20% 字幕区域。
|
||||
输出到 frames_v2/frame_%04d.png(从 0001 开始)。
|
||||
返回按文件名排序的帧路径列表。
|
||||
"""
|
||||
FRAMES_DIR.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
# 清理旧帧避免残留
|
||||
for old in FRAMES_DIR.glob("frame_*.png"):
|
||||
old.unlink()
|
||||
|
||||
crop_expr = (
|
||||
f"fps={FPS},"
|
||||
f"crop=iw:ih*{CROP_BOTTOM_RATIO}:0:ih*{1 - CROP_BOTTOM_RATIO}"
|
||||
)
|
||||
frame_pattern = str(FRAMES_DIR / "frame_%04d.png")
|
||||
|
||||
cmd = [
|
||||
"ffmpeg",
|
||||
"-i", str(video_path),
|
||||
"-vf", crop_expr,
|
||||
"-q:v", "2",
|
||||
frame_pattern,
|
||||
"-y",
|
||||
]
|
||||
|
||||
result = subprocess.run(cmd, capture_output=True, text=True, encoding="utf-8", errors="replace")
|
||||
if result.returncode != 0:
|
||||
raise RuntimeError(f"ffmpeg 抽帧失败:\n{result.stderr}")
|
||||
|
||||
frames = sorted(FRAMES_DIR.glob("frame_*.png"))
|
||||
return frames
|
||||
|
||||
|
||||
# ========================================================================
|
||||
# OCR 单帧
|
||||
# ========================================================================
|
||||
def ocr_single_frame(image_path):
|
||||
"""
|
||||
调用本地 Ollama OCR 识别单帧。
|
||||
API: POST /api/generate,单轮,图片走 base64,stream=false。
|
||||
返回 strip 后的文本;异常向上抛出让调用方处理。
|
||||
"""
|
||||
with open(image_path, "rb") as fh:
|
||||
img_bytes = fh.read()
|
||||
img_b64 = base64.b64encode(img_bytes).decode("utf-8")
|
||||
|
||||
body = {
|
||||
"model": MODEL,
|
||||
"prompt": OCR_PROMPT,
|
||||
"images": [img_b64],
|
||||
"stream": False,
|
||||
}
|
||||
|
||||
resp = requests.post(OLLAMA_URL, json=body, timeout=120)
|
||||
resp.raise_for_status()
|
||||
data = resp.json()
|
||||
text = data.get("response", "").strip()
|
||||
return text
|
||||
|
||||
|
||||
# ========================================================================
|
||||
# A3: 单帧验证
|
||||
# ========================================================================
|
||||
def test_single_frame():
|
||||
"""
|
||||
A3: 验证单帧 OCR。
|
||||
对 frame_0076.png 调一次 OCR,打印原始返回。
|
||||
若对不上预期则中止,不进入批量。
|
||||
"""
|
||||
test_frame = FRAMES_DIR / "frame_0076.png"
|
||||
if not test_frame.exists():
|
||||
print("[A3] [WARN] test frame not found:", test_frame)
|
||||
print("[A3] skip single-frame check")
|
||||
return
|
||||
|
||||
print("[A3] test frame:", test_frame.name)
|
||||
try:
|
||||
raw_text = ocr_single_frame(test_frame)
|
||||
except Exception as exc:
|
||||
print("[A3] [FAIL] OCR call failed:", exc)
|
||||
print("[A3] check Ollama / deepseek-ocr, abort.")
|
||||
sys.exit(1)
|
||||
|
||||
print("[A3] raw return:", repr(raw_text))
|
||||
|
||||
# 通用冒烟检查:OCR 返回非空中文即视为链路正常(不绑定某期具体台词);
|
||||
# 真正的"Ollama 挂了"由上面 ocr_single_frame 抛异常 + sys.exit(1) 兜底。
|
||||
if any("一" <= ch <= "鿿" for ch in raw_text):
|
||||
print("[A3] [OK] OCR 链路正常(返回非空中文)。")
|
||||
else:
|
||||
print("[A3] [WARN] OCR 返回无中文,链路可能异常,但不阻断,继续批量:", repr(raw_text))
|
||||
|
||||
|
||||
# ========================================================================
|
||||
# A4: 批量 OCR(按 idx 断点续跑 + 单帧容错)
|
||||
# ========================================================================
|
||||
def batch_ocr(frames):
|
||||
"""
|
||||
并发 OCR(线程池 NUM_WORKERS 路) + 按 idx 断点续跑 + 单帧容错。
|
||||
- 读 ocr_raw.jsonl 已写入的 idx 集合(并发中断可能留空洞,用集合而非 max),只补未写帧
|
||||
- NUM_WORKERS 个线程并发调 Ollama;每帧独立,输出与串行逐帧完全一致
|
||||
- 写盘按完成顺序、加锁逐条 append + flush(stage_b 读后会按 idx 重排,顺序无所谓)
|
||||
- 单帧 OCR 报错写 error 字段,不崩整个进程
|
||||
"""
|
||||
total = len(frames)
|
||||
|
||||
# --- 读已写入的 idx 集合(含 error 记录,避免重跑出重复 idx 行) ---
|
||||
done_idx = set()
|
||||
if OCR_RAW_PATH.exists():
|
||||
with open(OCR_RAW_PATH, "r", encoding="utf-8") as fh:
|
||||
for line in fh:
|
||||
line = line.strip()
|
||||
if not line:
|
||||
continue
|
||||
try:
|
||||
rec = json.loads(line)
|
||||
if "idx" in rec:
|
||||
done_idx.add(rec["idx"])
|
||||
except json.JSONDecodeError:
|
||||
pass
|
||||
|
||||
# --- 构建 idx -> frame_path 映射 ---
|
||||
idx_to_path = {}
|
||||
for fp in frames:
|
||||
idx = int(fp.stem.split("_")[1])
|
||||
idx_to_path[idx] = fp
|
||||
|
||||
pending = [idx for idx in sorted(idx_to_path) if idx not in done_idx]
|
||||
if not pending:
|
||||
print(f"[A4] all {total} frames already done, skip.")
|
||||
return
|
||||
|
||||
print(
|
||||
f"[A4] 已完成 {len(done_idx)}/{total},待处理 {len(pending)} 帧,"
|
||||
f"并发 {NUM_WORKERS} 路"
|
||||
)
|
||||
|
||||
def _ocr_one(idx):
|
||||
t_sec = idx - 1
|
||||
frame_path = idx_to_path.get(idx)
|
||||
if frame_path is None:
|
||||
return {"idx": idx, "t_sec": t_sec, "text": "", "error": "frame file missing"}
|
||||
try:
|
||||
text = ocr_single_frame(frame_path)
|
||||
return {"idx": idx, "t_sec": t_sec, "text": text}
|
||||
except Exception as exc:
|
||||
return {"idx": idx, "t_sec": t_sec, "text": "", "error": str(exc)}
|
||||
|
||||
write_lock = threading.Lock()
|
||||
done_count = len(done_idx)
|
||||
|
||||
with open(OCR_RAW_PATH, "a", encoding="utf-8") as fh:
|
||||
with ThreadPoolExecutor(max_workers=NUM_WORKERS) as pool:
|
||||
futures = {pool.submit(_ocr_one, idx): idx for idx in pending}
|
||||
for fut in as_completed(futures):
|
||||
record = fut.result()
|
||||
with write_lock:
|
||||
fh.write(json.dumps(record, ensure_ascii=False) + "\n")
|
||||
fh.flush()
|
||||
done_count += 1
|
||||
if done_count % 50 == 0:
|
||||
print(f"{done_count}/{total}", flush=True)
|
||||
|
||||
print(f"{total}/{total}", flush=True)
|
||||
print(f"[A4] OCR done, {total} records in {OCR_RAW_PATH}")
|
||||
|
||||
|
||||
# ========================================================================
|
||||
# 主流程
|
||||
# ========================================================================
|
||||
def main():
|
||||
# A1
|
||||
video_path = find_source_video()
|
||||
duration, width, height = get_video_info(video_path)
|
||||
print(f"[A1] video: {video_path}")
|
||||
print(f"[A1] duration: {duration:.1f}s resolution: {width}x{height}")
|
||||
|
||||
# A2: skip re-extract if frames already exist
|
||||
FRAMES_DIR.mkdir(parents=True, exist_ok=True)
|
||||
existing = sorted(FRAMES_DIR.glob("frame_*.png"))
|
||||
if existing:
|
||||
print(f"[A2] {len(existing)} frames already exist, skip re-extract")
|
||||
frames = existing
|
||||
else:
|
||||
print(f"[A2] ffmpeg extract (fps={FPS}, crop_bottom_ratio={CROP_BOTTOM_RATIO})...")
|
||||
frames = extract_frames(video_path)
|
||||
print(f"[A2] extracted {len(frames)} frames -> {FRAMES_DIR}")
|
||||
|
||||
# A3
|
||||
test_single_frame()
|
||||
|
||||
# A4
|
||||
batch_ocr(frames)
|
||||
|
||||
print("\nstage A done.")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,300 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
阶段 B:文本去重 + 出稿(只读缓存,可反复重跑调阈值)
|
||||
=======================================================
|
||||
策略:基于 difflib 文本相似度折叠连续重复段,绝不使用像素级过滤。
|
||||
"""
|
||||
import csv
|
||||
import json
|
||||
import re
|
||||
from difflib import SequenceMatcher
|
||||
from pathlib import Path
|
||||
|
||||
# ═══════════════════════════════════════════════════════════════
|
||||
# 全局参数(与阶段 A 共享,放文件顶部做常量)
|
||||
# ═══════════════════════════════════════════════════════════════
|
||||
FPS = 1
|
||||
CROP_BOTTOM_RATIO = 0.2
|
||||
SIM_THRESHOLD = 0.85
|
||||
|
||||
# 工作目录
|
||||
WORK_DIR = Path(__file__).resolve().parent
|
||||
OCR_RAW_PATH = WORK_DIR / "ocr_raw.jsonl"
|
||||
B_MANUSCRIPT_PATH = WORK_DIR / "B稿_v2.txt"
|
||||
DEBUG_CSV_PATH = WORK_DIR / "dedup_debug.csv"
|
||||
BLANK_FILTERED_PATH = WORK_DIR / "blank_filtered.txt"
|
||||
|
||||
|
||||
def similarity(a, b):
|
||||
"""计算两个文本的 difflib 相似度(0.0 ~ 1.0)"""
|
||||
if not a or not b:
|
||||
return 0.0
|
||||
return SequenceMatcher(None, a, b).ratio()
|
||||
|
||||
|
||||
def is_blank_ocr(text):
|
||||
"""基于文本的空场判定:空串 / HTML幻觉 / 不含汉字"""
|
||||
t = text.strip()
|
||||
if not t: # 空串
|
||||
return True
|
||||
if '<' in t and '>' in t: # HTML/markup 幻觉(如 <table>)
|
||||
return True
|
||||
if not re.search(r'[\u4e00-\u9fff]', t): # 不含任何汉字 → 非本节目字幕
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
# ═══════════════════════════════════════════════════════════════
|
||||
# B1: 读缓存
|
||||
# ═══════════════════════════════════════════════════════════════
|
||||
def load_ocr_raw():
|
||||
"""读 ocr_raw.jsonl,按 idx(时间)升序返回记录列表"""
|
||||
if not OCR_RAW_PATH.exists():
|
||||
raise FileNotFoundError(
|
||||
f"ocr_raw.jsonl 不存在: {OCR_RAW_PATH}\n"
|
||||
"请先跑阶段 A(stage_a_extract_ocr.py)。"
|
||||
)
|
||||
|
||||
records = []
|
||||
with open(OCR_RAW_PATH, "r", encoding="utf-8") as fh:
|
||||
for line in fh:
|
||||
line = line.strip()
|
||||
if not line:
|
||||
continue
|
||||
rec = json.loads(line)
|
||||
records.append(rec)
|
||||
|
||||
# 按 idx 升序
|
||||
records.sort(key=lambda r: r["idx"])
|
||||
return records
|
||||
|
||||
|
||||
# ═══════════════════════════════════════════════════════════════
|
||||
# B2: 折叠连续重复段(裁判在此,基于文本不基于像素)
|
||||
# ═══════════════════════════════════════════════════════════════
|
||||
def collapse_segments(records):
|
||||
"""
|
||||
维护"当前字幕"(文本 + 起始 t_sec),遍历每帧:
|
||||
- 文本为空 → 空场:结束当前字幕(若有),并清空,不开新段。
|
||||
- 非空且与当前字幕文本的 difflib 相似度 ≥ SIM_THRESHOLD → 同一条,并入当前段(记下这条文本备投票)。
|
||||
- 非空且相似度 < SIM_THRESHOLD → 结束并输出当前段,用这帧开新段。
|
||||
只比时间相邻帧,只折叠连续段;绝不全局去重。
|
||||
|
||||
每段最终文本 = 段内出现次数最多的 OCR 文本(多数投票,抵消个别帧抖动)。
|
||||
每段时间戳 = 段内最早 t_sec。
|
||||
|
||||
返回: (segments, debug_rows)
|
||||
segments: [{"start_t": float, "text": str}, ...]
|
||||
debug_rows: [{idx, t_sec, ocr_text, decision, merged_into_start_t}, ...]
|
||||
"""
|
||||
segments = []
|
||||
debug_rows = []
|
||||
|
||||
if not records:
|
||||
return segments, debug_rows
|
||||
|
||||
current_text = None # 当前段内用于比对的参考文本
|
||||
current_texts = [] # 当前段内所有 OCR 文本(用于投票)
|
||||
current_start_t = None # 当前段起始 t_sec
|
||||
current_segment_indices = [] # 当前段包含的帧号列表
|
||||
|
||||
def _finalize_segment():
|
||||
"""输出当前段(若存在)"""
|
||||
nonlocal current_text, current_texts, current_start_t, current_segment_indices
|
||||
if current_text is not None and current_texts:
|
||||
# 多数投票:选出现次数最多的文本
|
||||
text_counts = {}
|
||||
for t in current_texts:
|
||||
text_counts[t] = text_counts.get(t, 0) + 1
|
||||
best_text = max(text_counts, key=lambda k: text_counts[k])
|
||||
|
||||
segments.append({
|
||||
"start_t": current_start_t,
|
||||
"text": best_text,
|
||||
})
|
||||
current_text = None
|
||||
current_texts = []
|
||||
current_start_t = None
|
||||
current_segment_indices = []
|
||||
|
||||
for rec in records:
|
||||
ocr_text = rec["text"]
|
||||
|
||||
if is_blank_ocr(ocr_text):
|
||||
# 空场:结束当前字幕(若有),并清空,不开新段
|
||||
if current_text is not None:
|
||||
_finalize_segment()
|
||||
debug_rows.append({
|
||||
"idx": rec["idx"],
|
||||
"t_sec": rec["t_sec"],
|
||||
"ocr_text": ocr_text,
|
||||
"decision": "blank",
|
||||
"merged_into_start_t": "",
|
||||
})
|
||||
continue
|
||||
|
||||
if current_text is None:
|
||||
# 开新段
|
||||
current_text = ocr_text
|
||||
current_texts = [ocr_text]
|
||||
current_start_t = rec["t_sec"]
|
||||
current_segment_indices = [rec["idx"]]
|
||||
debug_rows.append({
|
||||
"idx": rec["idx"],
|
||||
"t_sec": rec["t_sec"],
|
||||
"ocr_text": ocr_text,
|
||||
"decision": "new",
|
||||
"merged_into_start_t": rec["t_sec"],
|
||||
})
|
||||
else:
|
||||
sim = similarity(current_text, ocr_text)
|
||||
if sim >= SIM_THRESHOLD:
|
||||
# 同一条,并入当前段
|
||||
current_texts.append(ocr_text)
|
||||
current_segment_indices.append(rec["idx"])
|
||||
debug_rows.append({
|
||||
"idx": rec["idx"],
|
||||
"t_sec": rec["t_sec"],
|
||||
"ocr_text": ocr_text,
|
||||
"decision": "merged",
|
||||
"merged_into_start_t": current_start_t,
|
||||
})
|
||||
else:
|
||||
# 结束当前段,用这帧开新段
|
||||
_finalize_segment()
|
||||
current_text = ocr_text
|
||||
current_texts = [ocr_text]
|
||||
current_start_t = rec["t_sec"]
|
||||
current_segment_indices = [rec["idx"]]
|
||||
debug_rows.append({
|
||||
"idx": rec["idx"],
|
||||
"t_sec": rec["t_sec"],
|
||||
"ocr_text": ocr_text,
|
||||
"decision": "new",
|
||||
"merged_into_start_t": rec["t_sec"],
|
||||
})
|
||||
|
||||
# 遍历结束,落最后一个段
|
||||
_finalize_segment()
|
||||
|
||||
return segments, debug_rows
|
||||
|
||||
|
||||
# ═══════════════════════════════════════════════════════════════
|
||||
# B3: 输出 B稿_v2.txt
|
||||
# ═══════════════════════════════════════════════════════════════
|
||||
def write_b_manuscript(segments):
|
||||
"""
|
||||
输出 B稿_v2.txt,每行格式: [XmYs] 文本
|
||||
例: [1m18s] 我是主持人蓝皓
|
||||
"""
|
||||
lines = []
|
||||
for seg in segments:
|
||||
t = seg["start_t"]
|
||||
m = int(t) // 60
|
||||
s = int(t) % 60
|
||||
cleaned = re.sub(r'^[#*\->`\s]+', '', seg['text']).strip()
|
||||
lines.append(f"[{m}m{s}s] {cleaned}")
|
||||
|
||||
with open(B_MANUSCRIPT_PATH, "w", encoding="utf-8") as fh:
|
||||
fh.write("\n".join(lines) + "\n")
|
||||
|
||||
print(f"[B3] B稿_v2.txt 写入: {B_MANUSCRIPT_PATH} ({len(lines)} 行)")
|
||||
return lines
|
||||
|
||||
|
||||
# ═══════════════════════════════════════════════════════════════
|
||||
# B4: 输出 dedup_debug.csv
|
||||
# ═══════════════════════════════════════════════════════════════
|
||||
def write_debug_csv(debug_rows):
|
||||
"""
|
||||
输出 dedup_debug.csv,逐帧记:
|
||||
idx, t_sec, ocr_text, decision(new/merged/blank), merged_into_start_t
|
||||
"""
|
||||
with open(DEBUG_CSV_PATH, "w", encoding="utf-8", newline="") as fh:
|
||||
writer = csv.writer(fh)
|
||||
writer.writerow([
|
||||
"idx", "t_sec", "ocr_text",
|
||||
"decision", "merged_into_start_t",
|
||||
])
|
||||
for row in debug_rows:
|
||||
writer.writerow([
|
||||
row["idx"],
|
||||
row["t_sec"],
|
||||
row["ocr_text"],
|
||||
row["decision"],
|
||||
row["merged_into_start_t"],
|
||||
])
|
||||
|
||||
print(f"[B4] dedup_debug.csv 写入: {DEBUG_CSV_PATH} ({len(debug_rows)} 行)")
|
||||
|
||||
|
||||
# ═══════════════════════════════════════════════════════════════
|
||||
# 主流程
|
||||
# ═══════════════════════════════════════════════════════════════
|
||||
def main():
|
||||
print(f"[B] SIM_THRESHOLD = {SIM_THRESHOLD}")
|
||||
|
||||
# B1
|
||||
records = load_ocr_raw()
|
||||
print(f"[B1] 读取 ocr_raw.jsonl,共 {len(records)} 条记录")
|
||||
|
||||
# B2
|
||||
segments, debug_rows = collapse_segments(records)
|
||||
print(f"[B2] 折叠完成: {len(segments)} 个不连续字幕段")
|
||||
print(f"[B2] 调试行数: {len(debug_rows)}")
|
||||
|
||||
# B3
|
||||
lines = write_b_manuscript(segments)
|
||||
|
||||
# B4
|
||||
write_debug_csv(debug_rows)
|
||||
|
||||
# ═══════════════════════════════════════════════════════════
|
||||
# 跑完报告
|
||||
# ═══════════════════════════════════════════════════════════
|
||||
total_frames = len(records)
|
||||
ocr_success = sum(1 for r in records if r["text"].strip())
|
||||
blank_count = sum(1 for r in records if is_blank_ocr(r["text"]))
|
||||
|
||||
# 收集所有"被判空场但原文本非空"的去重文本
|
||||
blank_but_nonempty = set()
|
||||
for r in records:
|
||||
t = r["text"]
|
||||
if is_blank_ocr(t) and t.strip():
|
||||
blank_but_nonempty.add(t)
|
||||
|
||||
print("\n" + "=" * 60)
|
||||
print("跑完报告")
|
||||
print("=" * 60)
|
||||
print(f"抽帧总数: {total_frames}")
|
||||
print(f"OCR 成功数(非空): {ocr_success}")
|
||||
print(f"空场数: {blank_count}")
|
||||
print(f"B稿_v2.txt 最终行数: {len(lines)}")
|
||||
print("=" * 60)
|
||||
print(f"B 稿路径: {B_MANUSCRIPT_PATH}")
|
||||
print(f"调试表路径: {DEBUG_CSV_PATH}")
|
||||
|
||||
# 写出"被判空场但原文本非空"去重清单到文件
|
||||
blank_list = sorted(blank_but_nonempty)
|
||||
with open(BLANK_FILTERED_PATH, "w", encoding="utf-8") as fh:
|
||||
for t in blank_list:
|
||||
fh.write(t + "\n")
|
||||
print(f"\n空白过滤清单写入: {BLANK_FILTERED_PATH} ({len(blank_list)} 条去重文本)")
|
||||
|
||||
# 打印"被判空场但原文本非空"的去重清单
|
||||
if blank_but_nonempty:
|
||||
print("\n" + "=" * 60)
|
||||
print("【被判空场但原文本非空】去重文本清单(请肉眼确认无真中文字幕)")
|
||||
print("=" * 60)
|
||||
for i, t in enumerate(blank_list, 1):
|
||||
print(f" [{i}] {repr(t)}")
|
||||
print(f"共 {len(blank_but_nonempty)} 条去重文本")
|
||||
else:
|
||||
print("\n无'被判空场但原文本非空'的文本。")
|
||||
|
||||
print("\n阶段 B 完成。")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1 @@
|
||||
动能撞击|爱国者-3防空反导系统|萨德|蓝皓|饱和攻击|ADC Mk1|ADC Mk2|ADC Mk3|AN/SLQ-25|Bold|Deceptor|F/A-18E/F|MOSS Mk70|Nixie|SM-3|Sieglinde|U型潜艇|《军事科技》|乌贼|仿鲨鱼皮|光学隐身衣|压载水舱系统|反潜战|反鱼雷软杀伤系统|听觉陷阱|埃兹拉·李|声呐|声学假目标|声学指纹|声学诱饵|声自导鱼雷|大青花鱼号|弗吉尼亚级攻击核潜艇|德国|德国U型潜艇|拖曳声呐阵列|攻击核潜艇|核潜艇|歼-10|气幕弹|水听器|水声信号|水滴型|沟槽面|洛杉矶级|流噪声|海军|海豚|海龟号|消声瓦|消音瓦|深水炸弹|潜艇|生物声呐|生物流线|电子替身|盟军运输船队|美国海军|舷侧声呐阵列|艇艏声呐阵列|英国|英国海军|隐蔽色|霍兰号|非声探测设备|鲨鱼皮|鹦鹉螺|鹰号
|
||||
@@ -0,0 +1,733 @@
|
||||
[0m7s] 在浩瀚海洋深处
|
||||
[0m9s] 数亿年的进化
|
||||
[0m10s] 塑造了无数神奇的
|
||||
[0m12s] 攻防利器
|
||||
[0m14s] 如今的人类
|
||||
[0m15s] 用钢铁和电路
|
||||
[0m16s] 重新发明了这一切
|
||||
[0m19s] 当潜艇
|
||||
[0m20s] 披上鲨鱼皮 消声瓦
|
||||
[0m22s] 当声呐模仿海豚
|
||||
[0m24s] 看穿黑暗
|
||||
[0m26s] 当乌贼的墨汁
|
||||
[0m27s] 化作潜艇的电子替身
|
||||
[0m30s] 自然早已写好了深海中
|
||||
[0m32s] 生存与猎杀的
|
||||
[0m34s] 终极教科书
|
||||
[0m38s] 本期《军事科技》
|
||||
[0m39s] 带您见证茫茫深海中
|
||||
[0m42s] 潜艇的仿生之路
|
||||
[1m21s] 各位观众你们好
|
||||
[1m22s] 欢迎收看《军事科技》
|
||||
[1m23s] 我是蓝皓
|
||||
[1m26s] 在人类出现之前
|
||||
[1m27s] 深海就是地球上
|
||||
[1m29s] 最残酷的竞技场
|
||||
[1m30s] 在这里生存的法则
|
||||
[1m32s] 只有两条
|
||||
[1m34s] 隐藏自己
|
||||
[1m35s] 发现敌人
|
||||
[1m37s] 深海依旧是地球上
|
||||
[1m39s] 最后的黑暗疆域
|
||||
[1m43s] 潜伏着人类工程学的杰作
|
||||
[1m46s] 也是终极的刺杀兵器
|
||||
[1m48s] 潜艇
|
||||
[1m51s] 提到潜艇
|
||||
[1m52s] 想必大家并不陌生
|
||||
[1m54s] 这样一头深海巨兽
|
||||
[1m56s] 从诞生至今
|
||||
[1m57s] 都借鉴了大自然中的
|
||||
[1m59s] 哪些动物的绝招呢
|
||||
[2m2s] 1776年9月7日
|
||||
[2m4s] 历史上第一次潜艇攻击开始了
|
||||
[2m9s] 这次攻击
|
||||
[2m10s] 是由埃兹拉·李来执行
|
||||
[2m12s] 他驾驶着“海龟”号
|
||||
[2m14s] 成功潜到英国战舰
|
||||
[2m15s] “鹰”号的尾部
|
||||
[2m17s] 接下去的工作
|
||||
[2m18s] 就是用钻头在敌舰上穿孔
|
||||
[2m21s] 以便固定炸药包
|
||||
[2m24s] 他打钻的地方
|
||||
[2m26s] 正好是一块金属板
|
||||
[2m28s] 半个小时之后
|
||||
[2m29s] 他仍然没有钻透敌舰
|
||||
[2m31s] 只好上浮返回
|
||||
[2m34s] 虽然“海龟”号
|
||||
[2m35s] 没有成功取得战果
|
||||
[2m37s] 但它拉开了
|
||||
[2m38s] 潜艇实战的序幕
|
||||
[2m41s] 从此
|
||||
[2m42s] 人类的战场
|
||||
[2m43s] 也随之从陆地
|
||||
[2m44s] 水面
|
||||
[2m45s] 发展到了水下
|
||||
[2m47s] “海龟”号
|
||||
[2m48s] 也凭借与现代潜艇相通的设计原理
|
||||
[2m51s] 获得了世界上
|
||||
[2m52s] 第一艘军用潜艇的称号
|
||||
[2m55s] 在世界潜艇发展史
|
||||
[2m57s] 占据了一席之地
|
||||
[3m0s] “海龟”号潜艇
|
||||
[3m1s] 顾名思义
|
||||
[3m2s] 它的外形很像海龟
|
||||
[3m4s] 舱内空气可供驾驶员
|
||||
[3m7s] 呼吸半个小时
|
||||
[3m9s] 在潜艇的上部
|
||||
[3m10s] 还装有两根通气管
|
||||
[3m12s] 以便上浮时打开
|
||||
[3m13s] 下沉时关闭
|
||||
[3m15s] 从而补充新鲜的空气
|
||||
[3m18s] “海龟”号潜艇之所以能够
|
||||
[3m20s] 成功地上浮下沉
|
||||
[3m22s] 离不开对一种美丽动物的
|
||||
[3m24s] 深刻学习
|
||||
[3m27s] 它就是鹦鹉螺
|
||||
[3m31s] 鹦鹉螺
|
||||
[3m32s] 它是一种海洋中的动物
|
||||
[3m35s] 非常地漂亮
|
||||
[3m36s] 外壳非常漂亮
|
||||
[3m37s] 但是你要到鹦鹉螺的内部
|
||||
[3m40s] 转一圈的话
|
||||
[3m41s] 它里边有很多的腔
|
||||
[3m43s] 就像我们在陆地上
|
||||
[3m46s] 看到的一个一个的小房子
|
||||
[3m48s] 在它的腔里边
|
||||
[3m49s] 人类正是学习了
|
||||
[3m51s] 鹦鹉螺的这种功能
|
||||
[3m53s] 在制造潜艇的过程中
|
||||
[3m56s] 就采用了水柜
|
||||
[3m58s] 水柜就是在这个
|
||||
[4m0s] 潜艇的艇壳的里边
|
||||
[4m3s] 筑成一个一个一个方块的
|
||||
[4m5s] 就是类似于储水的柜子
|
||||
[4m8s] 那么需要沉底的时候
|
||||
[4m10s] 就向水柜里边注水
|
||||
[4m12s] 水多了
|
||||
[4m13s] 沉了
|
||||
[4m14s] 潜艇就下沉到海底
|
||||
[4m19s] 在亿万年的进化中
|
||||
[4m20s] 鹦鹉螺
|
||||
[4m21s] 掌握了一种堪称完美的
|
||||
[4m23s] 浮力控制艺术
|
||||
[4m25s] 它的螺旋形外壳
|
||||
[4m27s] 被一系列隔膜
|
||||
[4m28s] 分隔成数十个独立的气室
|
||||
[4m30s] 如同一个精密的
|
||||
[4m32s] 多舱式潜水器
|
||||
[4m34s] 鹦鹉螺
|
||||
[4m35s] 能精确调节每个气室内液体
|
||||
[4m37s] 与气体的比例
|
||||
[4m39s] 分泌液体
|
||||
[4m40s] 进入气室时下沉
|
||||
[4m42s] 排出液体
|
||||
[4m43s] 让位给气体时上浮
|
||||
[4m46s] 这种精妙的生理机制
|
||||
[4m47s] 让它能在数百米的深海
|
||||
[4m50s] 与浅层水域之间
|
||||
[4m51s] 自如升降
|
||||
[4m53s] 几乎不消耗任何额外能量
|
||||
[4m56s] 人类潜艇的压载水舱系统
|
||||
[4m58s] 正是对这一自然智慧的完美复刻
|
||||
[5m1s] 当潜艇需要下潜时
|
||||
[5m3s] 阀门打开
|
||||
[5m4s] 海水涌入压载舱
|
||||
[5m6s] 取代舱内空气
|
||||
[5m8s] 艇体重量增加
|
||||
[5m10s] 当需要上浮时
|
||||
[5m12s] 高压气体
|
||||
[5m13s] 将海水强行排出
|
||||
[5m15s] 艇体重量减轻
|
||||
[5m18s] 1897年
|
||||
[5m19s] 一艘划时代的潜艇
|
||||
[5m20s] 悄然下水
|
||||
[5m23s] 这就是约翰·霍兰
|
||||
[5m24s] 以自己名字命名的
|
||||
[5m26s] 霍兰潜艇
|
||||
[5m28s] 这艘潜艇
|
||||
[5m29s] 汇集了众多开创式的设计
|
||||
[5m32s] 以往的潜艇
|
||||
[5m33s] 要么动力不足
|
||||
[5m34s] 要么水下姿态不稳
|
||||
[5m36s] 很难在实战中
|
||||
[5m37s] 发挥较大的作用
|
||||
[5m39s] 霍兰首次将压载舱
|
||||
[5m41s] 拆分为主舱与辅助舱
|
||||
[5m44s] 主压载舱
|
||||
[5m45s] 负责核心沉浮
|
||||
[5m47s] 而辅助舱
|
||||
[5m48s] 专攻姿态校准
|
||||
[5m49s] 能通过精准补水
|
||||
[5m51s] 维持平衡
|
||||
[5m52s] 精准调节潜深
|
||||
[5m54s] 解决了早期潜艇
|
||||
[5m55s] 纵倾失控的难题
|
||||
[5m58s] 这套系统
|
||||
[5m59s] 是现代潜艇操控系统的源头
|
||||
[6m2s] 这一设计
|
||||
[6m3s] 让潜艇
|
||||
[6m4s] 真正具备了实战价值
|
||||
[6m6s] 为深海作战开辟了道路
|
||||
[6m9s] 从霍兰潜艇压载舱的手动阀门
|
||||
[6m12s] 到现代潜艇压载舱的
|
||||
[6m14s] 计算机控制高压气系统
|
||||
[6m16s] 其核心原理始终未变
|
||||
[6m18s] 正如鹦鹉螺
|
||||
[6m20s] 用气体取代液体
|
||||
[6m22s] 潜艇用海水取代空气
|
||||
[6m25s] 这种能力
|
||||
[6m26s] 鹦鹉螺用了数亿年进化完成
|
||||
[6m28s] 而人类
|
||||
[6m29s] 只用了不到一百年
|
||||
[6m34s] 在广袤的海洋中
|
||||
[6m35s] 生存
|
||||
[6m36s] 是一场关乎看见
|
||||
[6m37s] 与不被看见的永恒竞赛
|
||||
[6m41s] 为了在这场竞赛中胜出
|
||||
[6m43s] 无数的海洋生物
|
||||
[6m44s] 进化出了一套精妙绝伦的
|
||||
[6m46s] 色彩伪装策略
|
||||
[6m48s] 这便是隐蔽色
|
||||
[6m51s] 像虎鲸
|
||||
[6m52s] 鲨鱼
|
||||
[6m53s] 这样一生与海洋打交道的生物
|
||||
[6m56s] 其背部往往呈现深蓝
|
||||
[6m58s] 深灰色
|
||||
[6m59s] 而其腹部通常是白色
|
||||
[7m2s] 或者是银白色
|
||||
[7m4s] 我们经常能够看到
|
||||
[7m6s] 一只从深海上浮的虎鲸
|
||||
[7m8s] 其白色的胸膛
|
||||
[7m9s] 在来自下方的视线中
|
||||
[7m11s] 几乎消失在明亮的天光里
|
||||
[7m14s] 而一只从上方
|
||||
[7m15s] 发起攻击的鲨鱼
|
||||
[7m16s] 其深色的背部
|
||||
[7m17s] 直到最后一刻
|
||||
[7m19s] 才会被发现
|
||||
[7m21s] 这套系统简单而高效
|
||||
[7m23s] 本质上是一种光学隐身衣
|
||||
[7m26s] 它抹平了生物体
|
||||
[7m27s] 在三维空间中的立体感
|
||||
[7m29s] 极大缩短了
|
||||
[7m30s] 不被天敌或者是猎物
|
||||
[7m32s] 发现的距离
|
||||
[7m34s] 海军工程师很快意识到
|
||||
[7m36s] 这正是潜艇在海洋中生存
|
||||
[7m38s] 所需要的第一层能力
|
||||
[7m43s] 一战时期
|
||||
[7m44s] 潜艇多活跃于浅海区域
|
||||
[7m47s] 主要面临目视侦察的威胁
|
||||
[7m51s] 各国率先借鉴海洋生物的
|
||||
[7m53s] 双色伪装逻辑
|
||||
[7m55s] 尝试用浅灰
|
||||
[7m56s] 绿蓝等颜色涂装艇身
|
||||
[7m59s] 试图让潜艇
|
||||
[8m0s] 融入近海的蓝灰色海水
|
||||
[8m4s] 模仿的正是虎鲸腹部
|
||||
[8m6s] 适配天光的浅色隐身思路
|
||||
[8m10s] 但早期设计
|
||||
[8m11s] 未能兼顾深浅海环境差异
|
||||
[8m14s] 效果寥寥
|
||||
[8m20s] 到了二战
|
||||
[8m21s] 德军和英军
|
||||
[8m22s] 则试验新的组合涂装
|
||||
[8m25s] 这些色彩既延续了
|
||||
[8m26s] 上部深色
|
||||
[8m28s] 下部浅色的仿生核心
|
||||
[8m30s] 又试图贴合
|
||||
[8m31s] 浅海藻类与海床环境
|
||||
[8m34s] 可一旦潜艇下潜深度增加
|
||||
[8m37s] 这套设计便迅速失效
|
||||
[8m41s] 阳光穿透海水层层衰减
|
||||
[8m44s] 深海本就是一片幽暗
|
||||
[8m47s] 浅色系艇身
|
||||
[8m48s] 反而成为显眼目标
|
||||
[8m50s] 更致命的是
|
||||
[8m52s] 早期涂料易被海水冲刷氧化
|
||||
[8m55s] 很快褪成乳白色
|
||||
[8m57s] 让仿生伪装彻底失效
|
||||
[9m8s] 真正的转折来自人类
|
||||
[9m10s] 对深海环境的深刻洞察
|
||||
[9m13s] 科学家发现
|
||||
[9m15s] 当深度超过200米
|
||||
[9m17s] 阳光完全消失
|
||||
[9m19s] 黑色
|
||||
[9m20s] 成为海洋的天然底色
|
||||
[9m23s] 这与鲨鱼深色背部
|
||||
[9m25s] 在深海中的隐身逻辑
|
||||
[9m27s] 不谋而合
|
||||
[9m29s] 于是纯黑色涂层
|
||||
[9m31s] 应运而生
|
||||
[9m32s] 它不仅能让潜艇
|
||||
[9m34s] 在幽暗深海中
|
||||
[9m35s] 完美融入环境
|
||||
[9m37s] 消除视觉轮廓
|
||||
[9m39s] 更凭借改良配方
|
||||
[9m40s] 解决了褪色难题
|
||||
[9m42s] 成为潜艇光学隐身的
|
||||
[9m44s] 终极方案
|
||||
[9m51s] 因为我们讲
|
||||
[9m52s] 涂层主要是为了颜色
|
||||
[9m54s] 也就是视觉上
|
||||
[9m55s] 不被对手发现
|
||||
[9m57s] 那么很多的动物
|
||||
[9m59s] 都有一层保护层
|
||||
[10m1s] 我们在建造潜艇的时候
|
||||
[10m2s] 也是从自然界
|
||||
[10m5s] 或仿生学里边学到了
|
||||
[10m7s] 如何变化颜色
|
||||
[10m9s] 因为颜色如果涂在潜艇上
|
||||
[10m11s] 是很难随着环境变化的
|
||||
[10m14s] 所以我们就要考虑
|
||||
[10m15s] 潜艇它生存在
|
||||
[10m16s] 一个什么样的环境里边
|
||||
[10m18s] 所以随着潜艇以后
|
||||
[10m20s] 也就是越来越先进
|
||||
[10m23s] 它下潜的深度越来越深
|
||||
[10m25s] 我们发现黑颜色
|
||||
[10m27s] 在下潜以后
|
||||
[10m29s] 不容易被发现
|
||||
[10m30s] 可以把自己隐蔽得很好
|
||||
[10m32s] 所以后来的潜艇
|
||||
[10m34s] 也就是
|
||||
[10m35s] 在二次大战以后的潜艇
|
||||
[10m37s] 逐步逐步地就往黑色上靠近
|
||||
[10m40s] 而现在
|
||||
[10m41s] 世界各国的潜艇
|
||||
[10m42s] 基本上全都涂成了黑颜色
|
||||
[10m46s] 然而在深海
|
||||
[10m48s] 仅仅看不见
|
||||
[10m49s] 还远远不够
|
||||
[10m51s] 随着潜艇潜得更深
|
||||
[10m53s] 航行时间更长
|
||||
[10m54s] 真正致命的威胁
|
||||
[10m56s] 开始从光线转移到声音
|
||||
[11m2s] 我听到它了
|
||||
[11m11s] 找到它了 目标很近 正右舷083
|
||||
[11m19s] 声音
|
||||
[11m20s] 是深海中传播最远
|
||||
[11m22s] 最难隐蔽的信号
|
||||
[11m24s] 一丝多余的噪声
|
||||
[11m26s] 就可能暴露位置
|
||||
[11m27s] 招来猎杀
|
||||
[11m33s] 于是
|
||||
[11m34s] 潜艇的隐身逻辑
|
||||
[11m35s] 也从颜色升级到了形态
|
||||
[11m38s] 潜艇的外形
|
||||
[11m40s] 并非一开始
|
||||
[11m41s] 就是今天的样子
|
||||
[11m43s] 很长一段时间里
|
||||
[11m44s] 它更像是一艘
|
||||
[11m45s] 能够下潜的水面舰艇
|
||||
[11m48s] 二战时期的潜艇
|
||||
[11m49s] 需要频繁浮出水面航行
|
||||
[11m52s] 水下只是暂时藏身之所
|
||||
[11m55s] 因此艇体高耸
|
||||
[11m57s] 结构复杂
|
||||
[11m58s] 水下阻力大
|
||||
[11m59s] 噪声高
|
||||
[12m1s] 真正的转折
|
||||
[12m2s] 发生在核动力出现之后
|
||||
[12m5s] 当潜艇可以长期潜航
|
||||
[12m7s] 人类第一次开始
|
||||
[12m9s] 只为水下生存
|
||||
[12m10s] 来设计它的形状
|
||||
[12m12s] 工程师将目光
|
||||
[12m14s] 投向自然界
|
||||
[12m15s] 鲸类
|
||||
[12m16s] 海豚等高速游泳动物
|
||||
[12m19s] 几乎都拥有同一种外形
|
||||
[12m21s] 前圆后尖的水滴形
|
||||
[12m24s] 1950年
|
||||
[12m25s] 美国“大青花鱼”号实验潜艇
|
||||
[12m28s] 验证了这一答案
|
||||
[12m30s] 水滴型艇体
|
||||
[12m31s] 显著降低阻力和流噪
|
||||
[12m34s] 让潜艇更快 更安静
|
||||
[12m36s] 也难被发现
|
||||
[12m38s] 从此
|
||||
[12m39s] 现代潜艇的外形
|
||||
[12m41s] 几乎统一
|
||||
[12m42s] 当潜艇的外形
|
||||
[12m44s] 已经足够像一条鱼
|
||||
[12m46s] 真正的较量才刚刚开始
|
||||
[12m49s] 接下来要隐藏的
|
||||
[12m51s] 不再是轮廓
|
||||
[12m52s] 而是声音本身
|
||||
[12m57s] 生物界
|
||||
[12m58s] 鲨鱼的速度非常快
|
||||
[13m0s] 因为在水中
|
||||
[13m1s] 它可以
|
||||
[13m3s] 以非常高的速度前进
|
||||
[13m5s] 实际上
|
||||
[13m6s] 它除了形体的这种流线型以外
|
||||
[13m9s] 还有就是它的皮肤
|
||||
[13m11s] 为什么我们很多的游泳运动员
|
||||
[13m13s] 所采用的游泳衣或游泳裤
|
||||
[13m16s] 采用的是叫所谓鲨鱼皮呢
|
||||
[13m19s] 就是借鉴了鲨鱼的
|
||||
[13m21s] 它皮肤上的这种V字形
|
||||
[13m23s] 也就是它在前进的时候
|
||||
[13m25s] 水流是顺着
|
||||
[13m27s] 箭头的方向向后流的
|
||||
[13m29s] 减少了阻力
|
||||
[13m31s] 减少了就是水
|
||||
[13m32s] 与鲨鱼皮肤的摩擦的声音
|
||||
[13m35s] 然后使它快速地前行
|
||||
[13m37s] 既减少了阻力
|
||||
[13m38s] 又降低了声音
|
||||
[13m40s] 所以我们在建造潜艇的时候
|
||||
[13m42s] 也借鉴了这样的情况
|
||||
[13m45s] 或者是说借鉴了这种功能
|
||||
[13m48s] 我们在材料上
|
||||
[13m49s] 采取一些特殊的材料
|
||||
[13m51s] 因为在深海大洋里边
|
||||
[13m54s] 这种材料
|
||||
[13m55s] 就是我们讲的这种消声瓦
|
||||
[13m58s] 因为消声瓦既要保证
|
||||
[14m0s] 它在水中
|
||||
[14m3s] 能够把噪音裹在潜艇里边
|
||||
[14m7s] 不被对方探测到
|
||||
[14m8s] 同时它也要像鲨鱼的皮肤一样
|
||||
[14m11s] 有一些减少与水的
|
||||
[14m14s] 这种摩擦和阻力
|
||||
[14m16s] 来使这个声音降低
|
||||
[14m19s] 也就是潜艇在高速航行的时候
|
||||
[14m21s] 要降低它与水的摩擦的声音
|
||||
[14m25s] 这样的话可以进一步地
|
||||
[14m27s] 使我们的潜艇
|
||||
[14m29s] 就是像鲨鱼一样
|
||||
[14m30s] 悄然无声地在水中行进
|
||||
[14m34s] 海豚的皮肤
|
||||
[14m36s] 能够分泌一种特殊黏液
|
||||
[14m38s] 使水流紧贴体表滑行
|
||||
[14m40s] 从而减少湍流与阻力
|
||||
[14m43s] 而更为人熟知的
|
||||
[14m45s] 是鲨鱼的皮肤结构
|
||||
[14m47s] 鲨鱼体表
|
||||
[14m48s] 覆盖着无数微小的V型盾鳞
|
||||
[14m52s] 这些看似粗糙的纹理
|
||||
[14m54s] 反而能打散涡流
|
||||
[14m55s] 抑制水流紊乱
|
||||
[14m57s] 大幅降低摩擦阻力
|
||||
[15m0s] 潜艇工程师
|
||||
[15m1s] 从中得到启发
|
||||
[15m3s] 在现代潜艇的消声瓦表面
|
||||
[15m6s] 常会设计出
|
||||
[15m7s] 类似的微沟槽
|
||||
[15m8s] 或者细微纹理
|
||||
[15m10s] 这种被称为沟槽面
|
||||
[15m12s] 或仿鲨鱼皮的结构
|
||||
[15m14s] 并不仅仅是为了
|
||||
[15m15s] 让潜艇航行得更省力
|
||||
[15m18s] 更重要的是
|
||||
[15m19s] 它能够有效降低水流
|
||||
[15m21s] 掠过艇体时产生的流噪声
|
||||
[15m24s] 让潜艇在深海中
|
||||
[15m26s] 变得更安静
|
||||
[15m27s] 也更加致命
|
||||
[15m29s] 海豚在浑浊的海水中
|
||||
[15m31s] 能够准确地找到小鱼
|
||||
[15m33s] 还能分辨出哪条更加肥美
|
||||
[15m36s] 这种能力来自它们独特的
|
||||
[15m38s] 水下视觉生物声呐
|
||||
[15m41s] 当海豚发出
|
||||
[15m43s] 咔嗒咔嗒的声音时
|
||||
[15m44s] 这些声波
|
||||
[15m45s] 就像无形的探照灯向前发射
|
||||
[15m49s] 声音遇到物体产生回声
|
||||
[15m51s] 海豚通过下颚
|
||||
[15m53s] 接收这些回声
|
||||
[15m54s] 就能在脑海中
|
||||
[15m56s] 描绘出周围环境的立体图像
|
||||
[16m0s] 它们能够听出
|
||||
[16m1s] 藏在泥沙里的两条鱼
|
||||
[16m3s] 哪条更加肥美
|
||||
[16m5s] 前方是岩石还是海草
|
||||
[16m8s] 这种能力
|
||||
[16m9s] 让任何人工声呐都望尘莫及
|
||||
[16m13s] 人类从海豚身上
|
||||
[16m14s] 获得了灵感
|
||||
[16m16s] 发明了声呐技术
|
||||
[16m19s] 二战爆发后
|
||||
[16m20s] 德国U型潜艇
|
||||
[16m22s] 再次成为海战中的核心力量
|
||||
[16m25s] 在广阔的大西洋上
|
||||
[16m27s] 它们潜伏在航道附近
|
||||
[16m29s] 利用夜色和水下掩护
|
||||
[16m31s] 对盟军运输船队
|
||||
[16m33s] 发动突然袭击
|
||||
[16m35s] 单艘潜艇就足以瘫痪
|
||||
[16m37s] 一整条补给线
|
||||
[16m39s] 对英国而言
|
||||
[16m40s] 这不仅是军事问题
|
||||
[16m42s] 更是生存危机
|
||||
[16m45s] 装备
|
||||
[16m46s] 军需
|
||||
[16m47s] 几乎全部依赖海上运输
|
||||
[16m50s] 而水下的敌人却始终看不见
|
||||
[16m53s] 面对潜艇带来的巨大压力
|
||||
[16m56s] 英国海军被迫改变思路
|
||||
[16m58s] 不再依赖目视搜索
|
||||
[17m0s] 而是尝试在深海中
|
||||
[17m2s] 倾听敌人的存在
|
||||
[17m4s] 以水听器为基础
|
||||
[17m6s] 配合主动声波探测
|
||||
[17m7s] 声呐系统
|
||||
[17m9s] 逐步成型
|
||||
[17m11s] 并率先装备在
|
||||
[17m12s] 驱逐舰和护卫舰上
|
||||
[17m15s] 在护航战例中
|
||||
[17m17s] 第一次实现了对潜艇的
|
||||
[17m19s] 稳定定位
|
||||
[17m21s] 使深水炸弹不再是盲目投掷
|
||||
[17m24s] 而成为有目标的打击
|
||||
[17m27s] 随着反潜技术的成熟
|
||||
[17m29s] 曾经游刃有余的U型潜艇
|
||||
[17m31s] 开始频繁暴露行踪
|
||||
[17m33s] 损失不断增加
|
||||
[17m36s] 大西洋的海战
|
||||
[17m37s] 从潜艇的单方面猎杀
|
||||
[17m39s] 逐渐演变成一场
|
||||
[17m41s] 围绕隐蔽与探测的
|
||||
[17m43s] 技术对抗
|
||||
[17m45s] 而这一技术
|
||||
[17m46s] 正是源自大自然中的
|
||||
[17m48s] 生物声呐
|
||||
[17m51s] 那么说到声呐
|
||||
[17m53s] 就涉及到一个有趣的知识
|
||||
[17m56s] 潜艇在水下航行时
|
||||
[17m58s] 由于水的密度
|
||||
[17m59s] 是空气密度的大约800倍
|
||||
[18m2s] 导致雷达电磁波
|
||||
[18m3s] 通讯电磁波
|
||||
[18m4s] 无法穿透海水
|
||||
[18m7s] 严谨地来说
|
||||
[18m8s] 就是被海水快速地吸收
|
||||
[18m10s] 传不远
|
||||
[18m11s] 因此
|
||||
[18m12s] 声呐就成为了潜艇的主要探测工具
|
||||
[18m16s] 声呐的本质
|
||||
[18m17s] 是一个经过微调的耳朵
|
||||
[18m19s] 它的工作原理
|
||||
[18m20s] 类似于鲸鱼或海豚的回声定位
|
||||
[18m24s] 根据工作类型
|
||||
[18m25s] 声呐可分为
|
||||
[18m26s] 主动声呐和被动声呐
|
||||
[18m29s] 主动声呐模式
|
||||
[18m30s] 需要潜艇主动发射声呐信号
|
||||
[18m33s] 声呐信号接触到目标后会反射回来
|
||||
[18m37s] 再被潜艇捕捉
|
||||
[18m39s] 但在战争中
|
||||
[18m40s] 这不是一个明智的决策
|
||||
[18m42s] 因为这种探索
|
||||
[18m43s] 就像黑夜中打开手电筒
|
||||
[18m46s] 照亮目标的同时
|
||||
[18m47s] 也暴露了自己
|
||||
[18m49s] 而被动声纳模式
|
||||
[18m51s] 是静默航行
|
||||
[18m53s] 利用被动声呐基阵
|
||||
[18m54s] 接收对方的主动声呐探测信号
|
||||
[18m57s] 来确定对手位置
|
||||
[18m59s] 被动声纳模式下
|
||||
[19m1s] 潜艇不会暴露目标
|
||||
[19m3s] 隐蔽性好
|
||||
[19m5s] 声呐
|
||||
[19m6s] 作为动物界里边
|
||||
[19m7s] 海豚
|
||||
[19m9s] 是有它特异的功能
|
||||
[19m11s] 因为海豚
|
||||
[19m12s] 它是从嘴里
|
||||
[19m13s] 发出不同的声响
|
||||
[19m15s] 然后声响传出去以后
|
||||
[19m18s] 如果撞在礁石上
|
||||
[19m20s] 就是海底的礁石上
|
||||
[19m22s] 会反射回来一个回波
|
||||
[19m24s] 它用嘴巴下面的接收器
|
||||
[19m28s] 去把这个声音接收到
|
||||
[19m30s] 然后判定这是石头还是鱼类
|
||||
[19m33s] 如果它的发出去的声音
|
||||
[19m37s] 撞上的是鱼类
|
||||
[19m39s] 它的回声
|
||||
[19m41s] 是和撞在岩石上的声音不同的
|
||||
[19m44s] 而且它收到的回波
|
||||
[19m47s] 也就是声音传播
|
||||
[19m50s] 回波在水里传的
|
||||
[19m51s] 因为很远
|
||||
[19m53s] 它接收下来就可以分辨出来
|
||||
[19m55s] 这是它捕食的猎物了
|
||||
[19m59s] 那么既然
|
||||
[20m0s] 海豚有这么好的这种功能
|
||||
[20m4s] 也就类似于声呐的功能
|
||||
[20m6s] 人类就向它们学习
|
||||
[20m8s] 就仿制了这种声响
|
||||
[20m10s] 这就是主动声响
|
||||
[20m12s] 也就是当我的潜艇
|
||||
[20m14s] 航行的时候
|
||||
[20m15s] 我不断地通过
|
||||
[20m17s] 我的声呐向外释放声波
|
||||
[20m21s] 当这些声波
|
||||
[20m23s] 放到海洋里边去之后
|
||||
[20m25s] 它会一去不复返
|
||||
[20m26s] 但是如果这些声波
|
||||
[20m29s] 撞击到了
|
||||
[20m30s] 对方的潜艇或者是舰艇
|
||||
[20m33s] 或者是海底的这些礁石
|
||||
[20m36s] 它反射回来的声波是不一样的
|
||||
[20m38s] 这样就凭借我们声呐兵
|
||||
[20m41s] 来收到的回波
|
||||
[20m43s] 判断前面是金属
|
||||
[20m46s] 还是石头还是洋流
|
||||
[20m49s] 这是一艘
|
||||
[20m50s] 弗吉尼亚级攻击核潜艇
|
||||
[20m53s] 潜艇的艇首
|
||||
[20m54s] 布置着大型声呐阵列
|
||||
[20m56s] 在早期批次上
|
||||
[20m58s] 它呈现为球形结构
|
||||
[21m0s] 它始终对前方海域
|
||||
[21m2s] 进行持续探测
|
||||
[21m4s] 通过分析回波的时间与特征
|
||||
[21m7s] 潜艇
|
||||
[21m8s] 能够判断目标的距离
|
||||
[21m10s] 方位
|
||||
[21m11s] 并对水下接触进行初步识别
|
||||
[21m14s] 沿着艇体左右两侧
|
||||
[21m16s] 分布着舷侧声呐阵列
|
||||
[21m19s] 海豚身体两侧的侧线系统
|
||||
[21m22s] 负责监听来自各个方向的
|
||||
[21m24s] 细微声学变化
|
||||
[21m26s] 即使潜艇保持静默状态
|
||||
[21m28s] 不主动发声
|
||||
[21m30s] 这些阵列依然能够捕捉
|
||||
[21m32s] 远处螺旋桨的低频噪声
|
||||
[21m34s] 以及水流扰动形成的异常信号
|
||||
[21m38s] 在潜艇尾部
|
||||
[21m39s] 一条细长的
|
||||
[21m40s] 拖曳声呐阵列被放出
|
||||
[21m43s] 这是弗吉尼亚级
|
||||
[21m44s] 最重要的远程感知手段之一
|
||||
[21m47s] 它远离艇体自身的噪声干扰
|
||||
[21m50s] 将潜艇的声觉
|
||||
[21m52s] 延伸到更远的海域
|
||||
[21m54s] 用于发现极其微弱
|
||||
[21m55s] 距离极远的水下目标
|
||||
[21m58s] 艇舯声呐
|
||||
[21m59s] 舷侧阵列
|
||||
[22m0s] 与拖曳声呐协同工作
|
||||
[22m3s] 使这艘潜艇
|
||||
[22m4s] 即使在完全隐蔽的状态下
|
||||
[22m6s] 也能构建起一幅
|
||||
[22m8s] 连续立体的水下态势图
|
||||
[22m13s] 当生存受到直接威胁时
|
||||
[22m16s] 顶尖的猎手
|
||||
[22m17s] 与最先进的武器
|
||||
[22m18s] 都诉诸同一种策略
|
||||
[22m21s] 制造混乱
|
||||
[22m22s] 隐藏本体
|
||||
[22m24s] 当乌贼遇到危险时
|
||||
[22m26s] 会迅速喷出浓密的墨汁
|
||||
[22m29s] 它并非简单的黑色液体
|
||||
[22m31s] 它在海水中会迅速扩散
|
||||
[22m33s] 形成一个与自身形态相似的
|
||||
[22m36s] 浓密的墨汁伪影
|
||||
[22m39s] 这个深色轮廓能够立即吸引
|
||||
[22m41s] 并且锁定捕食者的
|
||||
[22m43s] 视觉注意力
|
||||
[22m44s] 为真身的逃离
|
||||
[22m46s] 创造关键的时间窗口
|
||||
[22m49s] 潜艇工程师
|
||||
[22m50s] 完美地借鉴了这套
|
||||
[22m52s] 复杂的求生系统
|
||||
[22m54s] 并将其转化为防御装备
|
||||
[22m57s] 声学诱饵
|
||||
[22m59s] 潜艇感知到来袭的
|
||||
[23m1s] 声自导鱼雷
|
||||
[23m2s] 或者敌方主动声呐锁定时
|
||||
[23m5s] 会从发射管
|
||||
[23m6s] 快速射出声学诱饵
|
||||
[23m8s] 它是潜艇的一种高电子替身
|
||||
[23m12s] 声学诱饵
|
||||
[23m13s] 通常是一个自航式的
|
||||
[23m15s] 水下航行器
|
||||
[23m16s] 被发射后
|
||||
[23m17s] 它会精确模仿母艇的
|
||||
[23m19s] 发动机噪声
|
||||
[23m21s] 螺旋桨节拍等
|
||||
[23m22s] 独特的声学指纹
|
||||
[23m24s] 还会主动航行
|
||||
[23m26s] 制造出比气幕弹
|
||||
[23m28s] 更像一艘真实潜艇的
|
||||
[23m29s] 移动声学目标
|
||||
[23m31s] 来袭的智能鱼雷
|
||||
[23m33s] 能够区分简单的气泡幕
|
||||
[23m35s] 和复杂的潜艇噪声
|
||||
[23m37s] 声学诱饵
|
||||
[23m38s] 通过发出更具吸引力的
|
||||
[23m40s] 听觉陷阱
|
||||
[23m41s] 引诱鱼雷偏离航道
|
||||
[23m43s] 转而追踪并攻击这个替身
|
||||
[23m47s] 而这些诱饵的发现
|
||||
[23m50s] 实际上就是根据海洋动物
|
||||
[23m52s] 它一些保护自己的这些方式
|
||||
[23m55s] 来学习的
|
||||
[23m56s] 因为它们要么金蝉脱壳
|
||||
[23m58s] 要么以假乱真
|
||||
[24m2s] 所以我们看
|
||||
[24m3s] 随着人工智能的发现
|
||||
[24m5s] 随着我们无人装备的发现
|
||||
[24m9s] 我们就制造了
|
||||
[24m11s] 不同的这种诱饵
|
||||
[24m13s] 主动的 被动的
|
||||
[24m15s] 总之当发现潜艇
|
||||
[24m17s] 被攻击或被人发觉的时候
|
||||
[24m19s] 就扔出一个假目标
|
||||
[24m21s] 向不同的方向
|
||||
[24m22s] 甚至是相反的方向来行进
|
||||
[24m25s] 让它的鱼雷
|
||||
[24m26s] 让它的追踪的设备
|
||||
[24m28s] 去跟踪假目标
|
||||
[24m30s] 而真正的潜艇
|
||||
[24m31s] 悄悄地就逃生了
|
||||
[24m34s] 控制室 这里是声响室
|
||||
[24m35s] 水中有鱼雷 方位241
|
||||
[24m38s] 高速前进 右满舵
|
||||
[24m42s] 找到它了 目标很近 正右舷083
|
||||
[24m49s] 发射5英寸的反鱼雷诱饵
|
||||
[24m51s] 发射反鱼雷诱饵
|
||||
[25m9s] 这套系统
|
||||
[25m10s] 在实战与对抗演练中
|
||||
[25m12s] 屡建奇功
|
||||
[25m14s] 其核心战术
|
||||
[25m15s] 都与数百万年前的乌贼
|
||||
[25m17s] 如出一辙
|
||||
[25m19s] 乌贼用一团墨汁
|
||||
[25m21s] 换取生存的时间
|
||||
[25m23s] 人类则用电子替身
|
||||
[25m25s] 把这一秒无限放大
|
||||
[25m28s] 当深海的幽灵收起獠牙
|
||||
[25m31s] 当猎杀者的声呐归于沉寂
|
||||
[25m34s] 这片蔚蓝疆域的博弈
|
||||
[25m36s] 却从未停止
|
||||
[25m38s] 从鹦鹉螺的浮力控制
|
||||
[25m40s] 到核潜艇的无限续航
|
||||
[25m42s] 从乌贼的墨汁
|
||||
[25m43s] 到潜艇的电子诱饵
|
||||
[25m46s] 我们见证了一场
|
||||
[25m47s] 跨越数亿年的
|
||||
[25m48s] 军事科技进化
|
||||
[25m51s] 自然用漫长的时光
|
||||
[25m52s] 雕琢出生存的智慧
|
||||
[25m54s] 人类用智慧在钢铁中
|
||||
[25m57s] 复刻这些法则
|
||||
[25m59s] 这不仅是矛与盾的较量
|
||||
[26m1s] 更是对生命本身
|
||||
[26m3s] 最深刻的学习
|
||||
[26m5s] 下一场改变游戏规则的技术革命
|
||||
[26m8s] 或许正在随着
|
||||
[26m9s] 某只深海生物的游弋
|
||||
[26m11s] 在黑暗中悄然酝酿
|
||||
[26m15s] 感谢您持续关注
|
||||
[26m16s] 国防军事频道《军事科技》
|
||||
[26m19s] 我们下周同一时间
|
||||
[26m20s] 再见
|
||||
@@ -958,6 +958,7 @@ def align_batch(
|
||||
max_tokens=4096,
|
||||
temperature=0.0,
|
||||
)
|
||||
parsed = _parse_align_json(raw_response, len(batch_b))
|
||||
except Exception as e:
|
||||
print(
|
||||
f"[fusion_align] LLM 调用失败,回退: {e}",
|
||||
@@ -974,8 +975,6 @@ def align_batch(
|
||||
)
|
||||
return records
|
||||
|
||||
parsed = _parse_align_json(raw_response, len(batch_b))
|
||||
|
||||
records = []
|
||||
for item in parsed:
|
||||
records.append(
|
||||
|
||||
Reference in New Issue
Block a user