FunASR说话人分离完全指南:三步自动标记"谁说了什么"
【免费下载链接】FunASROpen-source speech recognition toolkit for training, inference, streaming ASR, VAD, punctuation, speaker diarization pipelines, and OpenAI-compatible/MCP serving.项目地址: https://gitcode.com/GitHub_Trending/fun/FunASR
会议录音结束,整理有多难?
两小时的会,三点结束。一支麦克风,四个人声,还有几处抢话。转写工具给你的是一大段没有名字的文本。想知道谁说了什么,得反复倒回去听录音。纪要拖到晚上才整理完。
FunASR说话人分离给出的答案是:它能把多人录音自动拆成带说话人标签的分段,同时输出带时间戳的文本。不用人工标注,也不用先注册声纹。
它到底能干什么?
FunASR说话人分离有四个能力值得知道:
- 自动说话人标注:每段语音挂一个匿名编号(spk 0、spk 1…),不需要训练你的模型
- 一条流水线出转写:VAD切分、说话人分离、ASR识别、标点恢复,一次调用全做完
- 带时间戳输出:每句都有起止时间,字幕、检索可以直接复用 🔍
- 多种用法:本地 Python、CLI 命令、OpenAI 兼容 HTTP 服务,任选其一
原理拆解:三级流水线
那它是怎么做到的?其实是三级流水线,每一级只干一件事。
输入端:VAD 把长音频切成段
第一级是 VAD(Voice Activity Detection,检测音频里哪些位置有人声)。它像个剪辑师:在静音处下刀,把两小时长音频切成一段段可处理的语音。FunASR 默认用轻量级的 FSMN-VAD 完成这一步。
处理端:CAM++ 按"谁的声音"分组
第二级是说话人分离(speaker diarization,把混在一起的语音按说话人拆开)。CAM++ 声纹模型给每段语音算一个"音色向量"——像前台按嗓音认人——把同一个人的话归到同一个编号下。
输出端:ASR 识别文本并挂标签
第三级是 ASR(Automatic Speech Recognition,语音转文字)。它像速记员:写下每个人说了什么,附起止时间和 spk 编号。你拿到的是形如0000-0004 spk0 下季度…的列表。仓库里还有端到端的 EEND-OLA 说话人分离实现,结构如下:
说话人分离三步走:从克隆到第一条转写
第一步:拿代码并安装
git clone https://gitcode.com/GitHub_Trending/fun/FunASR pip install funasr第二步:三行代码开启说话人分离
from funasr import AutoModel model = AutoModel(model="iic/SenseVoiceSmall", vad_model="fsmn-vad", spk_model="cam++") res = model.generate(input="meeting.wav")[0]spk_model="cam++"是关键一行。不加它,输出就是一份没有名字的分身纯文本。
第三步:看结果
res["sentence_info"]就是结果:每条含start/end(毫秒时间戳)、spk(说话人编号)、text(内容)。习惯命令行的人一条命令搞定,详见 CLI 说明:
funasr meeting.wav --spk -f json两个落地案例
案例一:企业会议纪要自动化
谁在用:团队的会议组织者和行政同事。痛点是会一结束就得有人手动扒录音,半天才出一份纪要。现在会后录音跑一次说话人分离,直接得到带说话人编号的文本,"张三上次提了什么"可以按人检索。效果是纪要从"明天的活"变成"散会即出"。这条路径是 模型选择指南 里的标准组合。
案例二:多方通话录音归档
谁在用:客服与录音归档团队。长录音里声音多,查一条投诉要来回翻几十分钟。把 FunASR 挂进 在线 runtime 服务 后,转写带上 spk 标签,按说话人编号过滤就能定位到人。服务整体结构如下:
调优与边界
三条建议,可以照抄:
- 模型选择:多语种或跑 CPU 用 SenseVoice-Small;纯中文、要字级时间戳换 Paraformer,详见 模型选择指南
- 长音频:超过一小时的录音建议先按时间切片再分批跑。说话人越多标签越容易混,长音频尤其明显;更长的一体化路径可看 MOSS 接入文档
- 服务化:多人并发请求时走
funasr-server的 OpenAI 兼容接口,别让每个应用自己加载 Python 模型
两条边界也要说清楚:spk只是单次录音内的匿名编号,不识别真实姓名、不能跨录音匹配、不能当声纹验证用;重叠语音无法拆分,两人同时说话的那段可能只归属其中一人。
回到开头那场两小时的会:散会那一刻,你收到的不是一堆录音,而是一份带说话人标签、随时可以按人检索的文件。
【免费下载链接】FunASROpen-source speech recognition toolkit for training, inference, streaming ASR, VAD, punctuation, speaker diarization pipelines, and OpenAI-compatible/MCP serving.项目地址: https://gitcode.com/GitHub_Trending/fun/FunASR
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考