手机端开源语音模型部署指南:格式、框架与最佳实践

13

随着语音 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 语音能力装进你的口袋里。