오늘 전에 코딩 레슨했던 1기 수강생 분께서 음성 변환 관련하여 궁금한 사항을 물어보셨는데
제가 텍스트를 음성으로 변환을 할 수 있는 방법에 대해 whisper openAPI만 알고 있었다가
우연히 gtts라는 모듈을 알게되어 포스팅을 해보려고 합니다.
오늘 다뤄볼 모듈은 gtts라는 텍스트를 음성으로 변환해주는 모듈입니다.
gTTS?
Google Text-to-Speech라는 의미로 구글 번역을 이용하여 텍스트 음성 변환 API와 인터페이스하는 Python 라이브러리 및 CLI 도구
즉, 텍스트 파일을 음성으로 변환하는 걸 지원해주는 파이썬 모듈
gTTS 설치
pip install gTTS
gTTS 활용하여 텍스트를 음성으로 변환해보자
from gtts import gTTS
audio_file = "test.mp3"
language_type = 'ko'
text_value = "안녕하세요, 저는 세기무민이라고 합니다."
speech = gTTS(
lang=language_type,
text=text_value,
slow=False
)
speech.save(audio_file)
- gTTS의 매개변수는 여러개가 있으나 위에서 사용한 매개변수를 설명하면 아래와 같습니다.
- lang : 텍스트를 읽을 언어, 기본 값은 en(영어)
- text : 음성으로 변환하기 위한 텍스트
- slow : 텍스트를 느리게 읽을 것인지 선택(boolean)
- save() 매서드를 이용하여 test.mp3 파일로 변환을 할 수 있습니다.
gTTS 활용한 음성 파일 > test.mp3
위의 코드를 실행하면 mp3 파일로 변환할 수 있습니다.
mp3 파일을 들어보면 text_value에 입력한 값이 음성으로 변환된 것을 확인할 수 있습니다.
playsound
음성 변환 작업 시 계속 변환이 재대로 되었는지 확인하기 위해 파일을 실행시키는건 효율적이지 않겠죠?
그래서 playsound라는 모듈이 있습니다.
playsound 모듈은 파이썬에서 단순하게 오디오 파일을 재생할 수 있도록 해주는 라이브러리입니다.
gTTS 심화 활용
text_value라는 변수에 넣은 값 뿐만 아니라 txt 파일을 불러와서 파일을 만들고 직접 들어보는 코드를 만들어 보겠습니다.
우선 위와 같이 sample.txt 파일을 만들어 줍니다.
from gtts import gTTS
# 코드 실행 시 소리 출력
from playsound import playsound
audio_file = "test_read_file.mp3"
language_type = 'ko'
audio_read_file_name = 'sample.txt'
# 파일 읽기
with open(audio_read_file_name, 'r') as file:
text_value = file.read()
speech = gTTS(
lang=language_type,
text=text_value,
slow=False
)
speech.save(audio_file)
playsound(audio_file)
- 파일을 만들었기 때문에 파일을 read 해주고 gTTS > text 매개 변수에 넣어주면 끝입니다.
- 그리고 playsound를 이용하여 파일 생성 전에 음성이 정상적으로 변환되었는지 확인해볼 수 있습니다.
gTTS 활용한 음성 파일 > test_read_file.mp3
sample.txt 파일에 있던 내용을 정상적으로 음성 변환된 것을 확인할 수 있습니다.
마무리
원래는 과외 수강생에게 도움을 드리려고 해당 모듈을 학습한건데 저도 활용을 많이 할 수 있을꺼 같다는 생각이 들었네요
제가 문서 정리를 많이 하는 편인데 가끔은 눈으로 보는 것보다 음성 파일로 들고 다니고 싶다는 생각이 들었거든요
gTTS 모듈이 생각보다 좋은 모듈이라는 걸 이번에 알게 되었네요 ㅎㅎ
github 코드를 보고 싶다면?
참고
'Programing > Python' 카테고리의 다른 글
pygame을 이용하여 슈팅게임 만들기 1탄 [세무민의 코딩일기] (4) | 2022.04.06 |
---|---|
세무민의 개발일기 : 페이지 설계 및 DB(sqlLite) 연동 (0) | 2021.12.22 |
파이썬 웹 개발을 위한 기초 공부하기 3탄 - django 기본 틀 잡기 및 DB 설계 초본 제작 (0) | 2021.12.08 |
파이썬 웹 개발을 위한 기초 공부하기 2탄 - Flask 기본 툴 잡기 [세무민의 코딩일기] (1) | 2021.12.02 |
파이썬 웹 개발을 위한 기초 공부하기 1탄 - Flask 설치 및 오류 해결 [세무민의 코딩일기] (0) | 2021.11.28 |