MiniMind-O序列格式设计:文本与8路音频码流如何在同一条序列中建模
MiniMind-O序列格式设计文本与8路音频码流如何在同一条序列中建模【免费下载链接】minimind-o️ A 0.1B Omni model trained from scratch, capable of listening, speaking, and seeing!项目地址: https://gitcode.com/gh_mirrors/mi/minimind-oMiniMind-O 是一个从 0 训练的约 0.1B 参数开源端到端 Omni 模型能听、能说、能看。这篇文章拆解它最核心的一块设计——序列格式文本 token 流与 8 路 Mimi 音频码流如何布局在同一条序列里联合建模以及这种布局如何同时支撑语音理解、流式语音输出与实时打断。从级联到统一序列为什么不串 ASR TTS ️把语音纳入语言模型有两条路一条是把 ASR → LLM → TTS 串成级联链路语音先转文字再处理另一条是让语音与文本在隐状态层面直接连通。级联链路工程上直接但多出的文本转写会带来延迟语气和情绪信息也会打折扣。MiniMind-O 选择后者不经过文字中转站而是把音频用 Mimi 编解码器压成离散码流8 个 codebook、帧率 12.5 Hz、24 kHz 重建再把这些码和文本 token 一起放进同一个 Transformer 序列中建模。核心布局1路文本 8路音频码的9路张量 整个序列格式的核心是一个形状为9 × T的输入张量前 8 行是 Talker 的音频码流L0–L7对应 Mimi 的 8 个 codebook第 9 行是 Thinker 的文本流。训练时两者对齐到同一时间轴推理时两条流也共享同一个 KV Cache 前缀。图中 (a) 是默认音色(b) 是音色克隆。底部还展示了 5 种多模态变体——Text、Audio、TextAudio、TextImage、AudioImage——它们全部复用同一套 9 路布局只是各区域填的内容不同这让一套权重天然覆盖多种交互形态。各区域的角色分工如下Thinker 文本流|im_start| ... |im_end|标准的对话结构语音输入以|audio_pad|占位符序列注入真实语音特征由冻结的 SenseVoice 编码后经 MLP projector 填进占位符图像则是 64 个|image_pad|占位符Talker 音频流PAD → SPK → REF → 目标 CODE → STOP。SPK 位置承载说话人 embeddingREF 是参考音色的码流右对齐贴到回复起点之前目标码从回复起点之后开始一个巧妙细节音色克隆时参考码REF在序列里右对齐到回复开始位置之前并且训练时 50% 概率直接丢弃 REF 只保留 SPK——这让模型既学会听声克隆又不会过度依赖参考片段。Thinker–Talker 之间的 Bridge语义条件如何变成语音文本与音频不是简单的各算各的。Thinker 的中间层隐状态bridge_layer 层数/2 - 1被取出来作为 Talker 的语义条件embedding 层语义不足最后一层又太贴近下一个词预测目标中间层恰好融合了上下文却未被 LM head 过度塑形。Talker 的输入是两项加权和语义条件(Thinker中间层) × 3.0 音频码嵌入 × 1.0输出端同样共享 轻量适配Talker 用 MTPMulti-Token Prediction一次预测 8 层码输出头是一个共享主体 8 个低秩 adapter音频嵌入侧也是共享 embedding 8 个 adapter。这样既保留各 codebook 的分布差异又不为每层复制整套参数把 0.1B 的预算花在刀刃上。损失掩码设计只有回复区域参与训练 统一序列里有一个必须回答的问题哪些位置算预测目标规则非常干净文本标签只在最后一个 assistant 回复区间内计算prompt 与 reference 区域全部置-100忽略——它们只提供条件不作为重构目标音频标签8 层码各自错位 1 步起始第 i 层从回复起点后第 i1 步开始这就是 MTP 的延迟调度——每层码比上一层晚一步形成时间上的阶梯stop token 加权 10 倍音频码流末尾的|audio_stop|是流式生成能否准时收口的关键训练中把它损失权重放大到 10 倍保证 8 层都能可靠地喊停5% 调度采样小概率把部分历史真实码替换成随机码让模型学会从自己的错误历史中恢复增强长句稳定性文本与音频损失等权相加训练日志会分别汇报text与audio两条曲线便于观察语音链路是否跟上了语言链路。从序列到波形流式解码与实时打断 ⚡推理时解码循环非常精炼Thinker 每产出一个文本 token音频侧按延迟 1 步的节奏让 L0 起步随后 L1、L2……依次接力当某个 step 上 8 层都已有对应码时就取[codes[i][step-7i]]拼成一帧喂给 Mimi 解码器增量恢复 24 kHz 波形——固定 7 帧的错峰正好被对齐换来的是边说边播语音不必等回答结束。这条流式序列格式直接支撑了实时交互用户停话后 Thinker 先完成语义 prefillTalker 随即逐步吐出音频码Mimi 边收码边出波形用户中途再次开口触发 barge-in 时系统中断当前生成、重新进入 prefill–reply 循环。动手读源码关键代码位置 想验证本文的每个结论代码都只有几百行重点看这几处9 路张量拼装input_ids (9, T-1)与 REF/SPK 右对齐dataset/omni_dataset.pyforward 中拆分文本流/音频流与 Talker 融合model/model_omni.py共享主体 8 adapter 的输出头与嵌入model/model_omni.py流式生成延迟调度与帧对齐step-7imodel/model_omni.py8 层音频损失与 stop 加权trainer/train_sft_omni.py小结MiniMind-O 的序列格式可以概括为一句话把说什么文本流与怎么发出声音8 路码流压进同一张时间轴上用中间层 Bridge 传递语义、用延迟调度错峰 8 层码、用掩码划分条件与目标区域。这套设计让 0.1B 的小模型同时拥有了多模态理解、流式语音合成与近似双工交互也正因为全部代码和权重开源你可以亲手复现并改造这条完整链路。【免费下载链接】minimind-o️ A 0.1B Omni model trained from scratch, capable of listening, speaking, and seeing!项目地址: https://gitcode.com/gh_mirrors/mi/minimind-o创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Windows共享服务器搭建指南:双层权限机制实战解析

Windows共享服务器搭建指南:双层权限机制实战解析

1. 为什么我把Linux方案扔到一边,用Windows做共享服务器前阵子朋友公司要搭文件共享服务器,16个人,行政、技术、财务三个部门,外加两个外包。我习惯性先查了一轮教程,满屏都是LinuxSamba、群晖NAS的方案,Sa…

2026/10/4 2:21:57 阅读更多 →
wifit3 USB网卡热插拔全解析:拔插网卡后界面如何秒级响应

wifit3 USB网卡热插拔全解析:拔插网卡后界面如何秒级响应

wifit3 USB网卡热插拔全解析:拔插网卡后界面如何秒级响应 【免费下载链接】wifit3 Wifite but USB-only & cross-platform. 项目地址: https://gitcode.com/GitHub_Trending/wi/wifit3 wifit3 是一个跨平台的 USB 无线网卡监听工具,它内置了常…

2026/10/4 2:21:57 阅读更多 →
开源跑腿系统核心架构与订单全链路技术拆解

开源跑腿系统核心架构与订单全链路技术拆解

开源跑腿系统这几年被问得挺多,尤其是一些同城配送创业团队和外包公司。市面上开源的跑腿项目其实不少,很多代码拉下来能跑,但真正要把下单到配送这条主链路吃透、做到能二次开发和稳定上线,大部分人还是卡在“不知道哪些模块是关…

2026/10/4 2:20:57 阅读更多 →

最新新闻

OpenNOW架构揭秘:Qt Quick + Rust双进程设计如何抛弃Electron重写GeForce NOW客户端

OpenNOW架构揭秘:Qt Quick + Rust双进程设计如何抛弃Electron重写GeForce NOW客户端

OpenNOW架构揭秘:Qt Quick Rust双进程设计如何抛弃Electron重写GeForce NOW客户端 【免费下载链接】OpenNOW Custom GeForce Now Client Named OpenNOW 项目地址: https://gitcode.com/gh_mirrors/op/OpenNOW OpenNOW 是一款开源的 GeForce NOW 桌面客户端&…

2026/10/4 3:04:22 阅读更多 →
JSP+SSM网上服装销售系统毕业设计:从环境配置到部署避坑全流程

JSP+SSM网上服装销售系统毕业设计:从环境配置到部署避坑全流程

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

2026/10/4 3:04:22 阅读更多 →
把截图直接拖进对话框:Agent Client for Obsidian如何向AI智能体发送图片与文件

把截图直接拖进对话框:Agent Client for Obsidian如何向AI智能体发送图片与文件

把截图直接拖进对话框:Agent Client for Obsidian如何向AI智能体发送图片与文件 【免费下载链接】obsidian-agent-client Bring AI agents into Obsidian via Agent Client Protocol (ACP), such as Claude Code, Codex and Gemini CLI. 项目地址: https://gitcod…

2026/10/4 3:04:22 阅读更多 →
如何一文看懂自主AI研究:awesome-autoresearch带你完整入门Karpathy autoresearch生态

如何一文看懂自主AI研究:awesome-autoresearch带你完整入门Karpathy autoresearch生态

如何一文看懂自主AI研究:awesome-autoresearch带你完整入门Karpathy autoresearch生态 【免费下载链接】awesome-autoresearch A curated list of autonomous improvement loops, research agents, and autoresearch-style systems inspired by Karpathys autoresea…

2026/10/4 3:04:22 阅读更多 →
OpenShell 使用指南:经典开始菜单回归与效率提升

OpenShell 使用指南:经典开始菜单回归与效率提升

1. 从零认识 OpenShell:它到底解决什么问题第一次听到 OpenShell 这个名字,很多人会下意识以为它是某个操作系统的内核项目,或者是一个新的命令行终端工具。实际上,OpenShell 是一个面向 Windows 平台的开始菜单替代与增强工具&am…

2026/10/4 3:04:22 阅读更多 →
SQL Server随机查询的几种写法与封装实践:从NEWID()到自定义函数

SQL Server随机查询的几种写法与封装实践:从NEWID()到自定义函数

搞随机查询这种需求,估计大多数SQL Server开发都写过。一句ORDER BY NEWID()下去,看似轻松搞定,真正上线后遇到大表慢、抽样不准、脚本重复维护这些问题,才是最磨人的。最近项目里有个抽奖节奏的需求,要从用户表里随机…

2026/10/4 3:03:22 阅读更多 →

日新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

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

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

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

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

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

2026/10/4 1:00:58 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

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

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

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

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

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

2026/10/4 1:00:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

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

2026/10/2 10:36:31 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

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

2026/10/3 9:42:35 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

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

2026/10/3 9:42:36 阅读更多 →