手机端开源语音模型部署指南:格式、框架与最佳实践
随着语音 AI 的快速发展,越来越多的开源 TTS(文本转语音)和 STT(语音识别)模型能够在手机上直接运行。**端侧部署意味着更低的延迟、无需网络、数据完全本地化**,对隐私保护和用户体验都极为有利。但要把一个动辄上亿参数的模型塞进手机并跑起来,离不开特定的模型格式和推理框架。本文将梳理当前最受关注的一批开源语音模型,帮你理清它们的手机端部署路径,并给出清晰的选择建议。
---
## 主流手机模型格式简介
一个训练好的 PyTorch 或 TensorFlow 模型不能直接放上手机,必须转换为移动端友好的格式。以下是当前主流的几大格式与运行时:
| 格式/框架 | 主导方 | 目标平台 | 特点 |
|-----------|--------|----------|------|
| ONNX (.onnx) | 微软 | 跨平台 | 生态最丰富,支持 Android、iOS、嵌入式等,通过 ONNX Runtime 运行 |
| Core ML (.mlmodel/.mlpackage) | 苹果 | iOS/macOS | 为 Apple Silicon 深度优化,可调用 CPU/GPU/Neural Engine |
| TensorFlow Lite (.tflite) | Google | 主要面向 Android | 轻量级,对 ARM CPU 做了极致优化,也支持 iOS |
| ExecuTorch (.pte) | Meta (PyTorch) | 跨平台 | PyTorch 官方边缘部署方案,模型量化工具链完善 |
| NCNN | 腾讯 | 跨平台(偏 Android) | 专为 ARM CPU 设计,体积小、内存占用极低 |
| MNN | 阿里 | 跨平台 | 支持异构计算(CPU/GPU/NPU),国产硬件适配好 |
在这些格式中,**ONNX 扮演了“通用中间件”的角色**。多数开发者会先从 PyTorch 导出 ONNX,再根据目标平台转成 Core ML 或 TFLite,也可以直接调用 ONNX Runtime 在移动端运行。
---
## 热门手机端语音模型速览
下表汇总了前面重点讨论过的模型,并标注了各自的参数量、核心功能以及支持的手机部署格式。
| 模型 | 类型 | 参数规模 | 手机端可行性 | 可用的格式/工具 |
|------|------|----------|---------------|-----------------|
| MOSS-TTS-Nano | TTS | 0.1B | ✅ 极高 | ONNX(提供一键包),专为纯 CPU 运行设计 |
| Supertonic 3 | TTS | 99M | ✅ 极高 | ONNX Runtime,移动端优化完善 |
| OmniVoice (小米) | TTS | 0.8B (主干 0.6B) | ✅ 高 | PyTorch 模型,可通过 Sherpa-ONNX 部署 ONNX |
| Moonshine Voice | STT | 27M~245M | ✅ 极高 | 原生支持 TFLite / ONNX / Core ML,提供 Swift API |
| MOSS-Transcribe-Diarize | STT | 未公开 | 🟡 中等(长音频优化) | 依赖服务器端推理为主 |
| SpeechGPT 2.0 (160M 版本) | 语音对话 | 0.16B | ✅ 较高 | 未明确公开移动端格式,但论文强调端侧实时潜力 |
| Cohere Transcribe | STT | 2B | 🟡 中等 | 提供 ONNX / Core ML 版本 |
| TADA (Hume AI) | TTS | 1B/3B | 🟡 中等(1B 版本可量化尝试) | 暂无官方移动端 SDK |
| MiMo-Audio (小米) | 多模态 | 7B | ❌ 不适合手机 | 面向服务器 |
可以看到,**MOSS-TTS-Nano、Supertonic 3、Moonshine Voice** 是手机端部署最成熟的几个选择,而且全部支持或原生提供 ONNX 运行时,这对跨平台开发和快速集成非常友好。
---
## 不同平台的典型部署路径
### 1. 全平台(Android + iOS)
推荐路径:PyTorch → ONNX → 平台格式
- 先将模型导出为 ONNX。
- 若需要极致性能,再将 ONNX 转为 TFLite(安卓)或 Core ML(iOS)。
- 若想简化流程,直接在 App 中集成 ONNX Runtime 即可运行。
### 2. 纯苹果生态 (iOS)
推荐路径:使用 coremltools 直接转换
- 将训练好的 PyTorch 或 ONNX 模型转换为 .mlmodel 或 .mlpackage 格式。
- Core ML 会自动调度 CPU、GPU 和 Neural Engine,充分释放 iPhone 性能。
### 3. 使用 PyTorch 生态
推荐路径:PyTorch → ExecuTorch
- Meta 的 ExecuTorch 支持将 PyTorch 程序直接部署到边缘设备,并集成了量化工具,是未来的技术方向。
- 部分较新的模型(如 Moonshine Voice)已经考虑了对 ExecuTorch 的支持。
### 4. 追求安卓原生极致性能
推荐路径:NCNN 或 MNN
- 腾讯的 NCNN 和阿里 MNN 都在 ARM CPU 上表现卓越,内存占用极低,非常适和低端 Android 手机。
- 这两个框架都提供了模型转换工具,支持 ONNX 等输入。
---
## 使用 Sherpa-ONNX 简化部署
如果不想从头处理模型转换和多平台适配,**Sherpa-ONNX** 是一个不可多得的“万能加速器”。它本身是一个基于 ONNX Runtime 的跨平台语音推理引擎,直接提供了 Android、iOS、鸿蒙等平台的 SDK。你只需要选择内置的支持模型(如 SenseVoice、Paraformer、Whisper 等),或将你自己的 ONNX 模型集成进去,就能在手机端快速搭建语音识别和合成功能。我们前面提到的 OmniVoice 就是通过 Sherpa-ONNX 实现手机部署的典型例子。
---
## 结论与选型建议
如果你正在挑选一个能跑在手机上的开源语音模型,可以参考以下快速决策原则:
- 轻量级离线 TTS:首选 MOSS-TTS-Nano(0.1B,4 核 CPU 就能跑),备选 Supertonic 3(99M,ONNX 生态)。
- 高准确率离线 STT:首选 Moonshine Voice(原生支持 TFLite/Core ML/ONNX,Swift 库开箱即用)。
- 追求高端性能与多语言/声音克隆:可选 OmniVoice,配合 Sherpa-ONNX 部署。
- 跨平台快速集成:优先选择直接提供 ONNX 权重的模型(如 MOSS-TTS-Nano、Supertonic 3),然后使用 ONNX Runtime 移动版;或者直接集成 Sherpa-ONNX。
无论走哪条路,都要留意 模型量化(如 INT8 量化)对体积和速度的提升,以及 ONNX Runtime 移动版 和 核心格式转换工具(onnx2tf、coremltools、ExecuTorch)的最新文档。随着模型体积越来越小、推理速度越来越快,手机上跑一个不逊于云端表现的语音 AI 已经成为现实。希望这篇指南能帮你少走弯路,快速把 AI 语音能力装进你的口袋里。