라즈베리파이4

[라즈베리파이4] gtts로 텍스트를 음성으로 변환하기

왕초보코딩러 2023. 10. 29. 01:53
728x90

gtts 패키지를 사용하여 텍스트를 음성으로 변환시켜보겠습니다.

https://happylie.tistory.com/137

 

[Python] 파이썬 gtts 모듈을 이용한 텍스트 음성 변환 방법

파이썬 gtts 모듈을 이용한 텍스트 음성 변환 방법 구글, 네이버, 카카오 등 여러 IT 회사에서 텍스트를 음성으로 변환하는 모듈(Module), SDK를 제공하고 있다. 구글 : gtts(Google Text-to-Speech) 네이버 :

happylie.tistory.com

 

 

1. gtts 패키지 다운 받기

pip3 install gtts

 

전 미리 설치되어 있어서 already satisfied가 나왔네요

 


이렇게 되었다면 라즈베리파이 Thonny로 이동합니다

 

2. gtts 패키지를 사용하여 텍스트를 음성으로 변환

 

- 문자열을 넣어서 음성 파일 만들기

from gtts import gTTS

tts = gTTS(text = "안녕하세요", lang = 'ko')
filename = "hello.mp3"
tts.save(f"/home/kimlab/Music/{filename}")

"안녕하세요"라는 텍스트를 음성으로 변환하는 파일을 Music 폴더에 넣었습니다.

저는 filename을 한글로 했을 때 오류가 떴습니다. (코랩에서는 괜찮았음)

한글로도 될 수 있겠지만, 저는 오류 방지를 위해 영어로 저장해주겠습니다.

lang은 생략하면 영어가 default입니다.

 

 

- 텍스트 입력 받아서 음성 파일 만들기

from gtts import gTTS

tt = input("음성으로 변환하고픈 말을 입력하세요: ")
tts = gTTS(text = tt, lang = 'ko')
filename = "music1.mp3"
tts.save(f"/home/kimlab/Music/{filename}")

 

- 딕셔너리로 입력 받아서 음성 파일 만들기 (파일 이름과 텍스트가 다를 때)

from gtts import gTTS

p_type={'snack':'과자','beverage':'음료','ramen':'라면'}

def speak(dict):
    for eng in dict:
        tts = gTTS(text =f"{dict[i]}", lang = 'ko') #한글
        filename =f"{eng}.mp3" #영어
        tts.save(f"/home/kimlab/Music/{filename}")
        
speak(p_type)

 

- 리스트로 입력 받아서 음성 파일 만들기 (파일 이름과 텍스트가 같을 때)

from gtts import gTTS

arr = ['hello', 'hi', 'good morning', 'good bye', 'see you']

def speak(arr):
    for tt in arr:
        tts = gTTS(text = tt)
        #tt = tt.replace(" ", "")  #띄어쓰기 오류를 위해
        filename =f"{tt}.mp3"
        tts.save(f"/home/kimlab/Music/{filename}")
        
speak(arr)

 


 

 

저는 이렇게 코드를 만들어봤습니다.

 

그랬더니 Music 폴더에 음성 파일이 만들어졌어요~!