Hugging Face

canberkkkkkk/ema-lightning

EMA Lightning: 860만 파라미터로 구현한 튀르키예어 음성 합성 모델

EMA Lightning은 튀르키예어 텍스트를 음성으로 바꾸는 오픈소스 모델입니다. 제작자는 860만 파라미터로 Freya-TR-Eval에서 WER 0.92%를 기록했으며, RTX 4090에서 실시간보다 440배 빠르게 생성했다고 보고합니다. 스트리밍과 여러 요청의 GPU 동시 처리도 지원합니다.

AI 요약

EMA Lightning은 튀르키예어 전용 텍스트 음성 변환(TTS) 모델입니다. 음향 모델 560만 파라미터와 보코더 300만 파라미터를 합쳐 860만 파라미터이며, 모델 크기는 약 34MB입니다. 코드와 가중치는 Apache 2.0 라이선스로 공개했고 상업적 사용도 허용합니다. GPU와 CPU에서 오프라인으로 실행하며, 외부 API나 API 키를 요구하지 않습니다.

추론과 동시 요청 처리

라이브러리는 전체 음성을 한 번에 반환하는 say()와 생성되는 음성을 조각별로 전달하는 stream()을 제공합니다. 스트리밍은 첫 1초 분량의 오디오를 먼저 내보내고 나머지를 이어서 생성합니다. 제작자는 RTX 4090에서 첫 오디오까지 평균 3.86ms가 걸린다고 보고합니다. say()에 여러 문장을 넣으면 배치로 처리하며, stream()은 여러 스레드에서 각각 호출할 수 있습니다.

두 방식 모두 내부 스케줄러 Playhead를 거칩니다. 스케줄러는 모델 입력을 기다리는 문장과 디코더 처리를 기다리는 오디오 창을 선착순 큐에 모읍니다. 매 차례 각 큐에서 최대 한 배치를 GPU에서 처리하고, 생성한 오디오 창을 요청한 호출자에게 돌려줍니다. 호출을 중단한 사용자의 작업은 큐에서 빠지며, 한 배치에서 오류가 나도 영향을 받은 호출만 실패합니다. RTX PRO 6000에서 64개 스트림을 동시에 시작했을 때 총 887초 분량의 음성을 0.74초 만에 생성했고, 각 결과는 단독 생성 결과와 일치했다고 설명합니다.

모델 구성과 속도 최적화

텍스트는 normalizer-tr로 발화 형태에 맞게 정규화한 뒤 소문자로 바꿉니다. 각 글자를 임베딩하고 ConvNeXt 블록 4개와 RoPE를 적용한 자기 주의 블록 2개로 인코딩합니다. 지속 시간 예측기가 글자별 프레임 수를 추정하고, 단어와 글자 위치를 기준으로 출력 프레임을 정렬합니다. 외부 정렬 데이터를 쓰지 않고 지속 시간을 학습합니다.

윈도우형 Gaussian 정렬기는 각 프레임이 해당 단어와 인접 단어의 글자만 보도록 제한합니다. 이어 6개 블록으로 구성한 DiT가 64차원 잠재 표현을 생성합니다. 블록마다 별도 투영층을 두는 대신 시간 단계 변조 투영층을 공유하고 블록별 오프셋을 더해, 변조 파라미터 수를 181만 개에서 31만 개로 줄였습니다. 원래 16단계로 샘플링하던 flow-matching 모델을 DMD2로 증류해 4단계 생성기로 만들었습니다. HiFi-GAN 방식 디코더는 초당 25프레임의 잠재 표현을 48kHz 오디오로 변환합니다. 스트리밍에서는 양옆에 문맥 프레임을 둔 4초 단위 창으로 디코딩합니다.

.lightning()을 실행하면 GPU에 맞는 배치 크기를 측정하고 모델을 컴파일하며 CUDA 그래프를 기록합니다. 시작할 때 컴파일 경로 결과를 일반 PyTorch 경로와 비교해 검증합니다. 제작자 측정으로 RTX 4090에서 실시간 대비 440배, 배치 64에서는 1,316배 빠르며, 일반 PyTorch 경로는 각각 87배와 952배입니다. CPU에서는 실시간보다 약 6배 느립니다. 시간당 0.74달러인 GPU 임대 비용을 기준으로 문자 100만 개 생성에 약 0.0085달러가 든다고 계산했습니다.

평가와 한계

제작자는 Freya-TR-Eval의 495개 문장으로 성능을 비교했습니다. 컴파일 및 일반 PyTorch 경로 모두 WER 0.92%, CER 0.18%를 기록했습니다. 비교표에서 Trendyol-TTS는 WER 0.98%, Gemini 3.8 Flash-Lite는 1.31%, ElevenLabs v4는 1.43%입니다. EMA Lightning의 WER은 Whisper large-v3로 측정했고, 제작자는 인식기 오류도 점수에 포함될 수 있다고 밝힙니다. 자체 실행 결과는 3개 시드 또는 생성 결과를 사용했으며, 일부 비교 수치는 모델 카드에 공개된 값을 인용했습니다.

음성 자연스러움 점수 UTMOS는 약 3.30으로, 모델 카드에 따르면 ElevenLabs v4와 비슷하고 Gemini 3.8 및 Trendyol-TTS보다 낮습니다. 단일 화자만 제공하며 음성 복제와 감정 제어는 지원하지 않습니다. 튀르키예어만 지원하고 외국어 단어도 튀르키예어 발음 규칙으로 읽습니다. 숫자와 날짜를 잘못 읽을 수 있으므로 금융, 의료, 법률, 긴급 안내에서는 배포 전에 사람이 대본과 음성을 확인해야 합니다. 음성이 AI 생성물임을 청취자에게 알리고, 사칭이나 사기에 사용하지 말라는 주의사항도 명시합니다.

원문: Hugging Face / 번역·요약: Trawling