언어모델 LLM/모델 및 프레임워크

oneMinTTS: 오픈소스 음성 합성 프로젝트 소개

General AI 2024. 7. 9. 21:36
728x90
반응형

oneMinTTS: 오픈소스 음성 합성 프로젝트 소개

안녕하세요, 오늘은 흥미진진한 오픈소스 프로젝트인 oneMinTTS에 대해 소개해드리려고 합니다. oneMinTTS는 고성능 음성 합성과 간소화된 모델 관리를 위해 설계된 프로젝트로, 최근 HuggingFace 🤗 MMS-TTS 모델 지원까지 추가되어 더욱 강력해졌습니다.

oneMinTTS: 오픈소스 음성 합성 프로젝트 소개

oneMinTTS의 핵심 특징

oneMinTTS는 세 가지 주요 특징으로 요약할 수 있습니다:

  1. 경량화 (Light-Weight): 200kB 미만의 실행 파일로, 모든 필요한 라이브러리가 포함되어 있습니다. 이는 ONNX 음성 합성 애플리케이션의 빠른 배포와 설치를 가능하게 합니다.
  2. 빠른 개발 (Agile-Dev): 모델 추론을 위한 C++ 파일 하나와 모델 내보내기를 위한 Python 파일 하나로 구성되어 있어, 텍스트 입력에서 파형 출력까지의 과정을 빠르게 프로토타이핑할 수 있습니다.
  3. 유연한 호환성 (Flex-Compatibility): Windows, macOS, Linux 모두에서 완벽하게 호환되며, 데스크톱 및 서버 환경 모두에 적합합니다.

이러한 특징들은 개발자들이 신속하게 아이디어를 구현하고 테스트할 수 있게 해주며, 다양한 환경에서 oneMinTTS를 활용할 수 있게 합니다.

MMS-TTS 모델: oneMinTTS의 핵심

oneMinTTS에서 사용되는 MMS-TTS 모델은 Facebook의 Massively Multilingual Speech 프로젝트의 일환으로 개발되었습니다. 이 프로젝트는 다양한 언어에 대한 음성 기술을 제공하는 것을 목표로 하고 있으며, 각 언어별로 별도의 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech) 체크포인트를 훈련시켜 사용합니다.

VITS 모델은 입력된 텍스트 시퀀스를 조건으로 음성 파형을 예측하는 종단간 음성 합성 모델입니다.

oneMinTTS 빌드 방법

oneMinTTS 프로젝트를 빌드하고 실행하는 과정은 다음과 같습니다:

먼저 GitHub에서 oneMinTTS 저장소를 로컬 시스템으로 복제합니다. 이를 위해 Git이 시스템에 설치되어 있어야 하며, 충분한 저장 공간이 확보되어 있는지 확인해야 합니다.

git clone https://github.com/talker93/oneMinTTS.git

저장소를 복제한 후, 프로젝트의 mms_tts 디렉토리로 이동합니다. 여기서 빌드를 위한 새로운 디렉토리를 생성하고 그곳으로 이동합니다. 이 과정은 프로젝트를 깔끔하게 관리하고 소스 디렉토리와 빌드 디렉토리를 분리하는 데 도움이 됩니다.

cd oneMinTTS/mms_tts
mkdir build
cd build

다음으로 CMake를 사용하여 빌드 파일을 생성합니다. 이 단계에서는 프로젝트의 의존성과 구성이 설정됩니다. CMake가 시스템에 설치되어 있어야 하며, 버전이 프로젝트 요구사항(3.10 이상)을 충족하는지 확인해야 합니다.

cmake ..

CMake 실행이 완료되면, make 명령어를 사용하여 프로젝트를 컴파일합니다. 이 과정은 시스템 사양에 따라 몇 분 정도 소요될 수 있습니다.

make

빌드가 완료되면, 생성된 실행 파일이 있는 'fewByte' 디렉토리로 이동합니다. 이 디렉토리에는 빌드된 실행 파일과 필요한 자산 파일들이 포함되어 있습니다.

cd fewByte

이 전체 과정에서 주의할 점은 운영 체제에 따라 일부 명령어나 경로가 다를 수 있다는 것입니다. 특히 Windows에서는 make 대신 다른 빌드 도구를 사용해야 할 수 있습니다. 또한, 빌드 과정에서 오류가 발생하면 필요한 라이브러리(예: ONNX Runtime)가 올바르게 설치되어 있는지 확인해야 합니다. 실행 파일 생성 후에는 필요한 모든 자산 파일이 올바른 위치에 있는지 재차 확인하는 것이 중요합니다.

user@Ubuntu22.04:~/oneMinTTS/mms_tts/build/fewByte$ ./fewByteTTS
Enter your model name: e.g. facebook/mms-tts-kor
facebook/mms-tts-kor
You entered: facebook/mms-tts-kor
Enter your text: 서울은 대한민국의 수도이자 경제, 문화, 정치의 중심지로, 약 1천만 명 이상의 인구가 거주하는 세계적인 대도시입니다...

이 예시에서는 한국어 TTS 모델인 'facebook/mms-tts-kor'을 선택하고 서울에 대한 설명 텍스트를 입력했습니다. 프로그램은 이 텍스트를 처리하고, 약 5.7초 만에 'facebook_mms-tts-kor.wav' 파일로 음성을 생성했습니다.

oneMinTTS
facebook_mms-tts-kor.wav
0.35MB

oneMinTTS 전망

oneMinTTS 프로젝트는 고품질의 다국어 음성 합성을 위한 효율적이고 사용하기 쉬운 도구를 제공합니다. 이 프로젝트의 주요 장점은 다음과 같습니다:

  1. 간단한 사용법: 복잡한 설정 없이 바로 사용 가능
  2. 빠른 처리 속도: 긴 텍스트도 몇 초 만에 처리
  3. 다양한 언어 지원: MMS-TTS 모델을 통해 여러 언어 지원

이러한 특징들은 oneMinTTS를 다양한 응용 분야에서 유용하게 만듭니다. 예를 들어, 교육용 애플리케이션, 접근성 향상을 위한 도구, 콘텐츠 제작 등에 활용될 수 있습니다.

또한, 이 프로젝트는 음성 기술에 관심 있는 개발자들에게 훌륭한 학습 자료가 될 수 있습니다. VITS 모델의 구조와 작동 방식을 이해하고, 실제로 구현해볼 수 있는 기회를 제공하기 때문입니다.

앞으로 oneMinTTS가 더 많은 언어와 음성 스타일을 지원하고, 더욱 빠르고 효율적인 음성 합성을 가능하게 할 것으로 기대됩니다. 음성 기술의 발전과 함께 oneMinTTS의 활용 범위도 더욱 넓어질 것입니다.

더 자세한 정보와 사용법이 궁금하시다면, GitHub 저장소를 방문해보세요. 여러분의 프로젝트에 oneMinTTS를 적용해보시는 건 어떨까요?

728x90
반응형