news 2026/9/30 11:00:01

如何用 Whisper Diarization 三步从一段录音中拿到带说话人标签的转录稿

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何用 Whisper Diarization 三步从一段录音中拿到带说话人标签的转录稿

如何用 Whisper Diarization 三步从一段录音中拿到带说话人标签的转录稿

【免费下载链接】whisper-diarizationAutomatic Speech Recognition with Speaker Diarization based on OpenAI Whisper项目地址: https://gitcode.com/GitHub_Trending/wh/whisper-diarization

Whisper Diarization 是基于 OpenAI Whisper 的自动语音识别工具:它一次完成说话人分离与文字转写,输出带说话人标签的转录稿和标准 SRT 字幕文件。适合需要把会议录音、访谈、播客快速变成可检索文本的人。

🔊 一段录音不好翻,怎么知道谁说了什么

会议结束,留下一段两小时的录音。想查“这句话是谁说的”,只能把整段音频从头听到尾。就算转成了文字,没有说话人标签,文稿还是一大团,谁都不想看。

🚀 三条命令跑通:从克隆到出稿

先备好三样东西:Python 3.10+、FFmpeg、Cython。然后在项目目录里依次运行:

git clone https://gitcode.com/GitHub_Trending/wh/whisper-diarization
pip install -c constraints.txt -r requirements.txt
python diarize.py -a 你的音频文件.mp3

跑完,带说话人标签的转录稿就出来了。

它是怎么做到的:四级流水线

先单独拎出人声

处理前先用 Demucs 把原音频里的人声轨分离出来,减少背景音乐和噪声对说话人识别的干扰。如果音频本身是纯人声,加--no-stem可跳过这一步,处理逻辑在 diarize.py 里。

用 Whisper 转写并逐词对齐

用 faster-whisper 做转写,默认模型medium.en。同时用 ctc-forced-aligner 做强制对齐,给每个词标出精确的起止时间戳,这是后面把词对到说话人名下的基础。

把每个词归给对的人

默认的 MSDD 模型给出每个说话人的活动时间段,也可以用--diarizer sortformer换成 Sortformer(上限 4 人)。流水线再按词的时间戳逐个匹配到对应说话人,模型在 diarization/ 目录中。

恢复标点修正句界

对英语、法语等受支持的语言,用标点恢复模型补回句末标点,再按句子重新对齐说话人归属,修正句首句尾的时间戳漂移。匹配逻辑见 helpers.py。

🎯 三个真实用法:纪要、字幕、并行加速

会议录音转带标签纪要

输入是会议录音。运行python diarize.py -a 会议.mp3,得到逐段标注 Speaker 0、1、2 的 .txt 文稿,外加一份对应的 .srt。

播客转视频直接可用的字幕

输入是播客音频,命令同上。得到的 .srt 每条都是“Speaker X:文字”格式并带时间码,可直接导入剪辑软件出字幕。

显存 10GB 以上的 GPU 走并行

运行python diarize_parallel.py -a 你的音频.mp3。它让 NeMo 与 Whisper 各占一个进程同时跑,结果与串行版一致,速度更快;作者标注该模式为实验特性。

常用参数怎么调

参数作用建议值
-a要处理的音频文件(必填)你的文件路径
--whisper-modelWhisper 转写模型medium.en(默认);非英语换对应多语言版本
--batch-size批量推理大小默认 8;显存不足就调小,0 为关闭批量
--diarizer说话人分离模型msdd(默认,人数不限);sortformer限 4 人以内
--language手动指定语言留空自动检测;检测失败时手动填

调优建议:出现显存不足先降--batch-size,再考虑--device cpu;文稿里数字很多就加--suppress_numerals,数字会转成文字形式,对齐更准。

📄 跑完你会得到哪两个文件

  • xxx.txt:分段的转录文稿,每段开头标注说话人标签。
  • xxx.srt:标准 SRT 字幕文件,每条含时间码与说话人。
  • 运行中的临时文件(temp_outputs_*)结束后自动删除。

🔧 三个最常见的报错及对策

运行中显存不足(OOM)原因:批量太大或显存不够。对策:调小--batch-size(可到 0),或换更小的--whisper-model。

语言识别错、转写乱码原因:自动检测失败,或给仅支持英语的.en模型指定了其他语言。对策:手动指定--language;.en模型只处理英语音频。

说话人切换处错标、文稿数字多原因:数字符号干扰强制对齐,时间戳有轻微漂移。对策:加--suppress_numerals重跑。

谁该用,深入看哪里

需要把录音批量变成可检索文本的会议记录、字幕制作、客服分析场景,选它合适。想理解分离模型看 diarization/,想改说话人映射和字幕输出逻辑看 helpers.py。项目目前也在推进重叠说话处理与 SRT 句长限制两个方向。

现在就可以拿一段自己的音频,把那条命令跑起来。

【免费下载链接】whisper-diarizationAutomatic Speech Recognition with Speaker Diarization based on OpenAI Whisper项目地址: https://gitcode.com/GitHub_Trending/wh/whisper-diarization

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/30 10:59:05

硅基流动+DeepSeek本地部署实战:从能跑到敢上线

简介:本资源是一份面向AI开发者与技术实践者的DeepSeek性能优化指南,聚焦解决官方平台因高并发请求导致的‘服务繁忙’问题,以及本地部署对硬件配置要求过高的痛点。文档详细阐述了如何借助硅基流动平台实现DeepSeek模型的稳定、高效调用&…

作者头像 李华
网站建设 2026/9/30 10:58:04

会议室大屏“自带投屏“不够用?外接投屏器的容量与分屏部署实测

先说结论 现在的会议一体机、智能电视基本都带投屏功能,一个人投个文档、放个视频,问题不大。但拿它扛会议室的真实负载——多人轮换上场、多设备同时在线、多组画面同屏、旧屏复用——大多数自带方案会陆续暴露短板。 结论一句话:自带投屏适…

作者头像 李华
网站建设 2026/9/30 10:57:54

社区康养数字化方案:社区养老服务小程序落地思路

社区康养数字化方案:社区养老服务小程序落地思路随着社区居家养老成为主流养老模式,传统线下台账登记、人工电话预约、网格员上门统计的服务模式,逐渐暴露出效率低、响应慢、数据不互通、服务无追溯、资源难统筹等问题。大量社区养老服务存在…

作者头像 李华
网站建设 2026/9/30 10:57:24

WT2003H在婴儿摇篮上的语音音乐播放应用

婴儿摇篮这类产品,工程师要解决的核心问题集中在三件事上,音乐能不能一直放下去、家长能不能自己换内容、电池能不能撑住。夜里两点孩子睡不踏实,家长一只手托着孩子,另一只手在机器上摸按键,这时候音乐断了、音量跳了…

作者头像 李华
网站建设 2026/9/30 10:55:46

社区康养平台搭建:康养服务商派单管理模块解析

社区康养平台搭建:康养服务商派单管理模块解析社区康养平台区别于普通同城接单系统,核心差异在于服务强专业性、人群高安全性、调度高严谨性。康养服务涵盖康复护理、助浴助餐、上门探视、慢病随访、陪护诊疗等特殊场景,服务对象多为老人、失…

作者头像 李华