Navoiy TTS를 모두에게 공개합니다

Navoiy TTS 오픈 소스 우즈베크어 음성 합성 모델

오늘 Navoiy TTS를 오픈 소스로 공개하기로 했습니다. CosyVoice2-0.5B를 바탕으로 GPU에 올리고 충분한 우즈베크어 오디오 재료로 요리했습니다. 그 결과 우즈베크어를 잘 구사하는 텍스트 음성 변환 모델이 탄생했습니다.

이 모델은 우즈베크어 텍스트를 중립적이거나 표현이 풍부한 음성으로 변환합니다. 숫자, 날짜, 시간, 아포스트로피, 키릴 문자로 쓴 우즈베크어를 합성에 맞게 준비하는 정규화 도구도 포함합니다.

완벽한 것은 없으며 이 모델에도 한계가 있습니다. 결국 재료, 즉 데이터가 중요합니다. 좋은 재료가 많을수록 결과도 좋아집니다.

왜 모델을 모두에게 공개했나요?

일상 언어는 단순한 단어만으로 구성되지 않습니다. 이를 고려해 모델을 다음과 같이 준비했습니다.

  • 숫자, 날짜, 시간을 정확히 읽기
  • 이름과 지명을 올바르게 발음하기
  • 라틴 문자와 키릴 문자 이해하기
  • 자연스럽게 쉬어 가며 말하기
  • 다양한 말하기 스타일 지원하기
  • 문장 안의 러시아어와 영어 단어 발음하기

여러분이 마주할 수 있는 다른 상황도 고려하고 그에 따른 어려운 과제를 해결하려고 노력했습니다.

가장 간단한 감사 표현은 친구들에게 이 프로젝트를 공유하는 것입니다. 여러분의 프로젝트에 도움이 된다면 기쁘겠습니다.

저희 모델을 사용해 주셔서 기쁩니다. 음성 인식 및 텍스트 음성 변환 모델을 이용해 주셔서 감사합니다.

어떻게 사용하나요?

다음 단계에 따라 모델을 설치하고 설정한 뒤 실행하세요. 체크포인트는 단독으로 작동하지 않습니다. 원본 CosyVoice 코드와 CosyVoice2-0.5B 기본 모델도 필요합니다.

1. 먼저 CosyVoice 설치

bash

git clone --recursive https://github.com/FunAudioLLM/CosyVoice.git
cd CosyVoice
git checkout 074ca6dc9e80a2f424f1f74b48bdd7d3fea531cc
git submodule update --init --recursive
pip install -r requirements.txt
cd ..

2. Navoiy TTS 다운로드

bash

git clone https://huggingface.co/aisha-org/navoiy-tts
pip install -r navoiy-tts/requirements.txt

모델 카드에 명시된 리비전의 CosyVoice2-0.5B 기본 모델을 다운로드하세요.

3. 음성 생성

bash

python navoiy-tts/inference.py \
  --cosyvoice-dir CosyVoice \
  --base-model-dir CosyVoice/pretrained_models/CosyVoice2-0.5B \
  --checkpoint navoiy-tts/emotion_600h_joint.pt \
  --reference reference.wav \
  --text "Bugun siz bilan muhim bir xabarni baham ko'rmoqchiman." \
  --emotion warm \
  --output output.wav

스크립트는 CUDA 연산 환경이 필요하며 24 kHz 오디오를 생성합니다. --list-emotions로 모든 감정을 확인할 수 있습니다.

감정

모델은 calm, happy, sad, angry, nervous, surprised, whisper, warm, tired, sarcastic 감정을 지원합니다.

이 설정이 특정 결과를 보장하지는 않습니다. 최종 음성은 텍스트, 참조 오디오, 체크포인트, 무작위 시드에 따라 달라집니다. 실제 서비스에 도입하기 전에 자체 텍스트로 테스트하는 것을 권장합니다.

정규화

숫자와 날짜는 음성 합성 모델이 발음하기 어려울 수 있습니다. Navoiy TTS는 정규화 모듈도 제공합니다.

python

from uztts.normalize import normalize

print(normalize('Bugun 16.07.2026, soat 14:30 da uchrashamiz.'))

키릴 문자를 라틴 문자로 변환하고 아포스트로피를 통일하며 일반적인 숫자, 날짜, 시간, 서수 등을 정규화합니다.

한계

모델은 이름, 외래어, 약어, 특이한 숫자를 잘못 발음할 수 있습니다. 단어를 반복하거나 생략하거나 바꾸기도 합니다. 방언과 여러 언어가 섞인 텍스트는 아직 충분히 평가하지 않았습니다.

목소리를 복제하기 전에 소유자의 명시적 동의를 받으세요. 사칭, 기만, 사기, 괴롭힘 또는 음성 인증 우회에 모델을 사용하지 마세요. 듣는 사람이 실제 사람의 목소리로 오해할 수 있다면 합성 음성임을 밝혀야 합니다.

마무리

Navoiy TTS가 모든 문장에서 완벽한 결과를 약속하지는 않습니다. 개발자와 연구자가 테스트하고 개선하며 새로운 제품을 만드는 데 사용할 수 있는 열린 기반입니다.

Hugging Face에서 모델을 살펴보고 데모를 들은 뒤 경험을 공유해 주세요.

참고 자료