WhisperVideo 是一个专为处理长篇幅、多说话人视频内容(如会议记录、访谈节目)而设计的演示系统。它能将语音与屏幕上对应的说话人进行精准关联,并在整个视频中保持说话人身份的一致性。这套系统专为真实的对话场景打造,而非简短的视频片段。
这是一个端到端的视频理解演示方案,它集成了 SAM3 视频分割、WhisperX 自动语音识别、说话人日志化以及一个主动说话人记忆面板。
其核心流程与技术栈包括:
- SAM3 视频分割:用于生成鲁棒的人脸遮罩。
- 基于 TalkNet 的主动说话人检测:这是一种结合了音频与视觉信息的检测方法。
- 身份记忆:利用视觉嵌入和轨迹聚类技术来追踪和记忆不同的说话人。
- 对齐字幕:生成带有说话人ID标识的字幕,并可以叠加显示在视频面板上。
- 面板可视化:生成紧凑的审阅与演示视图,便于快速回顾视频内容。
主要特性
- [x] 视觉关联的说话人归属:准确地将语音片段归属到屏幕上对应的说话人。
- [x] 支持长视频处理:针对长时间、多轮对话的视频进行优化。
- [x] 身份记忆与清晰标签:能记住并区分不同的说话人,给予清晰的标签。
- [x] 审阅友好的面板视图与字幕:提供集成的面板视图和字幕,提升审阅效率。
安装与运行指南
1. 创建/使用环境
建议使用已有的 Conda 环境。你可以通过以下命令检查当前环境的 Python 版本:
/home/siyuan/miniconda3/envs/whisperv/bin/python -V
2. 安装依赖包
如果需要安装或重新安装依赖,请先安装 PyTorch 等核心组件:
pip install torch torchvision torchaudio
pip install whisperx pyannote.audio scenedetect opencv-python python_speech_features pysrt
TalkNet 模型的检查点会自动通过 gdown 下载(该包已包含在 whisperv/requirement.txt 中):
pip install gdown
3. 设置 Hugging Face 令牌
为了使用说话人日志化等功能,你需要在项目根目录创建一个名为 .env 的文件,并填入你的 Hugging Face 访问令牌:
HF_TOKEN=你的_huggingface_令牌
快速开始
准备好视频文件后,你可以使用以下命令开始处理一个文件夹内的视频:
/home/siyuan/miniconda3/envs/whisperv/bin/python whisperv/inference_folder_sam3.py \
--videoFolder demos/your_video_folder \
--renderPanel \
--panelTheme twitter \
--panelCompose subtitles \
--subtitle
输出文件
处理完成后,主要的结果文件将生成在指定的视频文件夹内:
<videoFolder>/pyavi/video_with_panel.mp4
<videoFolder>/pywork/*.pckl
其中,video_with_panel.mp4 是最终生成的带面板和字幕的视频文件,而 pywork 目录下的 .pckl 文件则包含了处理的中间数据。
重要说明
- 模型下载:如果本地缺少 TalkNet 检查点,程序会自动尝试下载。
- 令牌必需:进行说话人日志化必须提供有效的 Hugging Face 令牌。
- 硬件建议:为了获得最佳的处理速度和体验,建议在配备 CUDA GPU 的环境下运行。
项目地址
你可以在 GitHub 上找到这个开源项目的完整代码和文档:https://github.com/showlab/whisperVideo/blob/main/README.md
希望这款集成了多种前沿AIGC与计算机视觉技术的工具,能帮助你高效处理长视频内容。如果你对这类开源项目的实现原理感兴趣,欢迎在云栈社区与其他开发者深入交流。
|