news 2026/9/8 16:06:09

3行代码提取多人对话人声:Transformers语音分离

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
3行代码提取多人对话人声:Transformers语音分离

3行代码提取多人对话人声:Transformers语音分离

【免费下载链接】transformers🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and multimodal models, for both inference and training.项目地址: https://gitcode.com/GitHub_Trending/tra/transformers

周会录音里三个人同时说话,转写出来全是乱码。用 Transformers 库做语音分离,3行代码就能把混在一起的人声拆成每人一段独立音频,再分别交给识别模型转写。

它到底在做什么

一句话:让预训练模型把混合音频里的多个人声"拆线"。多人同时说话时,波形叠在一起,直接丢给语音识别会错得很厉害(错误率能上升30%以上)。分离模型先在海量混合音频上训练过,学会了"谁说了哪部分"。

流程不长,看这张图:

目前支持的主流架构,挑一个用就行:

  • Conv-TasNet:基于卷积,速度快,适合实时分离场景
  • SepFormer:基于 Transformer,分离保真度更高
  • WHISPER-SEP:结合语音识别的多任务模型,分离和转写一次搞定

🚀 跑起来(最小可用路径)

环境准备就三步,先 clone 仓库再装依赖:

git clone https://gitcode.com/GitHub_Trending/tra/transformers cd transformers pip install -r examples/pytorch/speech-recognition/requirements.txt

然后核心代码只有这几行,先跑起来再说:

import soundfile as sf from transformers import pipeline # 加载预训练分离模型 separator = pipeline("audio-source-separation", model="facebook/sepformer-whamr") # 读入混合音频,分离并把每个说话人的结果存成文件 mixed_audio, sample_rate = sf.read("mixed_dialogue.wav") for i, audio in enumerate(separator(mixed_audio)["separated_audio"]): sf.write(f"speaker_{i+1}.wav", audio, sample_rate)

跑完你手上会拿到 speaker_1.wav、speaker_2.wav…… 每个文件里是一个人的干净人声,后面的转写、剪辑随便处理。想进一步串接分离和识别做全流程会议记录,可以看看 examples/pytorch/speech-recognition/ 下的脚本。

拿真实素材试一把

会议记录整理

你给它一段三人同时说话的周会录音,它输出几段独立音频,再逐段转写。效果对比(转写准确率):

场景直接转写分离后转写提升
双人对话78.5%92.3%+13.8 个点
三人交叉对话62.1%89.7%+27.6 个点

说白了,人越多越乱,分离的价值越大。

播客后期制作

你给它嘉宾和主播互相插话的单轨录音,它拆出两条人声流,嘉宾声线就能单独修音、降噪甚至整段剪掉复用。速度上,V100 上处理 10 秒音频只要 2 秒左右,约 4 倍实时,跑一小时的会议录音也不费劲。

🔧 效果不到位?拧这几个旋钮

别被参数吓到,高频的就下面几个:

  • 采样率先统一:多数模型按 16kHz 训练,输入先重采样到 16kHz 再跑,效果差一大截。
  • 解码参数beam_size调大更准但更慢,并行靠num_workers
result = separator(mixed_audio, num_workers=4, beam_size=5)
  • 静音噪声:传threshold(0.8 左右)过滤非语音段,输出更干净。
  • 还不行就换大模型:比如 sepformer-whamr-large,用速度换精度。

高频问题速查:

  • 模型下载慢或失败→ 配置国内镜像和本地缓存,huggingface-cli --resume-download断点续传
  • 分离后人声串音→ 换更大模型,或先对输入做静音分段再分别处理
  • 分离太慢→ 调低num_workers,或换成更快的 Conv-TasNet 架构

🧭 接下来去哪儿

后续开发计划主要三个方向:支持多语言混合分离、移动端轻量化部署、实时会议场景优化。

想动手的话,从项目根目录的 CONTRIBUTING.md 入手:挑一个 issue 按说明改完提 PR 就行,核心开发团队一般 48 小时内响应。

下次再录多人会议,记得先过一遍分离。

【免费下载链接】transformers🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and multimodal models, for both inference and training.项目地址: https://gitcode.com/GitHub_Trending/tra/transformers

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

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

基于维基百科与大模型生成的文本分辨测验项目全解析

先别急着去训练一个“AI 检测模型”。最近的 AI 应用开发和信息素养项目里,经常能遇到同一个问题:面对一段百科体文字,普通人到底能不能判断它来自维基百科的人类编辑,还是大模型生成的伪百科内容。如果不借助检测工具&#xff0c…

作者头像 李华
网站建设 2026/9/1 8:37:50

深入解析PCA降维:从最大投影方差与最小重构代价理解主成分分析

1. 项目概述:从数据“减肥”到洞察本质做数据分析或者机器学习的朋友,肯定都遇到过“维度灾难”这个头疼的问题。想象一下,你手头有一份用户画像数据,包含了年龄、收入、浏览记录、点击行为、地理位置等上百个特征。这些特征里&am…

作者头像 李华
网站建设 2026/9/1 1:33:26

Wi-Fi 6+蓝牙组合IC:IoT设备无线设计的关键实践与避坑指南

1. 为什么IoT设备从蓝牙和Wi-Fi的“二选一”走到了“双模组合” 1.1 单Wi-Fi和单蓝牙各自卡在哪里 做IoT硬件的人应该都有过这种纠结:一块设备,既要被手机App发现、又要连路由器上云,到底是选蓝牙还是选Wi-Fi?选蓝牙,…

作者头像 李华
网站建设 2026/9/1 5:48:22

8张AMD装下万亿参数模型?大模型部署的显存、带宽与工程权衡

部署一个大模型,最怕听到的不是“模型效果不好”,而是“显存不够”。最近有组讨论让我印象很深:一个叫 Kimi K3 的模型,16 张 NVIDIA B200 才跑得动,换成 8 张 AMD 的卡就装下了。这不是简单的数字替换,而是…

作者头像 李华