요즘 chatGPT때문에 코딩의 필요성이 점점 안중요해져 보여가긴 한다.
현타가 자주 오긴 하는데,,, 일단 공부한거니 올려본다
TTS : Text To Speech
대충 우리말로 하면.. "글로 씨부리기" 정도다.
우리가 사용하는 환경에서 말로 씨부리는게 필요한 경우에는 TTS를 사용하거나 녹음한걸 켜는수밖에 없다.
아쉽게도 Python으로 TTS를 하는 경우엔, "TTS음성파일"을 만들고 "녹음한걸 켜는"과정이 전부 필요하다.
코딩하기에 앞서 다양한 모듈들이 필요하다.
pip install speechrecognition
pip install gTTs
pip install playsound==1.2.2
와 같이 입력한다.
playsound의 버전을 일부터 낮추는 이유는, 업데이트되면서 오류가 뜨는데, 나는 이거 잡을줄 몰라서다. 한참 고쳐보다가 그냥 버전을 낮췄다.
아래는 내가 짠 코드 전문이다.
### 순서대로 파일 만들기 ### 다회용임 ###
import speech_recognition as sr
from gtts import gTTS
import playsound
import os
def make_sound(directory, lan, contents) :
len_dir = len(os.listdir(directory))
tts = gTTS(text=contents, lang=lan)
tts.save(f'{directory}/voice{len_dir}.mp3')
return len_dir
def speak(len_dir) :
playsound.playsound(len_dir)
def main() :
### 여기만 수정하면 됨 ###
directory = './voices' # mp3저장될 폴더 이름
lan = 'ko' # 한쿸어는 ko, 영어는 en-us
contents = '안녕'
### 여기까지만 ###
len_dir = make_sound(directory, lan, contents)
speak(f'{directory}/voice{len_dir}.mp3')
if __name__ == '__main__' :
main()
녹음파일을 만들고 그 녹음파일을 실행하는 것이기 때문에, 파일 이름이 겹치면 안된다.
이에, 녹음파일만 쌓이는 폴더를 만들었고, make_sound함수에서 녹음파일이 쌓이는 폴더 내 파일 개수를 읽어 n+1의 파일명이 되도록 하여 녹음파일을 저장했다.