5uck1ess/tts-bench

Speed and samples benchmark: for all types of text to speech (TTS) models on Windows/Linux/Mac.

tts‑bench – 텍스트 음성 변환 모델용 로컬 벤치마크 스위트

정의 – tts‑bench는 자체 하드웨어에서 수많은 오픈소스 TTS 모델을 실행하고 세 가지 측면에서 비교할 수 있는 Python 기반 도구입니다.

측면 측정 내용 표시 방법
속도 콜드/웜 첫 오디오 시간(TTFA), 실시간 계수(RTFx), 메모리 사용량. CPU, CUDA GPU, Apple-Silicon(MPS)에서 실행. 머신별 정렬 가능한 테이블(예: Ryzen 9 + RTX 5090, Apple M4, RTX 3090).
듣기 모든 벤치마크 프롬프트에 대한 각 모델의 원시 오디오 출력. 모델 내장 음성 및 제로샷 음성 복제 버전 모두. 데모 사이트의 인라인 <audio> 플레이어. 프롬프트 또는 모델별로 탐색 가능.
점수 객관적 품질 수치: UTMOS(자연스러움), WER(명료도), SIM(음성 복제 충실도). 대화형 정렬 가능한 테이블 및 상위 15개 차트. 기본/복제 토글로 두 그룹을 분리하여 볼 수 있음.

이 스위트는 현재 단일 '전체 품질' 지표를 제공하지 않습니다. 저자는 NAQ 점수를 시도했지만 인간 선호도와 일치하지 않아 제거했습니다.


빠른 시작(README에서)

  1. 소형 패키지 관리자 uv와 Python 3.11을 설치합니다.
  2. 제공된 설치 스크립트(Windows PowerShell 또는 Unix 셸)를 실행합니다. 모든 모델을 설치하거나 하위 집합을 선택할 수 있습니다. 예:
    ./install.sh kokoro piper miso   # Linux/macOS
    .\install.ps1 kokoro,piper,miso # Windows
    
    전체 세트는 약 165GB(리포지토리의 가상 환경 파일 약 39GB + ~/.cache/huggingface에 캐시된 모델 가중치 약 125GB)를 차지합니다.
  3. 벤치마크 실행:
    python bench.py
    
    가상 환경 폴더가 존재하는 모델만 실행되므로 부분 설치도 문제없습니다.
  4. 선택적 도우미:
    • python speak.py <model> – 단일 발화를 재생합니다.
    • python compare.py "your phrase" – 두 모델에 대한 나란히 A/B 클립을 생성합니다.
    • bench.py에 --reference <wav>를 추가하여 자체 음성 샘플로 복제 모델을 평가합니다.

벤치마크 대상은?

리포지토리는 75개 모델(사전 정의 음성 및 제로샷 복제 모델 모두)을 추적합니다. 몇 가지 하이라이트:

  • 고급 GPU에서 가장 빠름: Kokoro(웜 TTFA 67ms, 실시간 104배).
  • CPU에서 가장 빠름: Piper(Ryzen 9에서 웜 TTFA 약 107ms, 실시간 59배).
  • 최고 복제 후보(공개 블라인드 A/B 투표 아레나 기반):
    1. OmniVoice – 음성 일치 최고지만 단어를 누락할 수 있음.
    2. Echo‑TTS – 근소한 차이로 2위, 깨끗한 44.1kHz 출력.
    3. IndexTTS‑2 – 3위.
  • 듣기 측면은 '최고 음질'을 결정하는 권장 방법입니다. 객관적 점수(UTMOS, WER, SIM)는 보조 수단일 뿐이며, 인간의 귀가 최종 기준입니다.

점수 계산 방법

  • UTMOS – 자연스러움의 신경 예측기.
  • WER – ASR 모델의 단어 오류율(seed‑tts‑eval 리포지토리와 동일한 접근 방식).
  • SIM – 복제 모델용 화자 검증 유사도.

모든 지표는 동일한 벤치마크 프롬프트 세트에서 실행됩니다. 코드는 scoring 가상 환경에 있습니다(Linux에서는 설치 명령에 scoring 또는 scoring_sim 추가).


커뮤니티 및 확장성

  • 인간 선호도 아레나 – Hugging Face Spaces 앱(tts‑arena)으로 누구나 클립 쌍에 투표할 수 있습니다. 투표는 실시간 Elo 리더보드에 반영되며 README에서 '최고 복제'로 참조합니다.
  • 모델 추가 – 러너 프로토콜은 docs/architecture.md를 참조하세요. 모델 테이블에 새 항목을 추가하고 동일한 CLI를 따르는 작은 래퍼를 제공하기만 하면 됩니다.
  • 알려진 문제 및 라이선스 – 모델별 자세한 메모는 docs/known‑issues.md 및 docs/expressive‑control.md에 있습니다.

누가 사용할까요?

  • 연구자 – 자신의 머신에서 많은 오픈소스 TTS 시스템을 재현 가능하게 비교하려는 사람.
  • 개발자 – 애플리케이션용 모델을 선택하는 사람(예: 저지연 온디바이스 합성 vs. 고품질 음성 복제).
  • 애호가 – 수십 가지 음성을 듣고 투표하는 것을 즐기는 사람.

결론

tts‑bench는 로컬 텍스트 음성 변환 모델을 위한 진정하고 상당히 포괄적인 벤치마크 스위트입니다. 속도 수치, 객관적 품질 지표, 각 모델을 쉽게 들을 수 있는 방법, 주관적 순위를 위한 커뮤니티 기반 투표 시스템을 제공합니다. 프로젝트는 잘 문서화되어 있으며 여러 하드웨어 백엔드를 지원하고 새 모델로 확장할 수 있습니다.

관련

  • Dispatch
  • Dispatch
  • 프로젝트
  • 프로젝트
  • 프로젝트