Skip to content

About

Speaker diarization that exports timeline-aligned tracks for video editing

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

VoiceCutting

面向视频剪辑工作流的说话人分离工具。VoiceCutting 将会议录音按说话人导出为与原始时间线 完全对齐的 WAV 音轨,可直接导入剪映、Premiere Pro 或 DaVinci Resolve。

Alpha v0.1.0: 当前正式支持 Windows 和 Python 3.10。该版本适合试用和反馈,尚不 承诺 DER、两小时以上录音的内存表现、真实片段置信度或复杂重叠语音的准确率。

English: VoiceCutting is a Windows-first speaker diarization CLI that exports one silent-padded, timeline-aligned WAV track per speaker for video editing. v0.1.0 is an Alpha release.

特性

  • pyannote.audio 3.1 自动估算说话人数,也支持 --num-speakers N 强制人数。
  • 导出 speaker_0_full.wav、speaker_1_full.wav 等等长、同采样率音轨。
  • 合并相邻片段、过滤短片段并将总时长过短的“幽灵说话人”标记为 unknown。
  • 支持 JSON、RTTM、CSV 和可选的说话人拼接音轨。
  • pyannote 内置 VAD;不额外加载独立 VAD 模型。

安装

先安装 Conda 和 FFmpeg,然后:

git clone https://github.com/husaixy/VoiceCutting.git
cd VoiceCutting
conda create -n voicecutting python=3.10
conda activate voicecutting
pip install .

首次运行前需要执行 hf auth login,并在 HuggingFace 接受以下模型条款:

使用

# 自动估算说话人数
diarysplit meeting.mp4 --out output

# 已知人数时固定为 2 人
diarysplit meeting.mp4 --out output --num-speakers 2

# 限制自动估算范围并导出附加格式
diarysplit meeting.mp4 --out output `
  --min-speakers 2 --max-speakers 6 `
  --concat-tracks --export-rttm --export-csv

# 使用 CUDA(需要兼容的 NVIDIA 驱动和 PyTorch)
diarysplit meeting.mp4 --out output --device cuda

运行 diarysplit --help 查看完整参数。

输出

output/
├── speaker_0_full.wav
├── speaker_1_full.wav
├── speaker_0_concat.wav          # 使用 --concat-tracks 时
├── speaker_0_concat_map.json
├── segments.json
├── segments.rttm                 # 使用 --export-rttm 时
└── segments.csv                  # 使用 --export-csv 时

完整音轨的非当前说话人区域填充静音,因此所有 *_full.wav 可从时间线 0 直接导入。 pyannote 3.1 不提供稳定的逐片段置信度,所以 v0.1 的 JSON confidence 字段为 null, CSV 对应字段为空;项目不会用伪造的 1.0 代替真实分数。

开发与质量边界

pip install -e ".[dev]"
python -m ruff check .
python -m pytest
python scripts/evaluate_diarization.py output/segments.json

CI 使用模拟模型输出,不需要 HuggingFace Token。真实模型需要在本地完成授权后测试。 当前统计脚本只报告片段和说话人统计,不计算 DER。DER、真实置信度、长音频分块和其他 操作系统支持列入后续路线图。

请勿在 Issue 中上传私密录音、HuggingFace Token 或模型缓存。贡献方式见 CONTRIBUTING.md。

License

MIT © 2025-2026 Hu Chengsi

About

Speaker diarization that exports timeline-aligned tracks for video editing

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages