如何用 3 行代码跑通 Transformers 多人会议语音识别?完整指南

如何用 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 中automatic-speech-recognitionpipeline 让多人会议的录音转文字变得非常简单不用声学背景、不写复杂信号处理代码几行 Python 就能把整场对话变成带时间戳的文字稿。这篇文章带你 10 分钟上手。① 这个功能能帮你干什么会议、访谈、播客一次搞定本节先回答一个问题这个功能值不值得你花时间。你是否遇到过开完 1 小时会议想整理成文字纪要却要在录音里反复倒回去听某一句到底是谁说的ASR pipeline 会把整段录音转成文字并给每一句附上时间戳你可以直接定位到第 12 分 30 秒附近的那段话。你是否遇到过做播客后期需要把嘉宾和主持人的口语内容逐句对齐剪辑按时间戳切分后每句话在波形上的位置一目了然后期工具里直接跳转。你是否遇到过处理线上问诊、客服通话记录希望把语音留档变成可检索的文本转写完成后任何一句客诉内容都可以直接全文搜索。一句话价值把听录音找内容变成搜文字找位置。② 它是怎么做到的端到端模型音频直接变文字本节用一张图讲清原理不展开数学细节。白话解释模型以 Whisper 为代表把整段音频切成 30 秒的小段编码器听懂每段在说什么解码器逐词吐出文字同时记录每个词出现的时间。多人同时说话时它不会崩溃——它按听到的内容依次转写再由时间戳帮你把句子切回各自的位置。需要说明的是该 pipeline 负责听写成文 时间对齐如果要给每句话打上说话人 A/B标签标准做法是再叠加一个说话人分离speaker diarization即判断哪段时间是谁在说工具用时间戳对齐即可下一节代码中会给出最简组合方式。③ 从 0 到跑通一键安装步骤与最小可运行示例本节的目标复制粘贴即可跑出一个带时间戳的转写结果。环境准备约 3 条命令# 克隆仓库并安装需 Python 3.9建议配 GPU git clone https://gitcode.com/GitHub_Trending/tra/transformers cd transformers pip install -e . pip install -r examples/pytorch/speech-recognition/requirements.txt这段命令做了什么把 transformers 以可编辑模式装进当前环境并补上语音识别示例所需的依赖含音频解码相关包。核心代码meeting_asr.pyfrom transformers import pipeline # 加载 Whisper 识别管道device0 表示用第一块 GPU asr pipeline(automatic-speech-recognition, modelopenai/whisper-base, device0) # 转写整段会议录音并生成逐段时间戳 result asr(meeting_01.wav, generate_timestampsTrue, chunk_length_s30, languagezh) print(result[text]) for chunk in result[chunks]: print(f[{chunk[timestamp][0]:6.1f}s - {chunk[timestamp][1]:6.1f}s] {chunk[text]})这段代码做了什么pipeline一行加载模型generate_timestampsTrue让结果里多出chunks字段每段文字自带起止时间chunk_length_s30是 Whisper 的原生处理窗口长录音会自动滑窗切分。运行结果示例输出[ 3.2s - 6.1s] 那么今天我们先把 Q3 的排期对齐一下 [ 6.8s - 11.4s] 先说前端登录页改造预计周四可以提测 [ 12.0s - 15.9s] 后端这边接口文档我今晚会更新到仓库里拿到带时间戳的分段后若要区分说话人可再调用说话人分离工具如 pyannote.audio对同一录音打标用起止时间把谁说的贴到每个 chunk 上——这是社区处理多人对话的标准组合拳。④ 效果实测模型怎么选一张表说清本节用数据帮你做选型识别准确率 vs 显存/速度。下表为 Whisper 各规格在 LibriSpeech英文朗读测试集test-clean 子集上的词错率WER越低越好模型参数量test-clean WER大致显存占用适合场景tiny39M5.0%约 1 GB快速试跑、CPU 环境base74M4.8%约 1 GB日常会议转写默认推荐small244M4.0%约 2 GB长录音、口语较多large965M2.7%约 5 GB对准确率要求高的正式留档两个经验数字在有 GPU 的机器上whisper-base 转写 60 秒音频通常只要几秒处理速度约为实时率的 10 倍以上而加不加时间戳对耗时的影响可忽略约 1% 以内所以建议默认开启generate_timestampsTrue——它几乎免费却让结果从一段文字变成可检索的文字。⑤ 用好它进阶调优与常见坑清单本节把调参和排错合并成一张清单每条都附一句解法。长录音爆显存 / 卡住显式设置chunk_length_s30长音频会被滑窗处理仍紧张就换whisper-tiny或把device留空回退 CPU。中文识别串成英文调用时显式传languagezh跳过模型的语言自动检测避免短音频检测错误。16kHz 之外的采样率Whisper 内部统一按 16kHz 处理输入 44.1kHz 原声前用任意工具重采样即可不需要其他预处理。结果里混入背景音乐、键盘声Whisper 是听到就写的模型无法自己滤除噪音先做一遍降噪或使用更小的模型 task保持默认能显著减少乱码。想给每句标注说话人却只拿到整段文字单独跑一个 speaker diarization 工具得到时间区间再与chunks的时间戳做区间匹配这是官方文档中推荐的多说话人方案。离线 / 内网环境下载模型慢设置HF_HUB_CACHE指向本地缓存目录先在能联网的机器上把openai/whisper-base拉下来再拷贝过去。只想听写、不要时间戳去掉generate_timestampsTrue即可输出更干净、速度快一点点。⑥ 下一步与参与官方资料与贡献入口本节给出深入学习的入口读完即可独立上手。官方 pipeline 教程含音频识别完整用法docs/source/en/pipeline_tutorial.md语音识别示例脚本与训练入口examples/pytorch/speech-recognition/ASR pipeline 功能源码想看切块、时间戳怎么实现就在这里src/transformers/pipelines/automatic_speech_recognition.py想提交 PR 或提 issue先读 CONTRIBUTING.md按流程发起即可。下一步建议拿一段 5 分钟的会议录音用上面的 3 行核心代码跑一遍whisper-base对比tiny和small的效果差异——你会直观感受到准确率每提升一档代价是多少显存。现在就动手跑通你的第一段会议转写吧。【免费下载链接】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),仅供参考