본문 바로가기
📌 1. 개발 & 프로그래밍/ChatGPT & 자동화 활용

📘 14강: ChatGPT + 음성 인식 자동화(SpeechRecognition + GPT로 음성 비서 만들기)

by lastdetective 2025. 4. 26.
반응형

✅ 들어가며

"OK ChatGPT, 오늘 날씨 알려줘!"
이런 식으로 음성을 텍스트로 바꾸고, GPT가 답을 해주는 시스템.
이걸 파이썬 + 음성 인식 + GPT로 직접 만들 수 있어!


🎯 목표

  • 마이크로 사용자의 음성 입력 받기
  • SpeechRecognition으로 텍스트 변환
  • ChatGPT로 대답 받기
  • TTS로 다시 음성으로 말해주기 (선택)

🔧 사전 준비

📦 필요한 라이브러리 설치


pip install speechrecognition pyaudio openai gtts playsound python-dotenv

⚠️ pyaudio는 설치가 까다로울 수 있어서 OS별 가이드를 따르자


🛠️ 핵심 코드

1. 음성 인식 → GPT 응답 → 음성 출력


import speech_recognition as sr
import openai
import os
from gtts import gTTS
from playsound import playsound
from dotenv import load_dotenv

load_dotenv()
openai.api_key = os.getenv("OPENAI_API_KEY")

def recognize_speech():
    recognizer = sr.Recognizer()
    mic = sr.Microphone()
    with mic as source:
        print("🎤 말하세요...")
        recognizer.adjust_for_ambient_noise(source)
        audio = recognizer.listen(source)
    try:
        text = recognizer.recognize_google(audio, language="ko-KR")
        print(f"🗣️ 인식된 말: {text}")
        return text
    except sr.UnknownValueError:
        return "음성을 인식하지 못했어요."
    except sr.RequestError:
        return "음성 인식 서비스 오류입니다."

def ask_gpt(text):
    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=[{"role": "user", "content": text}],
        max_tokens=100
    )
    answer = response["choices"][0]["message"]["content"]
    print(f"🤖 GPT 응답: {answer}")
    return answer

def speak(text):
    tts = gTTS(text=text, lang="ko")
    filename = "response.mp3"
    tts.save(filename)
    playsound(filename)
    os.remove(filename) # 응답 후 파일 삭제

# 실행
if __name__ == "__main__":
    question = recognize_speech()
    if question:
        reply = ask_gpt(question)
        speak(reply)

🎙️ 데모 흐름

  1. 사용자가 마이크에 말함: “GPT야, 오늘 날씨 어때?”
  2. 텍스트로 변환됨
  3. GPT가 응답: “오늘 서울의 날씨는 맑고 기온은 18도입니다.”
  4. gTTS가 응답을 음성으로 변환
  5. 컴퓨터가 소리로 응답함

💼 응용 예시

분야활용
AI 비서 “이메일 요약해줘”, “내일 일정 알려줘”
블로그 도우미 블로거가 말로 콘텐츠 생성
교육 앱 학생 질문 → AI가 말로 설명
노인/어린이 대상 인터페이스 글 입력 없이 말로 소통

📌 꿀팁

  • recognizer.adjust_for_ambient_noise()는 주변 소음 보정용
  • gTTS는 한국어도 지원 잘 돼
  • TTS 속도/발음 제어하고 싶으면 pyttsx3, ElevenLabs도 고려 가능
  • GUI로 만들려면 PyQt5 or Tkinter로 연결 가능

🏁 마무리

이제 너는
GPT에게 직접 말하고, GPT가 말로 답해주는 시스템도 만들 수 있어!
실생활에 진짜 유용하고, 앱화해서 판매도 가능할 정도야.


📚 다음 강의 예고

👉 15강 예고:
ChatGPT + 자동 이메일 작성기 만들기
이메일 제목, 내용 요약, 회신 생성까지 완전 자동화하는 시스템 다뤄볼 거야!

728x90
반응형