尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Transformers 语音分离指南:3 行代码把多人对话拆成独立人声

Transformers 语音分离指南:3 行代码把多人对话拆成独立人声 Transformers 语音分离指南3 行代码把多人对话拆成独立人声【免费下载链接】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做播客后期时想把嘉宾那条声轨单独抠出来降噪两个人抢话的片段却怎么也分不干净。多人同时发言的音频会让传统语音识别的出错率上升 30% 以上语音分离把混在同一轨里的不同说话人拆成独立音频流就是冲着这个问题去的。本文基于 Transformers 的audio-source-separation流水线演示完整做法加载一个预训练分离模型3 行核心代码就能拿到分轨结果几分钟即可上手。整条链路很短先看效果数据分离到底值不值动手之前先看收益这也是决定要不要引入这一步的依据。在难度最高的三人交叉对话里先分离再转写准确率从 62.1% 拉到 89.7%双人场景同样稳定提升场景传统 ASR分离后 ASR提升双人对话78.5%92.3%13.8%三人交叉对话62.1%89.7%27.6%速度层面在 NVIDIA V100 上实测10 秒音频 / sepformer-whamr2.3 秒约 4.3× 实时60 秒音频 / conv-tasnet8.7 秒约 6.9× 实时这个量级放进日常剪辑或客服录音质检流程都够用下面是搭建过程。装好环境跑通第一条分离流水线先准备仓库与依赖分离相关的示例代码集中在 examples/pytorch/speech-recognition/ 目录git clone https://gitcode.com/GitHub_Trending/tra/transformers cd transformers pip install -r examples/pytorch/speech-recognition/requirements.txt新建speech_separation_demo.py核心逻辑只有 3 行不含 importfrom transformers import pipeline import soundfile as sf separator pipeline(audio-source-separation, modelfacebook/sepformer-whamr) mixed, sr sf.read(mixed_dialogue.wav) result separator(mixed, generate_voice_metricsTrue)随后循环result[separated_audio]用sf.write(fspeaker_{i1}.wav, ...)逐路保存即可。目前主流架构有三类按需求选Conv-TasNet偏实时场景延迟低SepFormer基于 Transformer分离保真度高WHISPER-SEP分离与识别多任务一体的模型人声糊在一起时参数调优与常见报错默认参数分不干净通常从两处入手。可调参数及其作用num_workers4并行处理缩短长音频耗时beam_size5解码优化提升分离稳定性threshold0.8语音活性检测阈值用来过滤静音段generate_voice_metricsTrue输出语音质量指标便于对比效果两类高频问题可以直接对号入座模型下载失败离线环境设TRANSFORMERS_OFFLINE1、HF_HUB_CACHE./cache再用huggingface-cli download --resume-download facebook/sepformer-whamr断点续传分离效果不佳先把输入重采样到 16kHz仍不满意就换更大的sepformer-whamr-large更完整的故障排查内容在 docs/source/en/troubleshooting.md遇到新报错可以先查一遍。串联语音识别从分轨到逐人转写分轨只是中间产物真正省事的是把分离和 ASR 串成一条流水线——每条人声轨单独转写输出直接按说话人归档def process_meeting(audio_path): mixed, _ sf.read(audio_path) separated separator(mixed) return {fspeaker_{i1}: asr(a)[text] for i, a in enumerate(separated[separated_audio])}其中asr是openai/whisper-base对应的automatic-speech-recognition流水线与separator一样各初始化一次即可。批量处理与结果导出可参考 examples/pytorch/speech-recognition/run_speech_recognition_seq2seq.py想用自己的数据集做评估入口是 benchmark/benchmarks_entrypoint.py。后续路线与社区入口官方接下来的三件事多语言混合分离、移动端轻量化部署、实时会议场景优化想贡献代码读完 CONTRIBUTING.md 后直接提 PR核心开发团队会在 48 小时内响应版本更新与新模型支持信息持续跟踪 README.md跑通上面的流程后你的下一步建议是把threshold和beam_size在自己的真实录音上各扫一遍值比任何通用参数都更贴近你的场景。【免费下载链接】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),仅供参考
返回列表