supertone-inc/supertonic

Lightning-Fast, On-Device, Multilingual TTS — running natively via ONNX.

GitHub에서 열기 ↗ cppcsharpfluttergoiosjavalightweightmultilingualnodejson-deviceonnxonnxruntimepythonrustspeech-synthesisswifttext-to-speechttswebwebgpu
12,965
GitHub 스타
1,332
포크
Swift
언어
MIT
라이선스
2026.06.30
최근 푸시
2026.05.17
별표한 날

AI 분석

설치 난이도: 보통
큐레이터 노트
온디바이스 TTS가 필요하고, 다양한 언어와 플랫폼을 지원하며, 경량 모델로 빠른 추론이 중요한 프로젝트에 적합합니다. 특히 개인정보 보호와 오프라인 동작이 중요한 애플리케이션에 추천합니다.

강점

  • 매우 빠른 속도와 낮은 지연 시간으로 실시간 합성 가능
  • 99M 파라미터의 경량 모델로 온디바이스 및 엣지 기기에서 실행 가능
  • 31개 언어 지원 및 언어 무관 모드 제공
  • 다양한 런타임(Python, Node.js, 브라우저, Java, C++, C#, Go, Swift, Rust, iOS, Flutter) 지원
  • 표현 태그를 통한 자연스러운 음성 생성
  • 로컬 HTTP 서버 및 OpenAI 호환 API 제공
  • Voice Builder를 통한 맞춤형 음성 프로필 생성 가능

약점

  • 일부 언어에서 WER/CER이 경쟁 모델 대비 다소 높은 경우 있음 (예: 핀란드어, 베트남어)
  • 모델 다운로드를 위해 Hugging Face 및 Git LFS 필요
  • 일부 런타임(Go, Java, C#)은 추가 네이티브 라이브러리 설치 필요

주의사항

  • Git LFS 설치 및 초기화 필수, 대용량 모델 파일 다운로드에 시간 소요
  • 첫 실행 시 모델 자동 다운로드로 인해 초기 지연 발생
  • 일부 언어의 성능이 다른 모델에 비해 떨어질 수 있음

시작 가이드

  • Python SDK를 설치하고 빠른 시작 예제를 실행해 보세요.
  • 지원되는 언어 목록을 확인하고 원하는 언어로 테스트해 보세요.
  • 로컬 HTTP 서버를 실행하여 OpenAI 호환 API를 활용해 보세요.
  • Voice Builder를 사용하여 맞춤형 음성 프로필을 생성해 보세요.
  • 다른 런타임(Node.js, 브라우저, iOS 등) 예제를 탐색해 보세요.

README 한국어 번역

이 번역은 AI가 원문 README를 옮긴 것입니다. 원문이 항상 우선합니다.

Supertonic — 초고속, 온디바이스, 정확한 TTS

Supertonic은 최소한의 오버헤드로 로컬 추론을 위해 설계된 초고속 온디바이스 다국어 텍스트 음성 변환 시스템입니다. ONNX Runtime으로 구동되며, 전적으로 기기에서 실행됩니다. 클라우드, API 호출, 개인정보 보호 문제가 없습니다.

✨ 주요 특징

  • 매우 빠름 — 데스크톱, 브라우저, 모바일, 엣지에서 지연 시간이 짧은 실시간 합성. 웹페이지 전체를 1초 미만으로 오디오로 변환할 수 있을 정도로 빠름
  • 🌍 31개 언어 다국어 지원 — 31개 언어로 텍스트를 직접 합성하거나, 입력 언어를 모를 때 lang="na"를 전달하면 Supertonic이 언어에 구애받지 않고 텍스트를 처리합니다. 별도의 언어 어댑터가 필요 없음
  • 🪶 9,900만 파라미터 오픈 가중치 모델 — 0.7B~2B급 오픈 TTS 시스템의 일부 크기로, 더 작은 다운로드, 더 빠른 콜드 스타트, 더 낮은 메모리 사용량
  • 📱 엣지 기기 지원 — 데스크톱, 모바일, 브라우저, Raspberry Pi나 e-reader 같은 리소스 제약 하드웨어에서 로컬로 실행. 네트워크 의존성 제로, 완전한 개인정보 보호, GPU 불필요
  • 🔊 44.1kHz 고품질 오디오 — 스튜디오급 44.1kHz 16비트 WAV를 직접 출력. 외부 업샘플러 없이 프로덕션 재생 준비 완료
  • 🎭 표현 태그 — 10개의 인라인 태그(예: <laugh>, <breath>, <sigh>)가 프롬프트 엔지니어링이나 참조 오디오 없이 생성된 음성에 자연스러운 인간적 뉘앙스를 부여
  • 🛠️ 멀티 런타임 SDK — Python, Node.js, Browser (WebGPU), Java, C++, C#, Go, Swift, iOS, Rust, Flutter 등 ONNX Runtime을 통한 즉시 사용 가능한 예제

🌍 지원 언어 (31개)

아랍어 (ar), 불가리아어 (bg), 크로아티아어 (hr), 체코어 (cs), 덴마크어 (da), 네덜란드어 (nl), 영어 (en), 에스토니아어 (et), 핀란드어 (fi), 프랑스어 (fr), 독일어 (de), 그리스어 (el), 힌디어 (hi), 헝가리어 (hu), 인도네시아어 (id), 이탈리아어 (it), 일본어 (ja), 한국어 (ko), 라트비아어 (lv), 리투아니아어 (lt), 폴란드어 (pl), 포르투갈어 (pt), 루마니아어 (ro), 러시아어 (ru), 슬로바키아어 (sk), 슬로베니아어 (sl), 스페인어 (es), 스웨덴어 (sv), 터키어 (tr), 우크라이나어 (uk), 베트남어 (vi)

텍스트의 언어를 모르시나요? lang="na"를 전달하면 Supertonic이 언어에 구애받지 않고 입력을 처리합니다. 명시적인 언어 태그가 필요하지 않습니다.

📰 업데이트 소식

  • 2026.05.20 - Supertonic 3가 이제 Supertone PlaySupertone API 에서 공식 지원됩니다. 다양한 프리셋 음성과 제로샷 음성 복제를 갖춘 관리형 콘텐츠 제작 워크플로우를 원하시면 Play 또는 API를 방문하세요.
  • 2026.05.18 - Python SDK v1.3.1에 supertonic serve 가 추가되었습니다. 기본 /v1/tts 및 OpenAI 호환 /v1/audio/speech 엔드포인트를 제공하는 로컬 HTTP 서버입니다. serve 문서를 참조하세요.
  • 2026.05.18 - Voice Builder 가 이제 Supertonic 3를 지원합니다. Supertonic용 영구 맞춤형 음성 프로필을 만들고 Supertonic 2 및 Supertonic 3용 버전별 JSON 파일을 다운로드하세요. 이미 Supertonic 2 음성을 만든 경우, 해당 Supertonic 3 JSON을 My Page에서 사용할 수 있습니다.
  • 2026.04.29 - 🎉 Supertonic 3 출시: 31개 언어 지원, 향상된 읽기 정확도, 반복/건너뛰기 오류 감소, v2 호환 공개 ONNX 자산. 데모 | 모델
  • 2026.01.22 - Voice Builder 가 출시되었습니다! 음성을 배포 가능한 엣지 네이티브 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

Python

from supertonic import TTS

# 첫 실행 시 Hugging Face에서 모델을 자동으로 다운로드합니다.
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",                      # 언어 코드 (예: "en", "ko", "na"는 언어 무관)
    voice_style=style,              # 음성 스타일 객체
    total_steps=8,                  # 품질: 5 (낮음) ~ 12 (높음), 기본값 8 (중간)
    speed=1.05,                     # 속도: 0.7 (느림) ~ 2.0 (빠름)
)
# wav: shape (1, num_samples,)의 numpy 배열, dtype=np.float32, 44100 Hz 샘플링
# duration: shape (1,)의 numpy 배열, 생성된 오디오의 길이(초) 포함

tts.save_audio(wav, "output.wav")
# import soundfile as sf
# sf.write("output.wav", wav.squeeze(), 44100)

print(f"{duration[0]:.2f}초 분량의 오디오 생성됨")

로컬 HTTP 서버

Python SDK는 Supertonic을 로컬 HTTP 서비스로 실행할 수도 있습니다. 이는 로컬 에이전트, 브라우저 확장 프로그램, Electron 앱, 워크플로우 자동화 도구 또는 OpenAI 호환 오디오 클라이언트 등 이미 HTTP를 사용하는 도구에서 Supertonic을 호출하려는 경우 유용합니다.

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

실행 중이면 기본 POST /v1/tts 엔드포인트 또는 OpenAI 호환 POST /v1/audio/speech 엔드포인트를 사용하세요. 서버는 http://127.0.0.1:7788/docs에서 대화형 OpenAPI 문서도 제공합니다. 요청 예제, 배치 합성 및 사용자 정의 Voice Builder JSON 가져오기는 supertonic-py serve 가이드를 참조하세요.

시작하기

먼저 저장소를 클론합니다:

git clone https://github.com/supertone-inc/supertonic.git
cd supertonic

전제 조건

예제를 실행하기 전에 ONNX 모델과 프리셋 음성을 다운로드하여 assets 디렉토리에 배치합니다:

참고: Hugging Face 저장소는 Git LFS를 사용합니다. 큰 모델 파일을 클론하거나 풀하기 전에 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
  • Go: ONNX Runtime C 라이브러리 설치. macOS에서는 brew install onnxruntime으로 충분하며, Go 예제가 Homebrew 경로를 자동 감지합니다.
  • Java: JRE가 아닌 JDK 사용. macOS에서는 brew install openjdk@17이 작동합니다.
  • C#:.NET 9를 대상으로 하며 주 버전 롤포워드를 허용하므로.NET 9 이상 런타임에서 실행 가능합니다.

일부 언어 예제는 네이티브 런타임이 필요합니다:

그런 다음 Python 예제를 실행합니다:

cd py
uv sync
uv run example_onnx.py

이 명령은 기본 프리셋 음성을 사용하여 outputs/output.wav를 생성합니다.

기타 런타임 예제

<details> <summary><b>다른 언어 및 플랫폼에서 Supertonic 실행</b></summary>

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./example_onnx

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: 팀 선택 후 iPhone을 실행 대상으로 선택하고 빌드합니다.

</details>


기술 세부 사항

  • 런타임: ONNX Runtime (크로스 플랫폼 추론)
  • 브라우저 지원: onnxruntime-web (클라이언트 측 추론)
  • 배치 처리: 처리량 향상을 위한 배치 추론 지원
  • 오디오 출력: 44.1kHz 16비트 WAV 파일 출력

성능 하이라이트

Supertonic 3는 실용적인 온디바이스 추론을 위해 설계되었습니다. 로컬에서 실행할 수 있을 만큼 작으면서도 훨씬 더 큰 오픈 TTS 시스템과 경쟁력을 유지합니다.

읽기 정확도

Minimax-MLS-test 벤치마크에서 평가된 Supertonic 3는 VoxCPM2와 같은 훨씬 더 큰 오픈 TTS 모델과 경쟁력 있는 WER/CER 범위 내에 유지되면서도 가벼운 온디바이스 배포 경로를 제공합니다. 별표(*)가 있는 언어는 CER을 사용하고, 나머지는 WER을 사용합니다.

<details> <summary><b>📊 언어별 상세 결과 (WER / CER*)</b></summary>

언어 VoxCPM2 OmniVoice Qwen3-TTS Supertonic 2 Supertonic 3
아랍어* 4.14 1.74 2.14
체코어 23.73 2.40 3.02
네덜란드어 0.84 0.77 1.47
영어 2.11 2.02 2.25 2.52 2.06
핀란드어 2.29 3.94 5.40
프랑스어 4.41 4.74 3.82 5.09 4.89
독일어 0.85 0.96 0.52 0.86
그리스어 3.22 2.96 3.54
힌디어* 5.85 5.14 5.34
인도네시아어 1.25 1.67 1.34
이탈리아어 1.74 1.29 1.40 1.75
일본어* 3.35 3.81 3.67 4.61
한국어* 4.70 3.22 4.07 3.65 3.26
폴란드어 1.30 0.64 1.63
포르투갈어 1.74 1.40 1.21 1.52 2.48
루마니아어 22.39 2.29 2.19
러시아어 3.31 4.53 4.48 3.99
스페인어 1.34 0.99 0.75 1.81 1.13
터키어 0.88 2.18 1.00
우크라이나어 5.85 0.71 1.23
베트남어 1.48 0.79 4.49

낮을수록 좋습니다. *는 CER(문자 오류율)을 나타내고, 다른 모든 행은 WER(단어 오류율)을 사용합니다. 대시()는 해당 모델이 공식적으로 언어를 지원하지 않거나 결과를 사용할 수 없음을 나타냅니다.

</details>

Supertonic 2 대 Supertonic 3

비교

원본 저장소: supertone-inc/supertonic

라이선스: MIT

게재 제외를 원하시면 삭제 요청을 보내주세요.