저에게는 긴 여정이었습니다. 거의 1년 동안 단독 프로젝트로 진행하면서 처음부터 TTS(Text-to-Speech) 모델을 구축하는 방법을 배웠습니다. 저는 빠르고, 휴대폰에서 실행할 만큼 작으며, 다국어 지원이 가능하고 (제가 가장 중요하게 생각했던 부분은) 다른 소형 TTS 모델들과는 조금 다른 것을 할 수 있는 무언가를 원했습니다. 그래서 노래를 부릅니다. 데모 비디오의 음성 및 노래는 모두 이 모델에서 나온 것입니다. 반주/효과음(instrumental/fx)은 나중에 추가된 것이 아닙니다. 이것이 무엇인지 말씀드리자면 다음과 같습니다:
- 매개변수 약 1억 3,100만 개 (여기에 3천만 개의 음소화기(phonemizer) 포함), 14가지 목소리, 영어(미국/영국), 스페인어, 프랑스어, 독일어, 이탈리아어 및 베트남어 지원. 모든 목소리가 지원되는 모든 언어를 말할 수 있습니다.
- 줄 단위의 강도(Intensity), 속도(pace) 및 음높이(pitch) 제어, 인라인 태그를 사용한 다중 목소리 대화, 스트리밍 기능
- JSON 악보에서 노래함 (각 단어에 음표와 비트 포함), 팝 또는 발라드. 현재는 영어만 노래 형식으로 지원합니다.
- M5 Max에서는 약 30ms로 초기 오디오 로딩 시간이 걸리고, iPhone 17 Pro Max에서는 70ms, Galaxy Z Fold 8(CPU 전용)에서는 120ms가 소요됩니다. 데스크톱 CPU에서는 실시간의 30배 이상 속도를 보여줍니다.
- 영어 WER(Word Error Rate) 0.85%, 오픈 TTS 리더보드 평가에서 UTMOS 4.35 (제출 대기)
- Apache 2.0 라이선스
GitHub 및 Hugging Face 저장소에는 원래 PyTorch 가중치와 함께 LiteRT, Core ML, Core AI, ONNX Runtime 및 WebGPU용 포트가 제공되며, 텍스트 정규화 및 음소를 처리하는 C API를 갖춘 C++ 런타임도 제공되어 숫자, 날짜 또는 특이한 단어들이 정확하게 출력됩니다. Python, iOS 및 Android용 샘플 코드가 있으며 (두 앱 모두 노래(Sing) 탭 포함), 실제 장치에서 측정한 벤치마크 결과도 있습니다. 두 앱의 샘플은 악보와 음성 합성 생성에 대한 완전한 제어를 허용합니다. 파이썬 예제로는 둘을 결합하여 일제히 노래하는 것과 같은 작업을 수행하는 방법이 제공됩니다.
사전 고지된 한계점:
- 자체 14가지 목소리로만 말할 수 있습니다 (보이스 클로닝 불가).
- 여전히 특이한 단어에서 오류가 발생합니다.
- 노래를 부를 때 일부 목소리들이 빠르고 넓은 음높이 점프 구간에서 거칠게 들립니다. 이것은 노래하는 버전 중 실제로 사용 가능한 첫 번째 버전이며, 시간이 지남에 따라 개선할 계획입니다.
v1은 몇 달 전에 출시되었지만, 저는 지금까지 이 버전에서 이루어진 개선 사항들에 만족하지 못했습니다.
GitHub: https://github.com/lowkeytea/scyllasband
Hugging Face: https://huggingface.co/spybyscript/scyllasband
브라우저에서 사용해 보기: https://lowkeytea.dev/scyllasband/demo/
훈련(training) 방법, 노래(singing), 또는 기기에서 실행하는 방법에 대한 질문에 답변드리게 되어 기쁩니다.
제출자 /u/clockentyne [link] [comments]