ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

MOSS-Transcribe-Diarize模型架构深度剖析:Whisper编码器+Qwen3解码器的多模态融合之道

MOSS-Transcribe-Diarize模型架构深度剖析:Whisper编码器+Qwen3解码器的多模态融合之道 MOSS-Transcribe-Diarize模型架构深度剖析Whisper编码器Qwen3解码器的多模态融合之道【免费下载链接】MOSS-Transcribe-DiarizeA 0.9B model for long-form transcription in 50 languages with speaker diarization, timestamps, and acoustic event awareness项目地址: https://gitcode.com/gh_mirrors/mo/MOSS-Transcribe-DiarizeMOSS-Transcribe-Diarize 是一个开源的 0.9B 端到端语音转写与说话人分离模型支持 50 种语言能一次推理同时完成语音转写ASR、说话人分离Diarization、时间戳标注与声学事件感知。本文从新手视角带你完整拆解它的模型架构Whisper 编码器提取的音频特征是如何一步步进入 Qwen3 文本解码器让这个小体量模型同时听懂说了什么、谁说的、什么时候说的。 三个组件、一条数据流架构全景整个模型用三句话就能概括组件选型职责音频编码器Whisper-Medium encoder把 30 秒音频压缩成一串特征向量文本主干Qwen3-0.6B 因果解码器自回归地阅读音频特征逐词生成转写桥接件4x 时间合并 MLP 适配器把音频特征对齐到文本模型的维度三者串联成一条数据流原始声波先过编码器经适配器投影后替换文本中的音频占位符最后由解码器逐 token 生成带时间戳和说话人标签的转写文本。完整流程如下图所示图中声波底部先进入 Audio Encoder 被压缩成几十个特征向量中部方块再送入自回归语音大模型灰色大框顶部就是最终输出[0.11][S01] Good morning! [1.03]这样带时间戳和说话人编号的片段。 第一站Whisper 音频编码器——按 30 秒听音频原始音频先经过WhisperFeatureExtractor前端处理16 kHz 采样、80 个 mel 频带并把长音频切成30 秒的块官方架构表见 README_zh.md。随后每个块送入 Whisper-Medium 编码器24 层自注意力隐藏维度 102416 个注意力头输入 30 秒音频输出最多 1500 帧特征max_source_positions1500为什么选 Whisper因为它听过海量多语言音频天生对长音频、嘈杂环境、多种语言都鲁棒——这正是会议、播客、访谈场景最需要的能力。多语言转写能力50 语种也主要来自这一层的先验。 第二站4x 时间合并 MLP 适配器——音频与文本之间的桥编码器输出的特征不能直接塞进文本模型有两个问题token 太多30 分钟会议会有上万个 token和维度对不上。桥接设计分两步4x 时间合并把每 4 个相邻帧拼成一个向量(B, T, 1024) → (B, T/4, 4096)时间密度降到每秒 12.5 个 token长音频的算力压力骤降。实现见 time_mergeVQAdaptor 适配器Linear → SiLU → Linear → LayerNorm的小 MLP把 4096 维投影到文本模型的 1024 隐藏维。实现见 VQAdaptor巧妙之处把时间直接写进特征里处理器里还藏着一个关键设计音频占位符区间并不全是空白每 2 秒会插入一个绝对秒数的数字 token如第 2、4、6 秒……。相当于给音频特征钉上一把时间标尺解码器输出时间戳时可以直接看表读数而不是靠猜——这是该模型时间戳精度高的关键原因之一。最后音频特征通过masked_scatter精准替换文本序列中|audio_pad|占位符的 embedding音频与文本在一条序列里完成融合。见 inject_audio_features。⚙️ 第三站Qwen3-0.6B 因果解码器——逐词输出的大脑融合后的序列进入 Qwen3-0.6B 因果解码器28 层隐藏维度 102416 个注意力头8 个 KV 头GQA 优化显存词表 151936最大上下文 40960输出层与输入层共享权重tied embeddings它采用自回归方式一次吐一个 token天然支持长音频流式生成。这里有个架构上的关键洞察[S01]这样的说话人标签就是普通文本 token转写和分离在同一次生成中完成——解码器可以借助上下文谁先说话、对话节奏来判断现在轮到谁而不是靠声纹硬匹配。 为什么联合生成比ASR 分离两步走更强传统流水线把独立 ASR 系统和独立说话人分离系统拼接起来前一环的误差会逐级传播。MOSS-Transcribe-Diarize 则是单模型联合完成✅ 时间戳、文本、说话人标签一次生成天然时间对齐✅ 小体量 0.9B 即可端到端部署本地 GPU 甚至 CPU 可跑✅ 可选输出声学事件标注掌声、音乐等理解发生了什么✅ 无 VAD 依赖应用侧不用外挂额外的端点检测模型 输出格式解读[start][Sxx]text[end]模型输出紧凑的连续序列相邻片段直接拼接例如[0.48][S01]Welcome everyone[1.66][12.26][S02]The new pipeline is ready[13.81]解析端同样讲究TranscriptStreamParser 是一个纯字符级状态机刻意不用正则文本一边生成一边切出分段适合流式字幕场景。 快速上手体验克隆仓库后最直观的方式是运行内置字幕 Web 应用详见 README_zh.mdgit clone https://gitcode.com/gh_mirrors/mo/MOSS-Transcribe-Diarizemtd-subtitle-web --model OpenMOSS-Team/MOSS-Transcribe-Diarize --port 7860打开浏览器上传音频审阅分段后导出 JSON/SRT/ASS。微调指南见 FINETUNING.md推理工具函数见 inference_utils.py。 关键文件索引文件作用modeling_moss_transcribe_diarize.py模型主体Whisper 编码器 适配器 Qwen3 解码器configuration_moss_transcribe_diarize.py两大组件的完整参数配置processing_moss_transcribe_diarize.py音频分块、占位符展开、时间锚点注入transcript_parser.py转写结果的流式解析器FINETUNING.md微调训练指南小结MOSS-Transcribe-Diarize 的多模态融合之道可以总结为一句话用 Whisper 的耳朵听用时间合并压缩用 MLP 桥接用 Qwen3 的嘴说。没有复杂的跨模态对齐矩阵没有双塔结构只有一条干净的数据流和两处巧妙的细节4x 时间合并 数字时间锚点就实现了 0.9B 小模型在长音频多说话人转写上的 SOTA 表现。对想入门语音大模型的同学来说这份代码是难得的、可以直接读懂的教学级实现。【免费下载链接】MOSS-Transcribe-DiarizeA 0.9B model for long-form transcription in 50 languages with speaker diarization, timestamps, and acoustic event awareness项目地址: https://gitcode.com/gh_mirrors/mo/MOSS-Transcribe-Diarize创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表