[ SKILL_DOCUMENTATION ]
# 音频转录
使用 OpenAI 转录音频,并在需要时进行说话人识别(Diarization)。优先使用捆绑的 CLI 以实现确定性、可重复的运行。
## 工作流
1. 收集输入:音频文件路径、期望的响应格式(text/json/diarized_json)、可选的语言提示以及任何已知的说话人参考。
2. 验证 `OPENAI_API_KEY` 是否已设置。如果缺失,请要求用户在本地设置(不要要求用户在聊天中粘贴密钥)。
3. 使用合理的默认值(快速文本转录)运行捆绑的 `transcribe_diarize.py` 工具。
4. 验证输出:转录质量、说话人标签和片段边界;如果需要,通过单次针对性修改进行迭代。
5. 在本仓库工作时,将输出保存到 `output/transcribe/`。
## 决策规则
- 默认使用 `gpt-4o-mini-transcribe` 和 `--response-format text` 进行快速转录。
- 如果用户需要说话人标签或识别,使用 `--model gpt-4o-transcribe-diarize --response-format diarized_json`。
- 如果音频长度超过约 30 秒,保留 `--chunking-strategy auto`。
- `gpt-4o-transcribe-diarize` 不支持提示词(Prompting)。
## 输出约定
- 使用 `output/transcribe//` 进行评估运行。
- 对多个文件使用 `--out-dir` 以避免覆盖。
## 依赖(如果缺失请安装)
优先使用 `uv` 进行依赖管理。
uv pip install openai
如果 `uv` 不可用:
python3 -m pip install openai
## 环境
- 必须设置 `OPENAI_API_KEY` 才能进行实时 API 调用。
- 如果密钥缺失,指导用户在 OpenAI 平台 UI 中创建一个并在其 shell 中导出。
- 永远不要要求用户在聊天中粘贴完整密钥。
## 技能路径(设置一次)
bash
export CODEX_HOME="${CODEX_HOME:-$HOME/.codex}"
export TRANSCRIBE_CLI="$CODEX_HOME/skills/transcribe/scripts/transcribe_diarize.py"
用户范围的技能安装在 `$CODEX_HOME/skills`(默认:`~/.codex/skills`)。
## CLI 快速入门
单个文件(默认快速文本):
python3 "$TRANSCRIBE_CLI"
path/to/audio.wav
--out transcript.txt
带有已知说话人(最多 4 个)的识别:
python3 "$TRANSCRIBE_CLI"
meeting.m4a
--model gpt-4o-transcribe-diarize
--known-speaker "Alice=refs/alice.wav"
--known-speaker "Bob=refs/bob.wav"
--response-format diarized_json
--out-dir output/transcribe/meeting
纯文本输出(显式):
python3 "$TRANSCRIBE_CLI"
interview.mp3
--response-format text
--out interview.txt
## 参考映射
- `references/api.md`