拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

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

如何用 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),仅供参考

返回列表