← 返回信息流
GitHub 热榜GitHub Trending · 周·7 天前

SuperTonic:基于ONNX的极速本地多语言TTS引擎

原标题:supertone-inc/supertonic
Swift10,792 stars+1,944 本周

速览

该项目利用ONNX运行时在设备端原生运行,提供闪电般的文本转语音生成速度。支持多语言,无需联网即可实现低延迟的语音合成,适用于对隐私和响应速度要求高的移动及桌面应用。

AI 深度解读

这是什么

Supertonic 是一个由 Supertone Inc. 开发的开源、轻量级、多语言文本转语音(TTS)系统。该项目主语言为 Swift,但在 GitHub 上拥有超过 10,792 颗星,显示出极高的社区关注度。

其核心架构基于 ONNX Runtime,旨在实现完全本地化的设备端推理(On-device Inference)。与依赖云端 API 的传统 TTS 服务不同,Supertonic 无需网络连接、无需调用外部接口,即可在桌面、浏览器、移动端及边缘设备(如树莓派、电子书阅读器)上运行。

目前最新版本为 Supertonic 3,支持 31 种语言,拥有 9900 万参数(99M-Parameter),是一个完全开源权重的模型。它能够在保持极低内存占用和快速冷启动时间的同时,提供接近大型开源 TTS 系统(如 0.7B–2B 参数级模型)的语音合成质量。

解决的问题

  1. 隐私与数据主权问题:传统 TTS 服务通常需要将文本发送至云端服务器处理,存在数据泄露风险。Supertonic 通过本地推理,确保音频数据永远不离开用户设备,彻底消除隐私顾虑。
  2. 网络依赖与延迟:云端 API 受网络波动影响,且存在请求排队延迟。Supertonic 实现了低延迟、实时合成,甚至能在 1 秒内将整页网页转换为音频,适用于对实时性要求极高的场景。
  3. 部署成本与资源限制:大型 TTS 模型通常需要 GPU 加速和高带宽存储,难以在资源受限的边缘设备(如 IoT 设备、低端手机)上运行。Supertonic 仅需 CPU 即可高效运行,且模型体积小巧(99M 参数),大幅降低了硬件门槛和部署成本。
  4. 多语言适配复杂性:传统方案往往需要为每种语言单独训练或加载适配器。Supertonic 支持 31 种语言,并提供 lang="na" 模式,允许模型以语言无关的方式处理输入,简化了多语言应用的开发流程。

核心功能

  • 31 语言多语言支持:涵盖英语、中文、日语、韩语、法语、德语、西班牙语等主流语言,以及阿拉伯语、俄语、越南语等区域性语言。支持通过 lang="na" 进行自动语言识别处理。
  • 高保真音频输出:直接输出 44.1kHz 采样率、16-bit 深度的 WAV 格式音频,无需外部上采样器,即可满足生产级播放需求。
  • 表达标签(Expression Tags):内置 10 种内联标签(如 <laugh> 笑声、<breath> 呼吸、<sigh> 叹息等),无需复杂的提示工程或参考音频,即可在生成语音中注入自然的人类情感细微差别。
  • 多运行时 SDK 支持:提供覆盖主流编程语言的 SDK,包括 Python、Node.js、Java、C++、C#、Go、Swift、iOS、Rust 和 Flutter。
  • 本地 HTTP 服务:Python SDK 支持 supertonic serve 命令,可将 Supertonic 启动为本地 HTTP 服务器,提供原生 /v1/tts 和兼容 OpenAI 格式的 /v1/audio/speech 接口,便于与现有工具链集成。
  • Voice Builder 自定义音色:支持用户创建永久性的自定义音色配置文件,并下载版本特定的 JSON 文件,实现声音克隆和个性化定制。

亮点 / 与同类相比

  • 极致轻量化 vs. 高性能
    • 对比:主流开源 TTS 模型(如 VITS 变体、ChatTTS 等)通常参数量在 0.7B 至 2B 之间,需要较大的显存和较长的推理时间。
    • Supertonic:仅 99M 参数,模型体积仅为同类系统的几分之一。在 Minimax-MLS-test 基准测试中,其 WER/CER(词错误率/字符错误率)表现与 VoxCPM2 等大型模型相当,实现了“小模型,大性能”。
  • 零 GPU 依赖
    • 对比:许多高性能 TTS 模型依赖 GPU 进行加速推理。
    • Supertonic:完全基于 ONNX Runtime,优化后可在纯 CPU 环境下高效运行,甚至能在树莓派等低功耗设备上流畅使用。
  • 浏览器端推理能力
    • 利用 onnxruntime-web,Supertonic 可直接在浏览器中通过 WebGPU 进行推理,无需后端服务器支持,适合构建纯前端的语音应用。
  • 开箱即用的多语言生态
    • 无需单独下载语言包或适配器,单一模型即可处理 31 种语言,且提供 lang="na" 的容错机制,极大简化了国际化应用的开发。

适合谁用 / 上手

适合人群:

  • 隐私敏感型开发者:需要处理用户敏感数据,无法使用云端 API 的应用开发者。
  • 边缘计算/IoT 工程师:需要在资源受限设备(如嵌入式系统、移动设备)上部署语音功能的技术人员。
  • 离线应用开发者:构建无网络依赖的桌面或移动应用,需要实时语音合成功能。
  • 多语言内容创作者:需要快速将文本转换为多种语言音频,且对成本敏感的个人或团队。

上手指南:

  1. Python SDK 快速体验(推荐): 安装 Python SDK,首次运行会自动从 Hugging Face 下载模型资产。

    pip install supertonic
    
    from supertonic import TTS
    
    # 首次运行自动下载模型
    tts = TTS(auto_download=True)
    style = tts.get_voice_style(voice_name="M1")
    text = "Supertonic is a lightning fast, on-device TTS system."
    
    wav, duration = tts.synthesize(
        text=text,
        lang="en",
        voice_style=style,
        total_steps=8,  # 质量:5(低) 到 12(高),默认 8(中)
        speed=1.05      # 速度:0.7(慢) 到 2.0(快)
    )
    
    tts.save_audio(wav, "output.wav")
    print(f"Generated {duration[0]:.2f}s of audio")
    
  2. 启动本地 HTTP 服务: 适用于需要与 OpenAI 兼容客户端或其他 HTTP 工具集成的场景。

    pip install 'supertonic[serve]'
    supertonic serve --host 127.0.0.1 --port 7788
    

    启动后,可通过 http://127.0.0.1:7788/docs 查看交互式 OpenAPI 文档。

  3. 源码编译与其他语言: 对于需要深度定制或使用其他语言(如 Swift, Rust, Go)的用户,需克隆仓库并安装 Git LFS 以获取模型文件。

    git clone https://github.com/supertone-inc/supertonic.git
    cd supertonic
    # 安装 Git LFS 并下载模型
    git lfs install
    git clone https://huggingface.co/Supertone/supertonic-3 assets
    # 进入对应语言目录运行示例,例如 Swift
    cd swift
    swift build -c release
    .build/release/example_onnx
    
查看原文 →github.com