Lightning-Fast, On-Device, Multilingual TTS — running natively via ONNX.
이 번역은 AI가 원문 README를 옮긴 것입니다. 원문이 항상 우선합니다.
Supertonic은 최소한의 오버헤드로 로컬 추론을 위해 설계된 초고속 온디바이스 다국어 텍스트 음성 변환 시스템입니다. ONNX Runtime으로 구동되며, 전적으로 기기에서 실행됩니다. 클라우드, API 호출, 개인정보 보호 문제가 없습니다.
lang="na"를 전달하면 Supertonic이 언어에 구애받지 않고 텍스트를 처리합니다. 별도의 언어 어댑터가 필요 없음<laugh>, <breath>, <sigh>)가 프롬프트 엔지니어링이나 참조 오디오 없이 생성된 음성에 자연스러운 인간적 뉘앙스를 부여아랍어 (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이 언어에 구애받지 않고 입력을 처리합니다. 명시적인 언어 태그가 필요하지 않습니다.
supertonic serve 가 추가되었습니다. 기본 /v1/tts 및 OpenAI 호환 /v1/audio/speech 엔드포인트를 제공하는 로컬 HTTP 서버입니다. serve 문서를 참조하세요.release/supertonic-2 브랜치에 보존됩니다.supertonic PyPI 패키지 추가! pip install supertonic으로 설치하세요. 자세한 내용은 supertonic-py 문서를 방문하세요.Python SDK를 설치하고 즉시 음성을 생성하세요. 첫 실행 시 Supertonic이 Hugging Face에서 모델 자산을 자동으로 다운로드합니다.
pip install supertonic
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}초 분량의 오디오 생성됨")
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
brew install onnxruntime으로 충분하며, Go 예제가 Homebrew 경로를 자동 감지합니다.brew install openjdk@17이 작동합니다.일부 언어 예제는 네이티브 런타임이 필요합니다:
그런 다음 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>
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>
비교