展开本页目录
开始前准备什么
- 下载本页素材,使用有权处理的声音,保留原始输入。
- 为对应工具建立独立 Python 环境,核对实际模型与版本。
- 先在小样中试听并保留失败记录,再处理长录音。
- 安装可执行的 FFmpeg,先运行 ffmpeg -version;WhisperX 的 load_audio 使用 FFmpeg CLI。
- 确认录音中的已知两人结构
- 核对 diarization 模型权限
- 保留文字转录与对齐结果
- 设置已知人数,保持匿名标签
- 按词关联并抽听切换边界
- 保存权限与推理边界
本任务输入、脚本、原始输出或明确待运行模板、原文、校验与损坏负例;不含模型权重。
macOS say 合成的本站原创任务输入;不是模型生成成功证明。
朗读输入与回听依据,独立于机器实际稿。
包含具体命令、步骤、来源与未运行范围。
保留原始文件;准确性需回听,脚本存在不代表模型已运行。
保留原始文件;准确性需回听,脚本存在不代表模型已运行。
1. 确认录音中的已知两人结构
输入是左右分轨的两段系统合成练习,并提供人工已知 speaker-reference.csv。用它检查说话人标签,不声称模型认识真实人名;实际多人同轨须另外回听。
2. 核对 diarization 模型权限
当前官方 DiarizationPipeline 默认模型是 pyannote/speaker-diarization-community-1,需要在 Hugging Face 接受访问条件并准备有读取权限的 token。token 只从环境读,不写进下载文件、脚本、截图或输出。没有访问权限时把此阶段留为未执行,不替换成伪造标签。
3. 保留文字转录与对齐结果
说话人流程与 ASR/forced alignment 分开。先生成并核对 aligned.json,再以相同音频运行分离;本页有真实双轨 ASR 参考,没有未执行的说话人模型输出。 本素材包也附针对同一 input.wav 与 expected.txt 的 align.py,先运行它获得本录音 aligned.json;不能直接拿另一页短句的对齐结果。 diarize.py 在加载模型前检查 aligned.json 的源 hash 与当前 input.wav 完全一致,并拒绝缺失或空 HF_TOKEN;不会覆盖错误来源 hash 后继续执行。
run-commands.sh
ffmpeg -version
python3.11 -m venv .venv-whisperx
.venv-whisperx/bin/pip install whisperx
.venv-whisperx/bin/python align.py
export HF_TOKEN=你自己的模型访问凭证
.venv-whisperx/bin/python diarize.py aligned.json
python3 check.py --result diarized.json4. 设置已知人数,保持匿名标签
本例 min_speakers=max_speakers=2 只表达练习已知两人,不适用于未知会议。使用 SPEAKER_00/01,真实姓名由人工映射;第一次标签编号变化也不意味着换人。
5. 按词关联并抽听切换边界
调用 assign_word_speakers 后保留无 speaker 或重叠项。不要强行把同时讲话归到一个人;核对提问结尾和回答起点,用 review.csv 记录。
6. 保存权限与推理边界
素材包含 diarize.py 与结构样例。实际分离未在本机执行;下载后需用户满足模型协议并运行,只有实际 diarized.json 才用于下游字幕。
7. 下载材料、检查负例与继续操作
解压素材包后先运行 python check.py,再运行 python check.py --self-test。前者读取真实 WAV / JSON / SRT 与源 hash;后者拒绝损坏 WAV、倒置时间、越界时间和缺失词时间。文件通过不代表文字、情绪或说话人判定已通过。
怎样确认已经完成
- 模型权限由用户完成,凭证不进入文件。
- 匿名 speaker 标签不冒充真实身份识别。
- 无标签、重叠和切换边界记录为待核对。
常见问题
能自动识别谁是某位同事吗?
不能。diarization 分的是匿名说话人区间,真实姓名需要根据会议来源和人工回听确认。
一定要接受 Hugging Face 模型协议吗?
以实际使用模型的访问要求为准。官方流程可能需要协议及 token;没有权限时停止这一步,不用伪造结果绕过。


