Pocket TTS
CPU 코어 두 개로 실시간보다 빠르게 도는 1억 파라미터 음성 합성 모델
uvx pocket-ttsKyutai Labs 가 공개한 CPU 전용 경량 음성 합성 모델입니다. 파라미터가 1억 개 규모라 GPU 없이 일반 CPU 에서 돌고, 맥북 에어 M4 기준 실시간의 약 6배 속도로 첫 오디오 조각을 약 200밀리초 만에 내놓습니다. 코어 두 개만 씁니다. 영어와 프랑스어, 독일어, 포르투갈어, 이탈리아어, 스페인어를 지원하고 음성 복제와 스트리밍, 무한 길이 입력을 다룹니다.
판단
이럴 때 씁니다
- GPU 없이 음성 합성을 붙여야 하고 외부 API 호출을 피하고 싶을 때
- 첫 소리가 빨리 나오는 것이 전체 처리 속도보다 중요한 대화형 용도일 때
- 저사양 서버나 개인 장비에서 돌려야 할 때. 코어 두 개면 됩니다
- 짧은 샘플로 목소리를 복제해 반복 사용해야 할 때
- 긴 문서를 통째로 넘겨 음성으로 바꿔야 할 때
이럴 땐 쓰지 마세요
- 지원하는 여섯 개 언어 밖의 언어가 필요할 때
- 최고 음질이 우선이고 속도는 상관없을 때. 더 큰 모델 쪽이 맞습니다
- 복제할 목소리의 원본 샘플 품질을 통제할 수 없을 때. 샘플의 음질이 그대로 재현됩니다
- PyTorch 2.5 이상을 설치할 수 없는 환경일 때
차별점
- 1억 파라미터 규모로 줄여 GPU 없이 CPU 코어 두 개만으로 돕니다.
- 첫 오디오 조각까지 약 200밀리초라 대화형 용도에서 체감 지연이 짧습니다.
- 스트리밍을 지원하고 입력 길이에 상한이 없습니다.
- 목소리 임베딩을 파일로 뽑아 둘 수 있어 반복 사용 시 준비 시간이 사라집니다.
- 브라우저 클라이언트 쪽 구현이 존재해 서버 없이 돌리는 경로도 있습니다.
워크플로
- 01설치 없이 바로 써 보려면 uvx 로 실행합니다. 직접 설치하려면 pip 를 씁니다.
- 02generate 로 파일을 만듭니다. 목소리와 문장, 언어를 옵션으로 지정합니다.
- 03여러 목소리와 문장을 빠르게 비교하려면 serve 로 로컬 서버를 띄웁니다. 모델이 메모리에 남아 명령줄보다 빠릅니다.
- 04목소리를 복제하려면 wav 파일을 목소리 인자로 넘깁니다. 넘기기 전에 샘플을 다듬는 편이 결과가 좋습니다.
- 05같은 목소리를 반복해서 쓸 것이라면 export-voice 로 임베딩을 미리 뽑아 둡니다. 오디오 파일을 매번 처리하는 것보다 훨씬 빠르게 불러옵니다.
주요 명령
| 명령 | 설명 |
|---|---|
uvx pocket-tts generate | 설치 없이 바로 기본 문장과 기본 목소리로 wav 파일을 만듭니다. |
pocket-tts generate --voice alba --text "..." --language english | 목소리와 문장과 언어를 지정해 합성합니다. |
pocket-tts serve | 로컬 서버를 띄웁니다. 모델이 메모리에 유지돼 반복 시도가 빠릅니다. |
pocket-tts export-voice | 오디오 파일을 safetensors 임베딩으로 바꿔 둡니다. 이후 불러오기가 매우 빠릅니다. |
함정
설치 전에 확인하세요
- 목소리마다 라이선스가 다릅니다. 배포용으로 쓰기 전에 해당 목소리의 라이선스를 개별 확인해야 합니다.
- 복제할 샘플의 음질이 결과에 그대로 재현됩니다. 저장소가 넘기기 전에 샘플을 다듬으라고 권합니다.
- 영어 외 언어에는 24층 변형이 따로 있습니다. 품질은 높지만 느리고 언어 옵션에 변형 이름을 직접 적어야 합니다.
- 사용자 정의 가중치를 쓰는 설정 옵션은 로컬 YAML 경로만 받습니다.
- PyTorch 2.5 이상이 필요합니다. GPU 판이 아니어도 됩니다.
검토 메모
공식 문서·릴리스·공개 자료를 바탕으로 정리한 편집 메모입니다.
저는 이 모델의 값어치가 음질 순위가 아니라 배치 가능한 위치에 있다고 봅니다. 음성 합성을 제품에 붙이려 할 때 대개 GPU 인스턴스를 새로 잡거나 외부 API 비용을 감수하게 되는데, 코어 두 개로 실시간의 여섯 배가 나온다면 이미 돌고 있는 서버에 그냥 얹을 수 있습니다. 선택지의 성격 자체가 달라지는 수치입니다.
대화형 용도라면 첫 조각까지 약 200밀리초라는 값을 특히 눈여겨보시기 바랍니다. 전체 생성 시간보다 첫 소리가 언제 나오는지가 체감을 좌우하는 경우가 많은데, 스트리밍과 함께 설계돼 있어 긴 문장에서도 기다림이 앞쪽에 몰리지 않습니다. 반대로 배치로 대량 변환만 한다면 이 장점은 값을 못 합니다.
도입 전에 반드시 정리하고 갈 것은 목소리 라이선스입니다. 카탈로그의 목소리마다 라이선스가 다르고 저장소가 개별 확인을 안내합니다. 복제를 쓸 계획이라면 샘플 음질이 결과에 그대로 재현된다는 점도 미리 알고 계셔야 합니다. 같은 목소리를 반복해서 쓸 것이라면 임베딩을 미리 뽑아 두는 편이 매번 오디오를 처리하는 것보다 훨씬 낫습니다.
시험해 보는 순서도 권해 두겠습니다. 명령줄로 한 번씩 부르면 매번 모델을 다시 올리게 되므로 여러 목소리와 문장을 비교할 때는 로컬 서버를 띄우는 편이 훨씬 빠릅니다. 모델이 메모리에 남아 있기 때문입니다. 설치 자체가 부담이라면 브라우저에서 바로 시험할 수 있는 경로도 있고 클라이언트 쪽 구현도 존재하니, 서버를 두지 않는 구성까지 검토 대상에 넣어 보실 만합니다.
비교
대부분의 고품질 음성 합성이 GPU 나 외부 API 를 전제하는 것과 달리, Pocket TTS 는 모델을 줄여 CPU 로 내려온 쪽입니다. 최고 음질을 겨루는 대신 지연과 자원 요구를 낮춰 로컬에 붙이기 쉽게 만든 선택이고, 그래서 개인 장비나 저사양 서버에서 값이 큽니다.
최근 변경
v3.0.0에서 학습 코드가 공개되고 영어 모델의 기본 temperature가 0.3으로 바뀌었으며 24층(24l) 버전의 영어 모델이 추가됐습니다. 배포된 3.0.0 wheel이 빌드 오류로 동작하지 않아 3.0.1에서 곧바로 교체됐고, 이어진 3.0.2에서는 체코어 모델이 추가되고 --voice 기본값이 음성 복제가 가능한 alba로 바뀌었습니다.