오픈소스 프로젝트 후원하기

TTS ONNX Sherpa ONNX을 이용한 음성합성 프로그램

GitHub

왜 만들었나요

한국어, 중국어, 일본어에 대해 리눅스에서 쓸 수 있는 품질 좋은 오프라인 TTS 선택지가 아직 충분하지 않기 때문입니다.

로컬 | 빠름 | 한국어 | 중국어 | 일본어 | 영어

무엇인가요

TTS ONNX는 Sherpa-ONNX 기반의 리눅스 우선 텍스트 음성 변환 런타임입니다. 오프라인 음성 합성, 다국어 보이스 워크플로, CLI 사용, HTTP 서비스 모드를 지원합니다.

Sherpa-ONNX는 k2-fsa 프로젝트의 오픈소스 음성 툴킷입니다. ONNX Runtime을 사용해 로컬 추론을 수행하며, TTS와 음성 인식 같은 기능을 위한 구성 요소를 제공합니다.

오프라인 중심

클라우드 의존 없이 로컬에서 음성을 생성합니다.

모델 관리

KO/ZH/JA/EN 모델 설치, 조회, 관리를 지원합니다.

두 가지 실행 방식

하나의 바이너리로 CLI와 서비스 API를 모두 사용할 수 있습니다.

Sherpa-ONNX 프로젝트 URL

모델 URL (권장)

CLI 사용 방법

모델 설치

./bin/tts --install-remote-id vits-mimic3-ko_KO-kss_low
./bin/tts --lang zh --install-remote-id vits-piper-zh_CN-huayan-medium
./bin/tts --lang ja --install-remote-id kokoro-int8-multi-lang-v1_0
./bin/tts --install-remote-id kitten-nano-en-v0_1-fp16

보이스 목록 확인

./bin/tts --voice-list
./bin/tts --voice-list --lang ko
./bin/tts --voice-list --lang zh
./bin/tts --voice-list --lang ja
./bin/tts --voice-list --lang en

음성 합성

./bin/tts --lang ko "안녕하세요. 오프라인 테스트입니다."
./bin/tts --lang zh "这是中文语音合成测试。"
./bin/tts --lang ja "こんにちは。オフラインテストです。"
./bin/tts --lang en "Hello, this is an offline test."

WAV 파일로 저장

./bin/tts --out ./out.wav "save this audio"

서비스 모드 사용 방법

서비스 직접 실행

./bin/tts --service --config ./config/config.sherpa.yaml

사용자 서비스 설치 (systemd --user)

bash ./scripts/install-user-unit.sh
bash ./scripts/enable-user-service.sh

서비스 상태 확인

curl -fsS http://127.0.0.1:18741/v1/health

API로 음성 합성

curl -X POST http://127.0.0.1:18741/v1/speak \
  -H 'content-type: application/json' \
  -d '{"text":"hello world","lang":"en","format":"wav"}' \
  --output out.wav

설치된 모델 조회 (API)

curl -fsS http://127.0.0.1:18741/v1/models
기본 서비스 URL: http://127.0.0.1:18741/v1
주요 엔드포인트: /health, /models, /models/install, /speak, /stop, /metrics.

라이선스

이 프로젝트는 GNU General Public License v3.0 (GPL-3.0) 라이선스를 따릅니다. 자세한 내용은 저장소의 LICENSE.txt를 참고하세요.

다운로드

릴리스 다운로드

runable dad image