MiniMind-O快速推理:一条命令让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
MiniMind-O 是一个从 0 训练的约 0.1B 参数 Omni(全模态)模型:它能听语音、看图片、读文本,并把回答同时以文字和流式语音输出。最让人意外的是它的推理门槛——普通个人 GPU 即可训练,CPU 也能快速推理,而跑通语音对话只需要一条命令:
python eval_omni.py --load_from model --weight sft_omni这篇指南带你从零环境到出声,全程 3 步 + 1 条命令。
🎯 MiniMind-O 能做什么?
MiniMind-O 把完整 Omni 链路压缩到 0.1B 量级,核心能力包括:
- 听:语音输入经冻结的 SenseVoice-Small 编码后进入模型;
- 看:图像经 SigLIP2 编码,支持图+文+语音混合提问;
- 说:独立的 Talker 通过 MTP 一次预测多层 Mimi codes,边生成边解码出24 kHz 流式语音,无需等回答结束;
- 打断:配合 VAD 支持 barge-in 实时打断与近似双工交互;
- 音色克隆:换一段参考音频就能换音色,内置 5 个音色 + 7 个 unseen 音色(见 model/speaker/voices.pt)。
架构上它由 Thinker(理解)和 Talker(语音生成)两条路径组成,代码入口在 model/model_omni.py。
⚡ 三步准备环境
作者参考配置:i9-10980XE / 3090 / Ubuntu 20.04 / CUDA 12.2 / Python 3.10,详见 README.md。没有 GPU 也能跑,推理脚本会自动回退到 CPU。
第 1 步:克隆仓库
git clone --depth 1 https://gitcode.com/gh_mirrors/mi/minimind-o cd minimind-o第 2 步:安装依赖
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simplerequirements.txt 已固定 transformers、funasr、onnxruntime 等全部版本,按文件安装最省心。
第 3 步:下载资源
# 语音编码器 modelscope download --model gongjy/SenseVoiceSmall --local_dir ./model/SenseVoiceSmall # 视觉编码器 modelscope download --model gongjy/siglip2-base-p32-256-ve --local_dir ./model/siglip2-base-p32-256-ve # 音频编解码器 modelscope download --model gongjy/mimi --local_dir ./model/mimi # 说话人编码器(音色克隆用) modelscope download --model gongjy/campplus --local_dir ./model/campplus # 发布权重(关键!) modelscope download --model gongjy/minimind-3o-pytorch --local_dir ./out完成后./model/下应有 4 个编码器目录,./out/下有sft_omni768.pth权重。
🚀 一条命令开始语音推理
在仓库根目录执行:
python eval_omni.py --load_from model --weight sft_omni模型加载后会自动跑通文本问答并生成回答音频,保存为 mp3 到./output_audio/。想一口气体验全部模式(文本 / 多轮 / 语音 / 音色克隆 / 图像 / 混合输入),把--mode设为-1:
python eval_omni.py --load_from model --weight sft_omni --mode -1常用参数一览(完整定义见 eval_omni.py):
| 参数 | 默认 | 说明 |
|---|---|---|
--mode | 0 | -1=all,0=text,2=audio,4=image,5=mix,可用逗号组合 |
--prompt_lang | 0 | 问题语言:0=英文,1=中文,2=中英混合 |
--temperature | 0.7 | Thinker 生成温度 |
--device | 自动 | 默认有 CUDA 用 CUDA,否则 CPU |
--audio_dir | ./dataset/eval_omni/ | 测试语音所在目录 |
仓库自带 28 条中英文测试语音和 9 张测试图(dataset/eval_omni/),例如「为什么天空是蓝色的」「什么是黑洞」,可直接用于试听模型表现。
🎙️ 试试实时语音 WebUI
命令行之外,MiniMind-O 还提供了两个更直观的推理入口:
# 实时语音通话(推荐):支持麦克风实时对话、barge-in 打断、音色克隆、电话模式 cd webui && python web_demo.py服务默认监听 7860 端口,浏览器打开http://localhost:7860即可(前端页面在 webui/web_demo.html,后端逻辑在 webui/web_demo.py)。用户停止说话后,Thinker 先完成 prefill,Talker 随即逐帧产出音频 code,Mimi 边收边写出 24 kHz 波形;模型说话时你再开口,系统会立即中断当前回答重新进入聆听。
另外还有一个 Gradio 演示版,适合上传音频/图片做非实时问答(需先把 transformers 格式模型放入./scripts/目录,用法见 README.md):
cd scripts && python web_demo_omni.py📊 看看推理效果
下面是官方 A2A(语音到语音)样例:真实语音问题 → 文本回答 → 流式语音回答。短句场景下中文回答连贯,英文发音节奏相对稳定。
图像问答链路(I2A)同样一条命令搞定,用--mode 4即可。当前版本能抓住主体物体和大致场景:
💡 常见问题
没有 GPU 能跑吗?可以。--device默认在torch.cuda.is_available()为假时自动落到 CPU,0.1B 规模 CPU 推理速度可接受,只是实时性会打折扣。
语音输出在哪?--output_dir默认为./output_audio/,每轮回答都会生成对应编号的 mp3。
想换音色怎么办?实时 WebUI 支持上传参考音频做 in-context 音色克隆,无需改动任何权重。
🧭 下一步
- 训练自己的权重:仓库开源了 mini / full 两套数据,mini 在单卡 3090 上约 2 小时跑通,入口脚本 trainer/train_sft_omni.py,一键流程见 trainer/train.sh;
- 读懂推理链路:
model.generate的流式实现与 Thinker–Talker 调度都在 model/model_omni.py,从第一行代码读起完全可行; - 更多细节:架构、训练目标与 CER / 音色相似度评估见 README.md。
从克隆仓库到听见它开口说话,总共只需要 3 步 + 1 条命令——这就是 MiniMind-O 作为最小完整 Omni 基线的价值:足够小、足够透明,人人可以动手复现和改造。
【免费下载链接】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),仅供参考