본문 바로가기
클라우드/colab

Colab을 이용해 인공지능을 개발해보자!-4편: xtts를 활용하여 무료로 자신만의 AI Voice 생성하기

by kimjunhee9339 2024. 6. 8.

타입캐스트와 같은 voice 생성 서비스가 많다. 이러한 서비스는 회사이기 때문에 tts(text-to-speech) 기능을 유료로 제공하는 경우가 많은데, xtts를 사용하면 code로 무료로 원하는 목소리를 생성할 수 있다.

xtts icon

How To:

1. 코랩에 접속한다.

2. 새노트를 생성한다.

3. xtts서비스 사용을 위해 TTS 모듈을 다운받는다.

#셀에 추가
!pip install TTS

4. 설치가 완료되면 세션을 재시작하라는 문구가 나올 것이다. 세션을 재시작하고 아래의 코드를 실행한다.

import torch
from TTS.api import TTS

# Get device
device = "cuda" if torch.cuda.is_available() else "cpu"

# List available 🐸TTS models
print(TTS().list_models())

이렇게 하면 xtts에서 사용가능한 모델 이름이 쫙 나올 것이다.

5. 아래의 코드를 실행한다.

# Run TTS
# ❗ Since this model is multi-lingual voice cloning model, we must set the target speaker_wav and language
# Text to speech list of amplitude values as output
wav = tts.tts(text="Hello world!", speaker_wav="my/cloning/audio.wav", language="en") #wav파일을 생성하여 sample_rate=22050으로 torchaudio.save를 사용해 저장할 수 있다.
# Text to speech to a file(넣고 싶은 텍스트, 복제하고 싶은 목소리의 audio파일의 경로, 언어 설정(한국어 지원), output의 경로)
tts.tts_to_file(text="Hello world!", speaker_wav="my/cloning/audio.wav", language="en", file_path="output.wav")

이렇게 하면 output.wav가 지정한 경로에 생길 것이다. 여기서 꿀팁을 주자면 speaker_wav가 길면 길 수록 

output.wav의 퀄리티도 좋아진다. (어떤 voice cloning model을 거치는 듯하다.)

이렇게 나만의 목소리를 인공지능을 활용해서 생성하는 방법을 알아봤다.

필자같은 경우는 최애의 아이의 아이, re:zero의 에밀리아의 목소리의 주인공인

타카하시 리에성우의 목소리를 생성해봤는데

목소리 총 길이 2분 정도의 데이터를 모아서 (열심히 녹음하고 붙였다) speaker_wav의 input으로 넣은 뒤에 생성해보았는데 잘 생성되는 것을 확인할 수 있었다.