Kokoro로 로컬 CPU에서 고품질 TTS 실행하기
1 hour ago
1
로컬 음성 생성은 이제 전용 GPU 없이도 충분히 현실적인 품질을 낼 수 있으며, 예시 환경에서는 GPU를 LLM 추론에 남기고 TTS를 CPU가 처리함
Kokoro 는 82M 파라미터 모델이지만 영어, 중국어, 힌디어 등 여러 언어를 지원하고 약 50개 음성을 제공하며 영어에 가장 최적화되어 있음
가장 쉬운 구성은 Kokoro-FastAPI 컨테이너를 실행하는 방식이고, 음성 모델이 미리 포함되어 이미지 크기가 약 5GB임
OpenAI speech API와 호환되는 인터페이스를 제공해 기존 음성 API 기반 프로그램을 로컬 TTS 로 비교적 쉽게 바꿔 쓸 수 있음
짧은 문단 합성은 Intel Core i7-4770K 4.7초, Apple M2 Pro 4.5초, AMD Ryzen 7 8745HS 1.5초 수준이라 로컬 LLM 응답을 읽지 않고 듣는 사용 방식이 가능함
CPU만으로 실행하는 Kokoro TTS
몇 년 전만 해도 현실적인 로컬 음성 생성은 어려웠지만, 지금은 개인정보를 외부 서비스에 맡기지 않고 높은 품질의 음성을 만들 수 있음
예시는 이전에 다룬 로컬 LLM용 GTX 1080 Ti 머신에서 실행됨
해당 머신의 전용 GPU 는 LLM 추론에 예약됨
음성 합성은 CPU만 사용함
사용 모델은 Kokoro
82M 파라미터 모델임
영어, 중국어, 힌디어 등 여러 언어의 현실적인 음성을 생성함
약 50개 음성을 제공하며, 주로 영어에 최적화되어 있음
가장 간단한 서버 설정은 Kokoro-FastAPI 컨테이너 이미지를 쓰는 방식임
미리 다운로드된 음성 모델이 포함되어 있음
이 때문에 컨테이너 이미지 크기는 약 5GB 임
Docker 또는 Podman 실행 명령:
podman run -p 8880:8880 ghcr.io/remsky/kokoro-fastapi-cpu
실행 후 웹 UI는 localhost:8880/web에서 열 수 있으며, 텍스트를 넣어 오디오를 생성하고 자동 재생할 수 있음
OpenAI 호환 API와 예제 실행
CPU별 합성 시간과 대안
am_eric 음성으로 짧은 테스트 문단을 합성한 결과, 3회 실행 중 최선 기록 기준 생성 시간은 다음과 같음
Intel Core i7-4770K: 4.7초
Apple M2 Pro: 4.5초
AMD Ryzen 7 8745HS: 1.5초
목록의 첫 CPU는 12년 전에 출시된 모델이며, 오래된 CPU에서도 작업을 처리할 수 있음
OpenAI 호환 컨테이너형 TTS 대안으로 Speaches 도 있음
Kokoro-FastAPI와 달리 컨테이너 이미지에 음성 가중치가 포함되지 않으며, API로 명시적으로 다운로드해야 함
Whisper 를 포함해 고품질 STT 기능도 제공함
애플리케이션에 TTS와 STT가 모두 필요하면 한 곳에서 처리하는 선택지가 될 수 있음
로컬 LLM과 결합하면 LLM 답변을 읽는 대신 음성으로 듣는 사용 방식이 가능함
Homepage
Tech blog
Kokoro로 로컬 CPU에서 고품질 TTS 실행하기
🔉 볼륨 줄이기
🔊 볼륨 키우기
🔇 음소거
⏭️ 다음 곡