12P by GN⁺ 3일전 | ★ favorite | 댓글 3개
  • 1억 개의 파라미터로 구성된 Pocket TTS는 음성 복제 기능을 갖춘 경량 텍스트-음성 변환 모델로, 일반 노트북 CPU에서도 실시간 실행 가능
  • 기존의 대형 LLM 기반 TTS(10억 개 이상 파라미터) 와 소형 Kokoro TTS(8,200만 파라미터) 사이의 성능 격차를 줄이며, 고품질과 효율성을 동시에 달성
  • 5초 분량의 음성 샘플만으로 화자의 음색, 감정, 억양, 음향 조건 등을 정확히 복제
  • Continuous Audio Language Model 기반 구조를 사용해 이산 토큰 대신 연속 잠재 벡터를 직접 예측, 품질 저하 없이 모델 크기를 축소
  • MIT 라이선스 오픈소스로 공개되어, CPU 환경에서도 고품질 음성 합성을 실현하는 경량 TTS 기술의 새로운 기준 제시

Pocket TTS 개요

  • Pocket TTS는 1억 개 파라미터의 텍스트-음성 변환 모델로, 음성 복제(voice cloning) 기능을 지원
    • 노트북 CPU에서도 실시간으로 실행 가능
    • 명령어 uvx pocket-tts serve 또는 uvx pocket-tts generate로 로컬 실행 가능
  • Kyutai가 개발했으며, MIT 라이선스로 오픈소스 공개
    • 학습 데이터는 공개 영어 음성 데이터셋만 사용
    • 추가적인 비공개 데이터로의 확장 가능성 언급

기존 TTS 모델과의 비교

  • 현재 TTS 기술은 두 가지로 나뉨
    • 대형 LLM 기반 모델: 예) Kyutai TTS 1.6B (약 16억 파라미터)
      • 다양한 음성, 감정, 음향 조건을 모델링 가능하지만 GPU 필요
    • 소형 특화 모델: 예) Kokoro TTS (8,200만 파라미터)
      • 고정된 음성 세트수작업 파이프라인을 사용해 효율적이지만 유연성 제한
  • Pocket TTS는 이 두 접근법의 중간 지점을 차지하며, CPU에서도 고품질 음성 합성 가능

성능 평가

  • Librispeech test-clean 세트로 평가 수행
    • 오디오 입력은 Adobe Enhance Speech로 정제해 24kHz 품질 확보
  • 비교 대상: F5-TTS, DSM, Chatterbox Turbo, Kokoro TTS
  • 평가 지표:
    • Word Error Rate (WER)
    • 오디오 품질(ELO)
    • 화자 유사도(ELO)
  • 결과 요약:
    • Pocket TTS는 WER 1.84로 가장 낮은 오류율
    • 오디오 품질은 F5-TTS 및 DSM보다 우수
    • 화자 유사도는 기준 음성과 동등 수준
    • CPU에서 실시간보다 빠르게 실행 가능한 유일한 모델
모델 파라미터 수 WER ↓ 오디오 품질(ELO) ↑ 화자 유사도(ELO) ↑ CPU 실시간 실행
F5-TTS 336M 2.21 1949 ± 27 1946 ± 26
Kyutai TTS 1.6B 750M 1.84 1959 ± 25 2037 ± 21
Chatterbox Turbo 350M 3.24 2055 ± 23 2012 ± 22
Kokoro 82M 1.93 음성 복제 없음 음성 복제 없음
Pocket TTS 100M 1.84 2016 ± 25 1898 ± 26
  • Intel Core Ultra 7 165HApple M3 CPU에서 테스트 시, Pocket TTS와 Kokoro만 실시간 합성 가능

아키텍처

  • Pocket TTS는 Continuous Audio Language Model 연구를 기반으로 설계
    • 기존 방식은 이산 오디오 토큰을 예측했으나, Pocket TTS는 연속 잠재 벡터(latent) 를 직접 예측
    • 이를 통해 RQ-transformer 병목 제거모델 경량화 달성

Neural Audio Codec

  • Mimi 코덱 기반으로 설계
    • Mimi는 이산 토큰으로 압축하지만, Pocket TTS는 연속 잠재 표현 사용
    • 정규분포로 정규화된 VAE 학습 적용
    • WavLM코사인 유사도 손실로 내재 표현에 증류(distillation)
    • RVQ 단계를 제거하고 전체 잠재 표현에 증류 손실 적용

Generative Model

  • Masked Autoregressive(MAR) 프레임워크 기반
    • Causal Transformer 백본MLP 샘플러로 구성
    • Lagrangian Self-Distillation(LSD) 손실을 사용해 1-step 샘플링 구현
    • 추론 시, 예측된 잠재 벡터를 자동회귀적으로 피드백

음성 및 텍스트 조건화

  • 모델 입력은 음성 프롬프트(몇 초)텍스트를 결합
    • 음성은 코덱 인코더로, 텍스트는 SentencePiece 토크나이저로 임베딩

모델 크기 구성

  • 생성 모델(Transformer + MLP) : 9천만 파라미터
  • 코덱 디코더: 1천만 파라미터
  • 코덱 인코더: 1,800만 파라미터 (음성 샘플 인코딩 시 1회만 사용)

학습 데이터

  • 전부 공개 영어 음성 데이터셋으로 구성, 총 88,000시간
    • AMI, EARNINGS22, GIGASpeech, SPGISpeech, TED-LIUM, VoxPopuli, LibriHeavy, Emilia

주요 기술 기여

Head Batch Multiplier

  • Transformer의 연산 병목을 완화하기 위해 z 벡터를 여러 번 재사용
    • 각 입력 시퀀스에 대해 z를 한 번 계산 후 8회 손실 계산에 재활용
    • 효율성 향상학습 안정화 효과

Gaussian Temperature Sampling

  • 연속 공간에서도 샘플링 온도 조절을 적용
    • 가우시안 노이즈 분산 축소로 품질 향상
    • 온도 0.7에서 좋은 결과 확인

Latent Classifier-Free Guidance (Latent CFG)

  • 기존 CFG를 잠재 변수(z) 수준에서 적용
    • 조건부/비조건부 출력을 선형 결합해 품질 향상
    • α=1.5 사용
    • SoundReactor 연구에서도 유사 개념 등장

Distillation

  • CFG 모델을 교사 모델로 사용경량 학생 모델로 증류
    • 교사 모델의 MLP 헤드를 고정하고, 학생 모델이 L2 손실로 z를 학습
    • 24층 교사 모델 → 6층 학생 모델로 축소 가능

결론

  • Pocket TTS는 CPU에서도 실시간 고품질 음성 합성이 가능한 경량 TTS 모델
  • 연속 잠재 공간 기반 구조, 효율적 학습 기법, 음성 복제 기능을 결합
  • 오픈소스 MIT 라이선스로 공개되어, 개발자와 연구자에게 재현성과 확장성을 제공

최근 Supertonic에서 한글까지 되는 모델 내놨는데 한번 찾아보세용.

딸깍용 라이브러리도 만들어봤어요!

https://www.npmjs.com/package/easy-supertonic-tts

한국어 지원되는 오픈 TTS 모델은 잘 보이지가 않네요.
예전에 공개된 Kokoro-82M 이 한국어를 지원하다고는 하던데 품질이 좋은거 같지는 않다는 얘기를 들었고,
잠깐 찾아보니 GPT-Sovits 로 만들어 쓰거나, Edge-TTS 같은거로 하면 나름 괜찮게 나온다고는 하고요.

요즘 바이브코딩하면서 Whisper 랑 붙이면 뭔가 재미난게 나올거 같기는 한데 아이디어가 없네요 ㅎ

Hacker News 의견들
  • 내 글에 이렇게 많은 관심이 생겨서 정말 기쁨임
    나는 파리에서 Kyutai 연구를 기반으로 한 엔터프라이즈급 음성 솔루션을 개발하는 팀의 일원임
    이 분야에서 무언가를 만들고 있는 사람이라면, 다가올 모델과 기능을 공유하고 싶음
    내 프로필에 있는 이메일로 연락 주면 좋겠음

    • 대단한 작업임. 일상적인 기기에서도 로컬로 실행 가능한 수준까지 한계를 밀어붙인 성과라고 생각함
  • 긴 케이스 스터디를 읽다가 브라우저 확장이 필요하다는 걸 깨닫고, 직접 브라우저 인터페이스를 만들어봄
    결과물은 Pocket Reader

  • 흥미로워서 바로 MCP 서버로 만들어 Claude가 작업 완료를 알려주도록 설정했음
    speak_when_done

    • macOS에는 이미 꽤 자연스러운 TTS 기능이 내장되어 있음
      나도 비슷한 도구를 만들어 say 명령어를 백그라운드 프로세스로 돌렸는데, 좋은 음성을 일관되게 설정하기가 어려웠음
      그 자연스러운 음성이 어딘가 숨겨져 있는 듯함
    • 나도 최근에 piper-tts로 비슷한 걸 만들어봄
      speak-mcp
    • 나도 같은 이유로 Pushover를 설정해서 휴대폰으로 알림을 받게 했음
      이제 당신의 서버도 시도해볼 예정임
  • 이번엔 코드 품질이 정말 좋음
    보통 새로운 모델들의 코드베이스는 불필요한 의존성 덤프로 가득한데, 이번엔 소프트웨어 엔지니어링적으로도 훌륭함

  • 공유해줘서 고마움! 나는 Kokoro 팬이라 로컬 음성 비서를 직접 구축했음
    ova 프로젝트
    Pocket TTS도 꼭 써볼 예정임

    • TTS 성능은 Kokoro가 훨씬 낫다고 느낌
      다만 Pocket TTS는 폐쇄적이라 음성 복제 기능은 확인 불가함
    • 저장소 멋짐! 나도 시도해볼 예정임
      혹시 mlx 기반인지 아니면 Hugging Face transformers 기반인지 궁금함
  • 이 프로젝트를 작은 정적 바이너리로 배포할 수 있을지 궁금함
    현재 의존성이 꽤 큼

    • 관련 이슈는 여기에서 추적 가능함
  • 정말 마음에 듦
    다만 MIT 라이선스라고 되어 있는데, README에 별도의 금지된 사용(Prohibited Use) 섹션이 있어서 비자유 소프트웨어가 되는 건 아닌지 헷갈림

    • 내 이해로는 코드는 MIT, 하지만 모델은 별도 라이선스
      이미지나 사운드처럼 ML 모델도 소프트웨어로 간주되지 않을 수 있음
      Hugging Face 모델 카드에도 같은 금지 조항이 있음
    • MIT 라이선스에는 “제한 없이 사용할 수 있다”는 문구가 있음
      따라서 README의 금지 항목은 법적으로 상충될 가능성이 있음
    • 금지 조항은 “범죄에 사용하지 말라” 수준이라 법적 효력은 미미할 듯함
    • “사용해도 된다, 하지만 이런 용도로는 안 된다”면 실제로 라이선스를 위반한 건지 애매함
    • 금지 조항은 불필요한 형식적 장식처럼 느껴짐
  • M1 Mac에서 uvx pocket-tts serve를 실행해봤음
    테스트로 『두 도시 이야기』의 첫 문단을 읽게 했는데, Javert 음성이 문장을 중간중간 건너뛰는 문제가 있었음
    예를 들어 “it was the age of foolishness” 같은 구절이 생략됨
    신뢰가 떨어지는 부분임
    관련 이슈는 여기에 올림

    • 내 테스트에서도 “we had everything before us” 부분이 생략됨. 확실히 좋지 않은 신호임
    • 나도 같은 현상을 봄. 문장을 건너뛰거나 단어 순서를 바꾸는 등 출력 왜곡이 있었음 (Win10 RTX 5070 Ti)
    • Eponine 음성으로도 “we had nothing before us”를 생략하고 마지막 문장을 말하지 않음. 내부적으로 뭔가 잘못된 듯함
  • 나는 그동안 음성 모델을 많이 써보지 않았는데, Pocket TTS를 통해 unmute.sh를 알게 됨
    오픈소스이고 같은 회사에서 만든 것 같음
    이 모델들은 홈랩 환경에서도 저비용으로 충분히 활용 가능해 보임
    오픈소스 모델들이 상향 평준화되어 있어서 거의 모든 용도에 맞는 게 있음
    진짜 진입장벽이 남아 있는 분야는 코딩 모델뿐인 듯함
    Deepseek 4가 Claude Sonnet을 이길 수 있을지도 흥미로움

  • Codex 플러그인에 통합해서 각 턴이 끝날 때 요약을 읽어주게 했는데, 놀라울 정도로 잘 작동함
    내 MacBook에서 Samantha보다 훨씬 부드럽게 실행됨
    agentify-sh/speak