Back-end/Python

Python gTTS 라이브러리로 간단한 TTS 만들기

랑 이 2024. 12. 22. 23:02
반응형

TTS (Text-to-Speech) 

텍스트를 음성으로 변환하는 기술입니다

작성한 텍스트를 컴퓨터가 읽을 수 있도록 음성으로 만들어 재생할 수 있도록 제작하여 응용 프로그램에 주로 사용됩니다

TTS 활용

안내 보조

- 시각 장애인,환자 등 에게 텍스트를 음성 정보로 변환하여 정보를 제공 

자동 응답 시스템 

- 콜센터 등에서도 자주 사용하는걸 볼수 있습니다 반복되는 안내를 TTS로 대체 

번역 프로그램

- 파파고,구글 번역기 에서 음성 정보를 들려줄때 사용됩니다 

언론 및 엔터테이먼트

- 나레이션이나 요즘에는 아나운서도 AI로 대체는 모습들이 보이고 있습니다

 

Python의 gTTS 라이브러리를 사용하면 쉽게 TTS 음성 파일을 만들 수 있습니다

gTTS (Google-Text-to-Speech)

GoogleTTS API를 기반으로 텍스트를 음성으로 변환하는 Python 라이브러리 

 

gTTS

gTTS (Google Text-to-Speech), a Python library and CLI tool to interface with Google Translate text-to-speech API

pypi.org

gTTS 라이브러리를 활용하여 TTS 음성 파일 생성

1. gTTS 설치 

터미널에 다음 명령어를 통해서 설치 진행

pip install gTTS

 

2. TTS 음성 파일 생성 코드 구현

from gtts import gTTS

# 변환할 텍스트 
text = "TTS 테스트 입니다"

# 언어 설정 ('ko' 한국어, 'en' 영어, 'ja' 일본어)
lauguage = "ko"

# gTTS 객체 생성
tts = gTTS(text=text,lang=lauguage,slow=False)

# 음성 파일 저장
tts.save("output.mp3")

print("TTS 음성 파일이 생성되었습니다")

TTS 음성 파일 생성 코드는 간단합니다 변환할 텍스트와 언어를 지정하여 코드를 실행하면 mp3 파일이 생성됩니다

gTTS에서 제공하는 옵션을 통해 언어,음성 속도를 지정할 수 있습니다 

  • lang: 변환할 텍스트의 언어 유형 ('ko' 한국어, 'en' 영어, 'ja' 일본어)
  • slow: 음성 속도 조절 (True = 느리게,False = 기본) 

3. TXT 파일에서 텍스트 추출해서 음성 파일 변환

from gtts import gTTS

file_path = "(텍스트 파일.txt)"

with open(file_path,'r',encoding='utf-8') as file:
    text = file.read()

# 언어 설정 ('ko' 한국어, 'en' 영어, 'ja' 일본어)
lauguage = "ko"

# gTTS 객체 생성
tts = gTTS(text=text,lang=lauguage,slow=False)

# 음성 파일 저장
tts.save("output.mp3")

print("TTS 음성 파일이 생성되었습니다")

이번에는 변환할 텍스트를 작성한 .txt 파일에서 텍스트를 추출하여 음성 파일로 변환하는 코드를 구현합니다

방법은 기존의 TTS 음성 파일 변환과 같으며 text 파일을 불러와 텍스트를 저장하여 이를 변환하는 기능을 추가하였습니다

 

 

목소리 커스터마이징 가능한 TTS 모델

gTTS 같은 라이브러리를 사용하면 간단하게 구현은 가능하지만 목소리가 제한적이라는 단점이 존재합니다 

이러한 단점을 보완하여 높은 품질을 위해서 딥러닝 기반의 TTS 모델을 설계하여 사용하기도 합니다

 

하지만 이런 TTS 모델을 구현하기 위해서는 생성 모델,데이터셋,GPU 학습 등 많은 자원을 필요로 합니다

 

커스텀 TTS를 위한 참고자료

이미 설계된 TTS 모델 사용법은 아직 공부를 더 해야겠네요 기회가 되면 아래 모델을 통해서 커스텀 TTS를 만들어 보겠습니다 

 

coqui/XTTS

 

coqui/XTTS-v2 · Hugging Face

ⓍTTS ⓍTTS is a Voice generation model that lets you clone voices into different languages by using just a quick 6-second audio clip. There is no need for an excessive amount of training data that spans countless hours. This is the same or similar model

huggingface.co

 

GitHub - coqui-ai/TTS: 🐸💬 - a deep learning toolkit for Text-to-Speech, battle-tested in research and production

🐸💬 - a deep learning toolkit for Text-to-Speech, battle-tested in research and production - coqui-ai/TTS

github.com

Bert-VITS2

 

AI를 통해 좋아하는 캐릭터의 TTS를 만들어보자! - Bert-VITS2 » Info-Nemo

최근 AI를 이용한 많은 것들이 만들어지고 있는 와중에, 음성에 관한 AI 모델을 사용하고 싶어졌습니다. Bert-VITS2를 이용한 AI음성 훈련 및 추출, 시작합니다!

info-nemo.com

 

반응형