news 2026/9/7 7:12:50

FunASR说话人分离完全指南:三步自动标记“谁说了什么“

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
FunASR说话人分离完全指南:三步自动标记“谁说了什么“

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

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

Emblem工具实测:长文档自动生成PPT与溯源功能全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/7 7:10:33

猫抓插件教程:浏览器视频下载与网页资源嗅探完整指南

猫抓插件教程:浏览器视频下载与网页资源嗅探完整指南 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 猫抓(Cat-Catch&#…

作者头像 李华
网站建设 2026/9/7 7:10:05

免费离线语音转录:Buzz——本地语音识别完整指南

免费离线语音转录:Buzz——本地语音识别完整指南 【免费下载链接】buzz Buzz transcribes and translates audio offline on your personal computer. Powered by OpenAIs Whisper. 项目地址: https://gitcode.com/GitHub_Trending/buz/buzz 访谈录音传上去&…

作者头像 李华
网站建设 2026/9/7 7:09:00

基于LSTM的调制识别:Pytorch实现与RML2016-10a实战

简介:面向通信信号处理和深度学习研究者,这是一份基于RML2016-10a数据集用LSTM实现调制识别的PyTorch工程,旨在解决无线通信信号调制类型的自动分类问题。资源包内共14个文件,以三个Python脚本为核心,分别承担数据读取…

作者头像 李华
网站建设 2026/9/7 7:07:13

系统规划与管理师软考高级:零基础60天备考全攻略

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华