supertone-inc/supertonic
요약
Supertonic은 최소한의 오버헤드로 로컬 환경에서 작동하는 고성능 온디바이스 텍스트 음성 변환(TTS) 시스템입니다. ONNX Runtime 기반으로 클라우드나 API 호출 없이 기기 자체에서 실행되어 높은 개인정보 보호 수준을 제공합니다. Supertonic 3 출시를 통해 31개 언어 지원, 향상된 읽기 정확도 등이 개선되었으며, Python SDK와 다양한 플랫폼(Node.js, Java, C++, Swift 등)의 예제 코드를 제공하여 광범위한 사용성을 확보했습니다.
핵심 포인트
- Supertonic은 ONNX Runtime을 기반으로 하는 온디바이스 TTS 시스템입니다.
- 클라우드 의존성이 없어 높은 개인정보 보호 기능을 제공합니다.
- 최신 버전(Supertonic 3)에서는 31개 언어 지원 및 읽기 정확도 향상이 이루어졌습니다.
- Python SDK 외에도 Node.js, Java, C++, Swift 등 다양한 플랫폼별 예제 코드를 제공합니다.
- Voice Builder를 통해 사용자의 목소리를 배포 가능한 엣지 네이티브 TTS로 변환할 수 있습니다.
Supertonic은 최소한의 오버헤드로 로컬 추론 (local inference)을 위해 설계된 매우 빠른 온디바이스 텍스트 음성 변환 (TTS) 시스템입니다. ONNX Runtime을 기반으로 하며, 클라우드나 API 호출 없이 사용자의 기기에서 완전히 실행되므로 개인정보 보호 문제가 없습니다.
2026.04.29- 🎉Supertonic 3가 31개 언어 지원, 향상된 읽기 정확도, 반복/건너뛰기 오류 감소, 그리고 v2와 호환되는 공개 ONNX 에셋과 함께 출시되었습니다. Demo | Models
2026.01.22- Voice Builder가 이제 라이브 상태입니다! 당신의 목소리를 영구적인 소유권을 가진 배포 가능한 엣지 네이티브 (edge-native) TTS로 변환하세요.
2026.01.06- 🎉Supertonic 2가 5개 언어 지원과 함께 출시되었습니다. v2 코드 경로는 release/supertonic-2 브랜치에 보존됩니다.
2025.12.10- supertonic PyPI 패키지를 추가했습니다! pip install supertonic을 통해 설치하세요. 자세한 내용은 supertonic-py 문서를 방문하세요.
2025.12.10- 6개의 새로운 음성 스타일 (M3, M4, M5, F3, F4, F5)을 추가했습니다. 자세한 내용은 Voices를 참조하세요.
2025.12.08- OnnxSlim을 통해 최적화된 ONNX 모델을 이제 Hugging Face Models에서 사용할 수 있습니다.
2025.11.24- macOS 호환성을 포함한 Flutter SDK 지원을 추가했습니다.
Python SDK를 설치하고 즉시 음성을 생성하세요. 첫 실행 시, Supertonic은 Hugging Face에서 모델 에셋을 자동으로 다운로드합니다.
pip install supertonic
from supertonic import TTS
# 첫 실행 시 Hugging Face에서 모델을 자동으로 다운로드합니다.
tts = TTS(auto_download=True)
...
먼저, 저장소를 클론(clone)하세요:
git clone https://github.com/supertone-inc/supertonic.git
cd supertonic
예제를 실행하기 전에, ONNX 모델과 프리셋 음성(preset voices)을 다운로드하여 assets 디렉토리에 배치하세요:
참고: Hugging Face 저장소는 Git LFS를 사용합니다. 대규모 모델 파일을 클론하거나 풀(pull)하기 전에 Git LFS가 설치되고 초기화되었는지 확인하십시오.
-
macOS:
brew install git-lfs && git lfs install -
일반: 설치 프로그램을 보려면
https://git-lfs.com을 참조하세요.
git lfs install
git clone https://huggingface.co/Supertone/supertonic-3 assets
일부 언어 예제는 네이티브 런타임 (native runtimes)이 필요합니다:
Go: ONNX Runtime C 라이브러리를 설치하세요. macOS에서는 brew install onnxruntime 명령어로 충분합니다. Go 예제는 Homebrew 경로를 자동으로 감지합니다.
Java: JRE가 아닌 JDK를 사용하세요. macOS에서는 brew install openjdk@17이 작동합니다.
C#: .NET 9을 타겟으로 하며 메이저 버전 롤포워드 (major-version roll-forward)를 허용하므로, .NET 9 또는 그 이상의 런타임(runtimes)에서 실행할 수 있습니다.
그 다음 Python 예제를 실행하세요:
cd py
uv sync
uv run example_onnx.py
기본 프리셋 음성(default preset voice)을 사용하여 outputs/output.wav가 생성됩니다.
다른 언어 및 플랫폼에서 Supertonic 실행하기
Node.js 예제 (상세 정보)
cd nodejs
npm install
npm start
브라우저 예제 (상세 정보)
cd web
npm install
npm run dev
Java 예제 (상세 정보)
cd java
mvn clean install
mvn exec:java
C++ 예제 (상세 정보)
cd cpp
mkdir build && cd build
cmake .. && cmake --build . --config Release
...
C# 예제 (상세 정보)
cd csharp
dotnet restore
dotnet run
Go 예제 (상세 정보)
cd go
go mod download
go run example_onnx.go helper.go
Swift 예제 (상세 정보)
cd swift
swift build -c release
.build/release/example_onnx
Rust 예제 (상세 정보)
cd rust
cargo build --release
./target/release/example_onnx
iOS 예제 (상세 정보)
cd ios/ExampleiOSApp
xcodegen generate
open ExampleiOSApp.xcodeproj
Xcode에서: Targets → ExampleiOSApp → Signing: 팀(Team)을 선택한 다음, 실행 대상(run destination)으로 iPhone을 선택하고 빌드하세요.
런타임 (Runtime): 크로스 플랫폼 추론 (cross-platform inference)을 위한 ONNX Runtime
브라우저 지원 (Browser Support): 클라이언트 측 추론 (client-side inference)을 위한 onnxruntime-web
배치 처리 (Batch Processing): 처리량 (throughput) 향상을 위한 배치 추론 (batch inference) 지원
오디오 출력 (Audio Output): 16비트 WAV 파일 출력
Supertonic 3는 실용적인 온디바이스 추론 (on-device inference)을 위해 설계되었습니다. 훨씬 더 큰 오픈 TTS 시스템들과 경쟁력을 유지하면서도, 로컬에서 실행될 수 있을 만큼 컴팩트합니다.
측정된 언어 전반에 걸쳐, Supertonic 3는 VoxCPM2와 같은 훨씬 더 큰 오픈 TTS 모델들과 비교했을 때 경쟁력 있는 WER/CER 범위 내를 유지하면서도, 가벼운 온디바이스 (on-device) 배포 경로를 보존합니다. 별표(*)가 표시된 언어는 CER을 사용하며, 그 외의 언어는 WER을 사용합니다.
Supertonic 2와 비교하여, Supertonic 3는 반복(repeat) 및 건너뛰기(skip) 오류를 줄였고, 공유 언어 세트 전반에서 화자 유사도 (speaker similarity)를 개선했으며, 언어 지원 범위를 5개에서 31개 언어로 확장했습니다. v2와 호환되는 공개 ONNX 인터페이스를 유지하므로, 기존 통합 환경은 동일한 추론 계약 (inference contract)을 통해 v3로 전환할 수 있습니다.
Supertonic 3는 A100 GPU에서 측정된 더 큰 베이스라인 (baseline) 모델들과 비교해도 CPU에서 빠르게 실행되며, 메모리를 실질적으로 훨씬 적게 사용합니다. 오픈 웨이트 (open-weight) 고정 음성 (fixed-voice) 설정은 GPU를 요구하지 않으므로, 로컬, 브라우저 및 엣지 (edge) 배포를 훨씬 쉽게 만듭니다.
공개 ONNX 자산 전체에 걸쳐 약 99M 파라미터를 가진 Supertonic 3는 0.7B에서 2B 클래스의 오픈 TTS 시스템보다 훨씬 작습니다. 더 작은 모델 크기는 다운로드 크기, 시작 시간 및 온디바이스 추론 측면에서 실질적인 이점을 제공합니다.
지금 바로 체험해 보세요: Interactive Demo를 통해 브라우저에서 Supertonic을 경험하거나, Hugging Face Hub의 사전 학습된 모델로 시작해 보세요.
Raspberry Pi에서 실행되는 Supertonic을 시청하여, 온디바이스 실시간 텍스트 음성 변환 (text-to-speech) 합성을 확인해 보세요:
supertonic_raspberry-pi_480.mov
네트워크 의존성 없이 비행기 모드 상태인 Onyx Boox Go 6 전자책 단말기에서 Supertonic을 경험해 보세요. 평균 0.3×의 RTF를 달성합니다:
supertonic_ebook.mp4
어떤 웹페이지든 1초 이내에 오디오로 변환하여, 네트워크 의존성 없이 번개처럼 빠른 온디바이스 텍스트 음성 변환을 제공합니다—무료이며, 프라이빗하고, 간편합니다:
TLDRL_video_1_1_4_short_low.mp4
매우 빠른 속도 (Blazingly Fast): 데스크톱, 브라우저 및 엣지 (edge) 배포 환경 전반에서 저지연 (low-latency) 온디바이스 음성 생성을 위해 최적화되었습니다.
경량화 (Lightweight): 효율적인 로컬 실행을 위해 설계된 컴팩트한 ONNX 자산 (assets).
온디바이스 가능 (On-Device Capable): 완전한 프라이버시 보장 및 네트워크 의존성 제로.
정확한 읽기 (Accurate Reading): 반복 및 건너뛰기 오류를 줄여 개선된 읽기 안정성.
표현력 있는 태그 (Expressive Tags): <laugh>, <breath>, <sigh>와 같은 간단한 표현 태그 지원.
유연한 배포 (Flexible Deployment): Python, JavaScript, 브라우저, 모바일 및 네이티브 런타임 (runtime) 전반에 걸쳐 즉시 사용 가능한 예제 제공.
Supertonic 3는 31개 언어를 지원합니다:
| 코드 | 언어 | 코드 | 언어 | 코드 | 언어 | 코드 | 언어 |
|---|---|---|---|---|---|---|---|
en | 영어 | ko | 한국어 | ja | 일본어 | ar | 아랍어 |
bg | 불가리아어 | cs | 체코어 | da | 덴마크어 | de | 독일어 |
el | 그리스어 | es | 스페인어 | et | 에스토니아어 | fi | 핀란드어 |
fr | 프랑스어 | hi | 힌디어 | hr | 크로아티아어 | hu | 헝가리어 |
id | 인도네시아어 | it | 이탈리아어 | lt | 리투아니아어 | lv | 라트비아어 |
nl | 네덜란드어 | pl | 폴란드어 | pt | 포르투갈어 | ro | 루마니아어 |
ru | 러시아어 | sk | 슬로바키아어 | sl | 슬로베니아어 | sv | 스웨덴어 |
tr | 터키어 | uk | 우크라이나어 | vi | 베트남어 |
다양한 생태계에 걸쳐 즉시 사용 가능한 TTS 추론 (inference) 예제를 제공합니다:
| 언어/플랫폼 | 경로 | 설명 |
|---|---|---|
| Python | py/ | ONNX Runtime 추론 |
| Node.js | nodejs/ | 서버 측 JavaScript |
| Browser | web/ | WebGPU/WASM 추론 |
| Java | java/ | 크로스 플랫폼 JVM |
| C++ | cpp/ | 고성능 C++ |
| C# | csharp/ | .NET 생태계 |
| Go | go/ | Go 구현체 |
| Swift | swift/ | macOS 애플리케이션 |
| iOS | ios/ | 네이티브 iOS 앱 |
| Rust | rust/ | 메모리 안전 시스템 |
| Flutter | flutter/ | 크로스 플랫폼 앱 |
상세한 사용법은 각 언어 디렉터리에 있는 README.md를 참조하십시오.
Supertonic은 자연스러운 산문, 문장 부호, 약어 및 고유 명사(Proper nouns)를 포함하는 복잡하고 실제적인 텍스트 입력을 처리하도록 설계되었습니다.
🎧
오디오 샘플을 더 쉽게 확인하려면: 모든 오디오 예시를 더 나은 환경에서 확인하려면 우리의 Interactive Demo를 확인하십시오.
테스트 케이스 개요 (Overview of Test Cases):
| 카테고리 | 주요 과제 (Key Challenges) | Supertonic | ElevenLabs | OpenAI | Gemini | Microsoft |
|---|---|---|---|---|---|---|
| 금융 표현 (Financial Expression) | 소수점 통화, 약어 단위 (M, K), 통화 기호, 통화 코드 | ✅ | ❌ | ❌ | ❌ | ❌ |
| ... | ||||||
| 예시 1: 금융 표현 (Financial Expression) |
텍스트:
"The startup secured
$5.2Min venture capital, a huge leap from their initial$450Kseed round."
과제 (Challenges):
- 통화 내 소수점 ($5.2M은 "five point two million"으로 읽어야 함)
- 약어 단위 (million을 위한 M, thousand를 위한 K)
- "dollars"로 적절하게 발음되어야 하는 통화 기호 ($)
오디오 샘플 (Audio Samples):
| 시스템 | 결과 | 오디오 샘플 |
|---|---|---|
| Supertonic | ✅ | 🎧 Play Audio |
| ElevenLabs Flash v2.5 | ❌ | 🎧 Play Audio |
| OpenAI TTS-1 | ❌ | 🎧 Play Audio |
| ... | ||
| 예시 2: 전화번호 (Phone Number) |
텍스트:
"You can reach the hotel front desk at
(212) 555-0142 ext. 402anytime."
과제 (Challenges):
- 개별 숫자로 읽어야 하는 괄호 안의 지역 번호 (Area code)
- 하이픈 구분자가 있는 전화번호 (555-0142)
- 약어 확장 표기 (ext.)
- 내선 번호 (Extension number) (402)
오디오 샘플 (Audio Samples):
| 시스템 | 결과 | 오디오 샘플 |
|---|---|---|
| Supertonic | ✅ | 🎧 Play Audio |
| ElevenLabs Flash v2.5 | ❌ | 🎧 Play Audio |
| OpenAI TTS-1 | ❌ | 🎧 Play Audio |
| ... | ||
| 예시 3: 기술 단위 (Technical Unit) |
텍스트:
"Our drone battery lasts
2.3hwhen flying at30kphwith full camera payload."
과제 (Challenges):
- 약어(abbreviation)를 포함한 소수점 시간 기간 (2.3h = two point three hours)
- 약어를 포함한 속도 단위 (30kph = thirty kilometers per hour)
- 기술적 약어 (시간을 나타내는 h, 시속을 나타내는 kph)
- 적절한 발음이 요구되는 기술적/공학적 문맥
오디오 샘플 (Audio Samples):
| 시스템 (System) | 결과 (Result) | 오디오 샘플 (Audio Sample) |
|---|---|---|
| Supertonic | ✅ | 🎧 오디오 재생 |
| ElevenLabs Flash v2.5 | ❌ | 🎧 오디오 재생 |
| OpenAI TTS-1 | ❌ | 🎧 오디오 재생 |
| ... | ||
| 참고: 이 샘플들은 각 시스템이 전처리(pre-processing)나 음성 기호 주석(phonetic annotations) 없이도 텍스트 정규화(text normalization)와 복잡한 표현의 발음을 어떻게 처리하는지 보여줍니다. |
| 프로젝트 (Project) | 설명 (Description) | 링크 (Links) |
|---|---|---|
| TLDRL | 모든 웹페이지를 읽기 위한 무료 온디바이스 (on-device) TTS 확장 프로그램 | Chrome |
| Read Aloud | 오픈 소스 TTS 브라우저 확장 프로그램 | Chrome · Edge · GitHub |
| PageEcho | iOS용 E-Book 리더 앱 | App Store |
| VoiceChat | 브라우저 내 온디바이스 (on-device) 음성 대 음성 (voice-to-voice) LLM 챗봇 | Demo · GitHub |
| OmniAvatar | 사진 + 음성을 이용한 말하는 아바타 비디오 생성기 | Demo |
| CopiloTTS | ONNX Runtime을 통한 Kotlin Multiplatform TTS SDK | GitHub |
| Voice Mixer | 음성 스타일을 믹싱하고 수정하기 위한 PyQt5 도구 | GitHub |
| Supertonic MNN | MNN 기반의 경량 라이브러리 (fp32/fp16/int8) | GitHub · PyPI |
| Transformers.js | Supertonic을 지원하는 Hugging Face의 JS 라이브러리 | GitHub PR · Demo |
| Pinokio | Mac, Windows, Linux를 위한 1클릭 로컬호스트 클라우드 | Pinokio · GitHub |
다음 논문들은 Supertonic에 사용된 핵심 기술들을 설명합니다. 연구에 이 시스템을 사용하거나 이 기술들이 유용하다고 판단되면, 관련 논문을 인용해 주시기 바랍니다:
이 논문은 음성 오토인코더 (speech autoencoder), 플로우 매칭 (flow-matching) 기반의 텍스트-잠재 변수 변환 (text-to-latent) 모듈, 그리고 효율적인 설계 선택을 포함한 SupertonicTTS의 전체 아키텍처 (architecture)를 소개합니다.
@article{kim2025supertonic,
title={SupertonicTTS: 고도로 효율적이고 간소화된 텍스트 음성 변환 (Text-to-Speech) 시스템을 향하여},
author={Kim, Hyeongju and Yang, Jinhyeok and Yu, Yechan and Ji, Seunghun and Morton, Jacob and Bous, Frederik and Byun, Joon and Lee, Juheon},
...
이 논문은 교차 주의 집중 (cross-attention) 메커니즘에서 텍스트-음성 정렬 (text-speech alignment)을 개선하는 길이 인식 회전 위치 임베딩 (Length-Aware Rotary Position Embedding, LARoPE)을 제시합니다.
@article{kim2025larope,
title={텍스트-음성 정렬을 위한 길이 인식 회전 위치 임베딩 (Length-Aware Rotary Position Embedding)},
author={Kim, Hyeongju and Lee, Juheon and Yang, Jinhyeok and Morton, Jacob},
...
이 논문은 노이즈가 있거나 신뢰할 수 없는 레이블 (labels)을 사용하여 플로우 매칭 (flow matching) 모델을 견고하게 학습시키기 위한 자기 정제 (self-purification) 기술을 설명합니다.
@article{kim2025spfm,
title={자기 정제 (Self-Purification)를 통한 신뢰할 수 있는 레이블 기반의 플로우 매칭 (Flow Matching) 모델 학습},
author={Kim, Hyeongju and Yu, Yechan and Yi, June Young and Lee, Juheon},
...
이 프로젝트의 샘플 코드는 MIT 라이선스 (MIT License) 하에 공개됩니다. - 자세한 내용은 LICENSE를 참조하십시오.
동반되는 모델은 OpenRAIL-M 라이선스 (OpenRAIL-M License) 하에 공개됩니다. - 자세한 내용은 LICENSE 파일을 참조하십시오.
이 모델은 PyTorch를 사용하여 학습되었으며, PyTorch는 BSD 3-Clause 라이선스 (BSD 3-Clause License) 하에 라이선스가 부여되지만 이 프로젝트와 함께 재배포되지는 않습니다. - 자세한 내용은 LICENSE를 참조하십시오.
Copyright (c) 2026 Supertone Inc.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Trending All (daily)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기