안녕하세요.
이번에는 좀 재밌는 거 만들어 보겠습니다.
GPT 이용해서 코딩을 하는 과정이고요.
제가 예전부터 만들어 보고 싶었던 건데 드디어 오늘 시간을 좀 내서 만들어 봤습니다.
무엇은 만들 것인가 : 단어 불러주는 학습 봇
저희 둘째 딸이 요즘 영어 공부를 열심히 하고 있는데요.
단어를 외우는 숙제가 많거든요.
영어 책에 나오는 단어들을 이렇게 메모장 앱에다가 열심히 적어놓고 외워요.
다 외웠다 싶으면 제대로 외웠는지 테스트를 해야 돼서 항상 엄마 아빠한테 도와달라고 하거든요.
제가 영어 단어 한번 불러 주고 저희 딸이 뜻 말하고,
제가 한글 뜻 불러 주면 자기가 영어 단어 말하고 이런 식으로 해요.
이거를 제가 매일매일 해주고 있는데요, 언젠가는 이거 코딩으로 자동화 해야지 하는 마음이었습니다.
사실 예전에 두번 정도 실패한 적 있어요.
한시간 정도 열심히 해봤는데 잘 안 되더라고요. 결국은 GPT가 짜 준 코드의 실행 오류인데요.
그간에 저도 GPT와 함께 코딩 연습 많이 했으니, 이번에 다시 한번 도전해 봅니다~
구글 코랩용으로 코딩하기 with 챗GPT
역시 GPT는 거침이 없네요.
원하는 걸 얘기하면 바로 직진!!
GPT에 포함된 환경에서는 제한이 있을 듯 해서, 처음부터 구글 코랩에서 할거라고 얘기했어요.
GPT 코딩의 최고 장점은 역시나 이런 친절한 멘토링이죠.
코딩을 시키면서도 과외까지 받을 수 있다니 !!
1차 시도를 실행해 봅니다.
단어를 하나 입력받고, 엔터치면 하나 더 입력받고 그러네요.
입력을 편하게 하려고, 콤마 찍으면 한번에 여러 단어 입력하겠다고 수정 시켰습니다.
발음도 특정이 되는지 모르겠지만 일단은 미국식 발음으로 해달라고 얘기는 해 봤어요.
역시나 한번에는 안 되네요.
코랩에서 뜬 오류 메세지를 그대로 복사해서 챗GPT에게 보고합니다.
그럼 GPT가 오류 내용도 분석하고 수정도 시도합니다.
근데 이렇게 했더니, 단어를 발음한 파일을 하나씩 따로 만들어서 다운로드를 제공하네요.
제가 원하는 UI와 작동방식을 다시 한번 더 구체적으로 설명합니다.
또 다른 오류가 작동해서 GPT에게 다시 보고를 했어요.
그랬더니 이번에도 수정을 잘 해줬고, 드디어 제가 원하는대로 작동을 했어요.
다 만들어진 코드입니다.
구글 코랩에서 그대로 실행하시면 돼요.
!pip install gTTS
!pip install pydub
!apt install ffmpeg
Python
복사
from gtts import gTTS
from pydub import AudioSegment
from google.colab import files
import os
# 단어장을 입력받는 함수 (콤마로 구분된 단어 입력)
def read_word_list():
words = input("콤마로 구분된 단어를 입력하세요: ")
return [word.strip() for word in words.split(',')] # 단어를 리스트로 변환
# 입력받은 단어장을 음성으로 변환하고 하나의 mp3 파일로 결합하는 함수
def speak_word_list(words):
combined_audio = AudioSegment.empty() # 빈 오디오 파일 생성
silence = AudioSegment.silent(duration=5000) # 5초의 침묵 생성
for word in words:
tts = gTTS(text=word, lang='en', tld='com') # 미국식 영어 발음 설정
filename = f"{word}.mp3"
tts.save(filename)
# 단어 mp3 파일을 AudioSegment로 로드하여 결합
word_audio = AudioSegment.from_mp3(filename)
combined_audio += word_audio + silence # 단어 뒤에 5초 간격 추가
os.remove(filename) # mp3 파일 삭제
# 최종 결합된 음성을 하나의 mp3 파일로 저장
output_filename = "combined_words.mp3"
combined_audio.export(output_filename, format="mp3")
print(f"최종 음성 파일이 '{output_filename}'로 저장되었습니다.")
files.download(output_filename) # 파일 다운로드 제공
# 실행
words = read_word_list()
speak_word_list(words)
Python
복사
Web-App으로 코딩하기 with 챗GPT, 리플릿(Replit)
우리 딸 스마트폰에 구글 코랩 깔아주고 코드 실행방법 알려주면 되겠지만,
아무래도 초등학생용 UI는 아닌 듯 하여 Web에서 구동시키기로 했습니다.
제가 없더라도 우리 딸이 항상 사용할 수 있으려면
웹-앱으로 공개된 사이트를 만들어야 하죠.
이런 기능을 제공하는 곳은 많지만
저는 리플릿(Replit)에서 하기로 합니다.
리플릿(Replit)이 편리한 이유
1.
무료 (일단 만들어서 구동시키는 것 까지는 무료, 사이트 3개까지 무료)
2.
챗GPT가 이미 잘 알고 있다 (GPT에게 코드 받아내기가 편리함)
3.
파이썬, HTML 등 여러 언어가 사용 가능함 (복잡한 웹앱 만들기 가능)
자~ GPT와 함께 대화를 시작해 봅니다.
챗GPT는 이미 리플릿을 잘 알고 있어요.
새로운 프로젝트를 생성하고 파이썬을 선택하라고 메뉴도 설명해주고요,
라이브러리 설치를 위해 requirements.txt 파일에 필요한 이름들 넣으라고도 알려줍니다.
main.py 파일에 넣을 코드도 따로 주고, (text-speech 변환 등 기능을 담당)
index.html 파일에 넣을 코드도 따로 줍니다. (접속 웹페이지 디자인과 UI를 담당)
GPT가 알려준대로 리플릿에서 셋팅을 합니다.
우클릭 > 만들기 > requirements.txt 하고 GPT가 준 코드 복사-붙여넣기
main.py 파일 찾아서 그 안에 코드 복붙
만들기 해서 index.html 만들고 코드 복붙
리플릿에서 Run 눌러서 실행시켜 봅니다.
단어를 입력받은 다음에 페이지에 아무 변화도 없이 멈춰있더라고요.
그래서 이어져야 할 작업들을 추가로 설명했습니다.
그렇게 만들어진 mp3 파일을 다운로드 받을 수 있는 페이지를 download.html로 만들라 하네요.
시킨대로 리플릿에서 파일 만들고 코드 복붙 했습니다.
리플릿에서 다시 Run 눌러보니 잘 작동합니다.
단어 입력하고 기다리면 download.html 페이지로 이동하고 거기에 다운로드 링크가 있습니다.
챗GPT는 리플릿의 메뉴 구성에 대해서도 너무 잘 알고 있네요.
GPT가 알려준대로 찾아봐서 웹 공개 주소를 알아냈습니다.
우리 딸 스마트폰에서 이 URL로 접속해서 테스트 해보고,
홈 화면에 바로가기 추가를 해 줬습니다.
이제 저 없어도 혼자서 단어 입력하고, 오디오 파일 만들어서, 스스로 공부할 수 있겠네요.
리플릿에 접속해서 Run을 눌러놔야 웹페이지가 작동합니다.
제가 만든 사이트 링크 남깁니다.
그리고 이 과정을 유튜브에도 올려두었습니다.
혹시 따라해보실 분들은 유튜브가 더 편하실거에요.
오늘도 감사합니다.