Python/Utils

파이썬 음성 모듈 gTTS (Python 말하기, 음성 출력, 음성 합성)

jimmy_AI 2021. 11. 13. 16:52
반응형

이번 포스팅에서는 파이썬에서 음성 변환, 출력, 합성 등을 할 수 있는 모듈인 Google Text to Speech(gTTS)에 대해서 다루어보도록 하겠습니다.

 

파이썬 음성 변환 모듈 gTTS

우선 gTTS 모듈을 설치해야 합니다. 다음 코드로 gTTS 모듈을 설치해주세요.

!pip install gTTS

 

gTTS로 텍스트 음성 변환

텍스트 -> 음성 변환을 진행하고 wav 파일로 저장해보겠습니다.

일단 첫 번째로 영어 음성 예시입니다.

from gtts import gTTS

eng_wav = gTTS('Hello World!') 
eng_wav.save('eng.wav')

 

위에서 작성한 eng.wav 파일을 파이썬 프로그램 내에서 재생하는 방법은 다음 코드를 참고하시면 됩니다.

from IPython.display import Audio 

display(Audio('eng.wav', autoplay=True))

만일 위에서 입력한대로 헬로 월드! 라는 음성이 출력되었다면 잘 실행된 것입니다.

 

이번에는 한국어 예시입니다. lang = 'ko'로 지정하시면 됩니다.

kor_wav = gTTS('안녕 세상아!', lang = 'ko') 
kor_wav.save('kor.wav')

display 함수를 사용했을 때, kor.wav 파일도 정상 실행된다면 완료입니다!

 

다만, 기본적으로 영어는 여성 성우, 한국어는 남성 성우로 지정되어 있는데, gTTS에서는 성우 변경은 지원하지 않는 것으로 알고있습니다.ㅠㅠ

slow = True를 추가해주시면 재생 속도를 느리게도 설정할 수 있으니 참고하세요!

 

마지막으로, 영어와 한국어가 섞인 경우 이를 gTTS에서 재생하는 방법도 알아보겠습니다.

이 경우는 wav 파일 내에 영어와 한국어를 동시에 write하는 방식을 이용합니다.

kor_ex = gTTS(text='사과는 영어로', lang='ko') # 한국어 부분
eng_ex = gTTS(text='apple') # 영어 부분

with open('mix.wav','wb') as f:
    kor_ex.write_to_fp(f) # 한국어 부분 추가
    eng_ex.write_to_fp(f) # 영어 부분 추가

display(Audio('mix.wav', autoplay=True))

성우 분이 중간에 변경되기는 하지만 '사과는 영어로 apple'을 말하는 상황을 구현하는데에 성공했습니다!

 

구글에서 지원하는 파이썬의 음성 변환 모듈인 Google Text to Speech(gTTS)가

성우 변경 등 복잡한 기능을 지원하지는 않는 것이 아쉽기는 하지만,

간단한 음성을 원하는대로 재생시키는 방법을 알아보았고, 필요한 경우에 유용하게 활용하실 수 있다면 좋겠습니다!