Kokoro를 이용한 로컬 CPU 친화적 TTS
Kokoro를 이용한 로컬 CPU 친화적 TTS
Kokoro는 CPU에서 고품질 로컬 음성 합성을 가능하게 합니다
Kokoro는 단 8,200만 개의 파라미터를 가진 컴팩트한 텍스트 음성 변환(TTS) 모델로, 영어, 중국어, 힌디어로 실감 나는 음성을 생성합니다. 주요 가치 제안은 고충실도 오디오를 CPU에서 로컬로 제공할 수 있다는 점이며, 이를 통해 값비싼 NVIDIA GPU의 필요성을 제거하고 모든 처리를 로컬 머신에서 수행하여 데이터 프라이버시를 보장합니다.
CPU 아키텍처별 성능 벤치마크
Kokoro는 구형 시스템을 포함한 광범위한 하드웨어에서 높은 효율성을 보여줍니다. 짧은 테스트 문단(약 30단어)에 대한 합성 시간은 CPU에 따라 다릅니다:
- AMD Ryzen 7 8745HS: 1.5초
- Apple M2 Pro: 4.5초
- Intel Core i7-4770K: 4.7초
12년 된 CPU(i7-4770K)가 5초 미만으로 실감 나는 음성을 생성할 수 있다는 사실은 하드웨어 리소스가 제한적인 사용자들에게 이 모델의 접근성을 강조합니다.
배포 및 API 통합
Kokoro-FastAPI를 통한 빠른 설정
Kokoro를 배포하는 가장 간단한 방법은 음성 모델을 약 5GB 이미지에 번들링한 Kokoro-FastAPI 컨테이너 이미지를 사용하는 것입니다. Docker 또는 Podman을 사용하여 다음 명령어로 실행할 수 있습니다:
podman run -p 8880:8880 ghcr.io/remsky/kokoro-fastapi-cpu
실행되면 컨테이너는 즉각적인 테스트를 위해 localhost:8880/web에서 웹 UI를 제공합니다.
OpenAI API 호환성
Kokoro-FastAPI는 OpenAI 음성 API와 호환되는 TTS 인터페이스를 제공하므로, 개발자는 기존 OpenAI 기반 TTS 구현체를 로컬 Kokoro 인스턴스로 교체할 수 있습니다. 통합은 TTS_API_BASE_URL을 로컬 서버(예: http://127.0.0.1:8880/v1)로 설정하고 TTS_VOICE 환경 변수를 통해 음성을 지정함으로써 달성할 수 있습니다. 이 모델은 주로 영어에 최적화된 약 50개의 고유한 음성을 제공합니다.
실용적인 응용 분야 및 커뮤니티 인사이트
커뮤니티 멤버들은 Kokoro를 다양한 프로덕션 및 취미용 워크플로우에 통합하여, 작은 파라미터 크기의 장단점을 모두 드러냈습니다:
- 접근성 및 발음: 사용자들은 Kokoro를 접근성 제품에 성공적으로 사용해 왔으며, 수동 IPA (International Phonetic Alphabet) 발음 가이드를 지원하여 동음이의어 오류를 해결할 수 있다는 점에 주목했습니다.
- Edge 배포: 모델은 배터리 효율과 발열을 개선하기 위해 iPhone의 Apple Neural Engine (ANE)으로 포팅되었으며, 지속적인 스트리밍을 위해 Jetson Orin 키트에도 포팅되었습니다.
- 콘텐츠 소비: 사용자들은 웹 콘텐츠를 RSS 피드로 변환하여 팟캐스트 앱을 통해 소비할 수 있는 맞춤형 기사 리더를 구축했습니다. n*Web 통합: Chrome 확장 프로그램을 개발하여 모든 웹페이지에서 텍스트 하이라이트와 음성 합성을 동시에 제공합니다.
알려진 제한 사항
일부 사용자들은 Kokoro가 매우 짧은 입력(한두 단어)에서 어려움을 겪으며, 가끔 환상음(예: "ah-six-ah" 대신 "six"라고 말함)을 추가하는 경우가 있다고 보고합니다. 문서화된 해결 방법은 대상 단어를 더 긴 문장에 포함시키고 Kokoro API가 제공하는 타임스탬프를 사용하여 필요한 특정 단어의 오디오를 크롭하는 것입니다.
TTS와 STT를 결합한 대안
TTS와 STT가 모두 필요한 사용자에게는 Speaches가 실행 가능한 대안입니다. Speaches는 이미지를 통해 음성 가중치를 번들링하는 대신 API를 통해 음성 가중치를 수동으로 다운로드해야 하지만, OpenAI의 Whisper 시스템을 포함하고 있어 고품질의 전사(transcription)를 제공하며, 양방향 음성 상호작용을 위한 통합 솔루션을 제공합니다.