name: iv-interview-debrief description: >- 面试录音复盘全流程:Whisper 转录 → 问答整理 txt → 提取 iv.md 问题清单。 触发词:面试复盘、转录、iv.md、iv2.md、录音转文字、面试录音、Whisper、IV-arena。
面试录音复盘(IV-arena)
将 IV-arena/battle/{日期}/ 下的面试录音转为结构化复盘材料。
目录约定
IV-arena/
├── conv/ # 转录工具
│ ├── transcribe.py
│ ├── requirements.txt
│ └── README.md
└── battle/{M-D}/ # 如 6-1 = 6月1日
├── 录音.m4a
├── 录音.txt # 问答整理(Step 2 产出)
├── iv.md # 第 1 轮问题清单
└── iv2.md # 第 2 轮(依次 iv3.md …)
工作流
按顺序执行,每步完成后再进入下一步:
- [ ] Step 1: Whisper 转录 → 原始 .txt
- [ ] Step 2: 整理为问答格式 .txt
- [ ] Step 3: 提取问题清单 iv{N}.md
用户若只要求其中一步,只执行对应步骤;若已有原始 txt,跳过 Step 1。
Step 1: 转录
工具:IV-arena/conv/transcribe.py(OpenAI Whisper base,中文)
前置:ffmpeg 已安装;Python 环境有 openai-whisper。
Windows(PowerShell):
pip install openai-whisper
python IV-arena/conv/transcribe.py "IV-arena/battle/6-1/录音.m4a"
macOS(conda 推荐):
export KMP_DUPLICATE_LIB_OK=TRUE
conda run -n iv-helper-speech python IV-arena/conv/transcribe.py "IV-arena/battle/6-1/录音.m4a"
输出:与音频同目录、同名的 .txt(含 [...Xs] 停顿标记,行宽约 30 字)。
转录耗时较长(数分钟),block_until_ms 设 ≥600000。conda 不可用时直接用系统 Python + pip。
Step 2: 问答整理
读取 Step 1 的原始 txt,覆写为问答格式(不是另存新文件)。
原文保真(分割行 / 重组时必守)
整理、分行、按问答切块时:
- 尽量不删字:保留面试官与候选人的原话信息;允许加
**问:**/**答:**、章节标题、---分隔,但不要为「通顺」「简洁」而删掉口语、重复、停顿里的实质内容。 - 只改明显错误:Whisper 谐音误识别、繁简混排、对照下表可确定的术语错写——改错别字即可,不要擅自改写句式、合并掉原句里的限定词或数字。
- 保留停顿标记:不要删除原始转录里的
[...x.xs]/[...x s]停顿标记。它们可能代表候选人在思考、沉默、卡顿,长停顿或频繁停顿是复盘扣分点。整理问答时应把停顿标记保留在对应的问句或答句中,必要时可在答末额外标注(长停顿,表达卡顿)。 - 可以做的:按话题分段、合并同一轮连续追问到同一
**问:**、在答末标注(卡住,未答完整)等状态;长句换行(见格式规则第 9 条);末尾长时间空白后的乱码/无意义片段可删(见格式规则第 5 条)。 - 拿不准时:宁可保留原转写用词,也不要猜着删或润色成「更像标准答案」的表述。
格式规则
- 文件头:
# 面试问答整理+ 源文件名 - 按话题分
## 章节(如 NSQ、Redis、场景题) - 每组问答:
**问:** …
**答:** …
- 章节之间用
---+ 空行分隔 - 去掉末尾无效噪音(长时间空白后的乱码);但不要把正常问答中的
[...x.xs]停顿标记当作噪音删除 - 修正 Whisper 常见误识别(见下表);属错字/术语误识别才改,不是润色全文
- 答不完整处标注
(卡住,未答完整)/(未给出具体数字) - 停顿特别长(如超过 3 秒)或同一回答里多次停顿时,可保留停顿标记并追加
(长停顿,表达卡顿),用于后续复盘表达流畅度 - 长句换行:
**答:**下若整段超过约 80 字或含多个步骤/分点,必须在自然断点处换行,不要堆成一行超长段落。换行优先位置:- 停顿标记
[...x.xs]之后 - 步骤切换处(「首先 / 然后 / 接着 / 最后」等)
- 并列分点之间(「第一个…第二个…」或分号、句号后)
- 角色/概念列举之间(如手机、NAS、云端各占一行)
- 只加换行,不删字、不改写;单行仍宜控制在约 30–80 字,便于复盘扫读
- 停顿标记
Whisper 误识别修正
| 误识别 | 修正 |
|---|---|
| Blyb / 文党中心 | Bleve / 文档中心 |
| 一步化 / 硬评化 | 异步化 |
| 市具表 | 去重表 |
| Fs设计 / Fs Noteify | fsnotify |
| 任何线流 / 淋排 | 令牌桶 / 令牌 |
| 现流 | 限流 |
| 换成机穿 | 缓存击穿 |
| contest | Context |
| 搞补听 / 国入天安 | Goroutine |
| 平衡 / 爆光 | 频控 / 曝光 |
| 病房 | 并发 |
| Restrattle | Ristretto |
| 看水 / 可头 | 刊位 / 可投 |
| 所隐 / 洞围 | 索引 / 字段 |
| 第四 | Redis |
| 聊天服 | K8s |
| 树组一 | 数组越界 |
完整模板见 templates.md。
Step 3: 问题清单 iv{N}.md
从问答 txt 提取面试官的问题,不写答案。
命名
| 文件 | 含义 |
|---|---|
iv.md |
第 1 轮 |
iv2.md |
第 2 轮 |
iv3.md |
第 3 轮 … |
与音频、txt 放在同一 battle/{M-D}/ 目录。
格式
[问题]
1. 主题大类
1. 具体问题(合并同一主题的连续追问)
2. …
2. 主题大类
1. …
关键词1、关键词2、关键词3
规则:
- 问题用陈述句/疑问句写清考点,不要只写关键词
- 同一大题下的追问合并为子项,避免一行一题过于碎片化
- 场景题单独成类(如「广告出价接口设计(场景题)」)
- 最后一行:3–8 个话题标签,空格或顿号分隔
完整示例见 templates.md。
质量检查
完成三步后自检:
- txt 中每个问都有对应答(或标注未答)
- 问答 txt 相对原始转写:无无故删字;改动限于分段、格式、误识别修正与末尾噪音
-
[...x.xs]/[...x s]停顿标记已保留;长停顿和频繁停顿没有被清理掉 - 长答已按自然断点换行,无整段超长单行堆砌
- iv{N}.md 覆盖 txt 中所有面试问题,无遗漏大题
- 技术名词已修正,无 Whisper 乱码残留
- iv 编号与本轮录音对应(第 2 轮写 iv2.md,不覆盖 iv.md)
用户常见指令
| 指令 | 执行 |
|---|---|
@录音.m4a @conv/README.md 转为 txt 并编写 iv2.md |
全流程;iv 编号按用户指定 |
按问题-答案用空行分割 |
仅 Step 2;尽量不删字,只改正错别字/误识别 |
编写 iv2.md |
Step 3(需已有问答 txt) |