AI 탐구노트

Zonos TTS로 음성 복제 및 문장 생성 테스트 본문

DIY 테스트

Zonos TTS로 음성 복제 및 문장 생성 테스트

42morrow 2025. 3. 16. 13:28

 

최근 인공지능 음성 합성 기술이 급속히 발전하면서 자연스러운 음성을 구현하는 다양한 서비스가 등장하고 있습니다. 그 가운데 Zonos TTS 적은 GPU 메모리를 사용하면서도 한국어도 곧잘 음성 생성을 해 내는 반가운 모델이라고 알려져 있습니다.

 

 

 

ZONOS : 다국어, 감정표현도 잘 되는 오픈소스 TTS 모델

최근 인공지능 기술의 발전으로 텍스트를 자연스러운 음성으로 변환하는 TTS(Text-to-Speech) 기술이 주목받고 있습니다. 특히, 개인화된 음성 생성과 감정 표현이 가능한 모델에 대한 수요가 증가하

42morrow.tistory.com

 

이 모델은 주어진 텍스트를 음성으로 만드는 것에 그치지 않고 사용자 본인의 음성을 복제하는 기능도 제공합니다. 온라인 사이트에서 음성 생성 서비스를 제공하는 곳들이 다수 있긴 한데 선택 가능한 음성이 딱 원하는 목소리가 아닌 경우가 많습니다. 혹은 내 목소리를 이용해서 하고 싶은데 직접 녹음하자니 늘 들쭉날쭉이고 중간중간 발음이 새거나 틀리는 경우들이 생길 수도 있죠. 그럴 때 목소리 복제와 TTS를 이용하면 큰 도움이 됩니다. 

 

이전에도 FishSpeech라는 TTS 모델을 이용해서 한국어 음성 합성을 해 본 적이 있었습니다. 약간의 아쉬움은 있긴 했지만 전반적으로는 만족스러운 결과였습니다. 과연 Zonos TTS는 그와 비교해 얼마나 나은지, 그리고 이 모델을 이용한 음성 복제는 어떻게 나올 것인지 테스트를 진행해 보겠습니다. 


 

테스트 환경 설정 및 준비 과정

1) 테스트 환경

  • 운영체제: 우분투 24.04 LTS 
  • 브라우저: Google Chrome 최신 버전
  • 마이크: 일반 USB 마이크 

2) 준비한 데이터

이를 통해 직접 녹음한 목소리를 이용할 수도 있고 스마트폰으로 녹음한 음성 파일을 이용할 수도 있습니다. 그런데... 제가 제 목소리를 별로 좋아하지 않는터라...  (자기 목소리를 스피커로 들으면 이상하게 느껴지는 그런 것 아시죠?) 유튜브에 올라와 있는 연예인의 목소리 일부를 이용해서 테스트 해 보기로 했습니다. 그래서 제가 선택한 것은 OOO님의 목소리입니다. 나중에 최종적으로 만들어진 음성을 듣고 맞춰 보세요.^^;

 

3) Gradio 앱 실행

Zonos TTS에서 Gradio demo 앱을 기본적으로 포함하고 있습니다. 

$ uv run gradio_interface.py
또는
$ python run gradio_interface.py

 

그럼 아래와 같은 화면이 뜰 겁니다. 샘플 텍스트는 기본적으로 들어 있는 , 언어는 ko로 선택해 둔 것입니다)

그림 : gradio 기반 zonos 실행도구

 

접혀 있는 속성 설정 가운데 화자의 음성 피치, 감정 등을 조절할 수 있는 세부 기능도 제공됩니다. 

그림 : Advanced Parameters 설정

 

4) 음성 복제 실행 

 

사용할 문구는 다음과 같습니다. OOO님이 방송에서 한 얘기 가운데 일부를 차용해서 만들었습니다. 

 

게스트에게 늘 이 말은 합니다. 걱정하지 마세요. 너무 불안해하지 마세요. 괜찮아요. 예능 나와서 웃음 주는 거 결코 쉽지 않기 때문에 얘기를 해 줍니다.

 

 

복제할 음성 파일을 로딩합니다.

 

Gradio 설정 내용 수정을 합니다. 사실 세부적인 설정은 따로 조사하지 않아서 대충 비슷하게 나오는 조합을 사용했습니다. 기본적으로 Confidence 값은 높였고 PitchStd와 Speaking Rate 값이 중요할 것 같아서 그것만 조정하는 방식으로 해 봤습니다. 

 

5) 복제 음성 결과 분석

이렇게 생성된 음성은 중간중간 공백을 가진 체로 생성되었습니다. 반복해서 해 보면 또 다른 패턴이 나오겠죠.

그림 : 생성된 음성 파일, 중간에 긴 공백이 있음

 

그나마 나오는 부분들은 괜찮은 것 같아서 공백 부분을 Shotcut에서 잘라서 제거해서 붙여봤습니다. 한번 들어 보시죠.

 

완성된 음성은 처음 듣자마자 OOO님 목소리와 유사하게 들린다는 인상을 받았습니다. 더 긴 시간의 샘플 음성으로 학습된다면 지금보다 더 나아질 수도 있을 것 같습니다. 하지만, 어디까지나 TTS 테스트이니 여기까지... ^^; 


 

Zonos TTS를 짧게 사용해 보면서 기술의 발전 가능성을 직접 체험할 수 있었습니다. 짧은 몇 초만의 음성을 가지고 화자의 목소리와 유사한 소리를 만들 수 있다는 것이 한편으로는 참 신기하고 한편으로는 위험하다는 생각이 들었습니다. 더 많은 샘플 데이터를 이용해 복제 음성의 품질이 높아지면 실제 음성과 구분하기 힘들 것 같았기 때문입니다. 최근 사회 문제가 되고 있는 딥페이크와 보이스피싱 범죄 등이 떠오르더군요. 

 

과거 역사를 돌아보면 기술의 진보를 막을 방법은 없었습니다. 그리고 개발 당시에는 그 기술이 악용될지 몰랐던 경우도 많이 있었습니다. 결국은 우리가 할 수 있는 최선은 새로운 기술이, 선한 목적으로 사용되도록 가이드하고 악용되는 것을 효과적으로 최소화시킬 수 있는 방법을 찾아내는 연구를 해야 하는 것이라 생각됩니다. 그러기 위해서는 어차피 이런 기술들을 또 잘 알고 있어야 하겠죠!