#1 음성합성기술이란?
텍스트를 처리하여 음성으로 만드는 기술이다.
텍스트로부터 음성데이터를 만든 후에 이를 재생하는 구조이다.
#2 gtts로 음성합성하기
gtts란?
구글에서 제공하는 음성합성 패키지다.
설치법
pip install gtts
pip install pydub
brew install ffmpeg
사용가능한 언어 확인하기
사용가능한 언어의 목록을 출력한다. 사전 컴프리헨션을 사용해서 한국어, 영어와 같이 특정 언어도 검색할 수 있다.
import gtts
print("사용 가능한 모든 언어들", gtts.lang.tts_langs())
# 영어와 한국어만 보기
# 딕트 컴프리헨션
{
k: v
for k, v in gtts.lang.tts_langs().items()
if v.lower() == "korean" or v.lower() == "english"
}
사용법
import gtts
from pydub import AudioSegment
from pydub.playback import play
# 텍스트를 음성으로 바꾸지
tts = gtts.gTTS("안녕하세요? 인공지능입니다.", lang="ko")
# mp3 파일로 저장
tts.save("temp.mp3")
# mp3 파일을 다시 읽기
my_sound = AudioSegment.from_mp3("temp.mp3")
# 컴퓨터로 재생
play(my_sound)
음성 파일을 저장하지 않고 빠르게 합성하는 법
파일을 메모리에 저장한 후에 변환해서 바로 음성형태로 재생한다.
import gtts
from io import BytesIO
from pydub import AudioSegment
from pydub.playback import play
# 텍스트를 음성으로 바꾸기
tts = gtts.gTTS("안녕하세요? 인공지능입니다.", lang="ko")
# mp3 오디오 데이터를 메모리에 저장
fp = BytesIO()
tts.write_to_fp(fp)
fp = BytesIO(fp.getvalue())
# 오디오 데이터를 메모리로부터 가져오기
my_sound = AudioSegment.from_file(fp, format="mp3")
# 컴퓨터로 재생
play(my_sound)
#3 Naver Cloud Platform으로 음성 합성하기
설치법
pip install NaverTTS
사용법
from io import BytesIO
from navertts import NaverTTS
from pydub import AudioSegment
from pydub.playback import play
# 음성파일 생성
tts = NaverTTS("안녕하세요? 인공지능입니다.", lang="ko")
# 음성파일을 메모리에 저장
fp = BytesIO()
tts.write_to_fp(fp)
# 메모리에서 음성파일 가져오기
fp = BytesIO(fp.getvalue())
# 음성파일 재생
my_sound = AudioSegment.from_file(fp, format="mp3")
play(my_sound)