본문 바로가기
인공지능/Lang Chain

LangChain과 gTTS를 활용한 동적 TTS 시스템 구축하기

by makepluscode 2024. 6. 29.
반응형

LangChain과 gTTS를 활용한 동적 TTS 시스템 구축하기

LangChain과 gTTS를 활용한 동적 TTS 시스템 구축하기

LangChain과 gTTS(Google Text-to-Speech)를 결합하여 동적인 Text-to-Speech(TTS) 예제를 만들어 보겠습니다. 이 예제는 AI가 생성한 텍스트를 자동으로 음성으로 변환할 수 있습니다.

LangChain이란?

LangChain은 대규모 언어 모델(LLM)을 사용하여 애플리케이션을 개발하기 위한 프레임워크입니다. 이 프레임워크를 사용하면 AI 모델을 쉽게 통합하고, 복잡한 작업을 체인으로 연결하여 수행할 수 있습니다.

프로젝트 개요

이 포스팅에서 만들 예제는 다음과 같은 단계로 동작합니다.

(1) 사용자로부터 주제를 입력받습니다.
(2) LangChain을 사용하여 해당 주제에 대한 텍스트를 생성합니다.
(3) 생성된 텍스트를 gTTS를 사용하여 음성으로 변환합니다.

이 프로세스를 통해 사용자는 원하는 주제에 대한 AI 생성 오디오 파일을 얻을 수 있습니다.

필요한 라이브러리 설치

프로젝트를 시작하기 전에 필요한 라이브러리를 설치해야 합니다:

pip install langchain langchain-openai openai python-dotenv gtts

코드 구현

이제 실제 코드를 살펴보겠습니다:

import os
from dotenv import load_dotenv
from langchain_openai import OpenAI
from langchain.chains import LLMChain
from langchain.prompts import PromptTemplate
from gtts import gTTS

# .env 파일에서 환경 변수 로드
load_dotenv()

# OpenAI API 키 확인
if not os.getenv("OPENAI_API_KEY"):
    raise ValueError("OPENAI_API_KEY가 설정되지 않았습니다. .env 파일을 확인해주세요.")

def generate_text(prompt):
    # LangChain을 사용하여 텍스트 생성
    llm = OpenAI(temperature=0.7)
    template = "Write a short paragraph about {topic}."
    prompt_template = PromptTemplate(input_variables=["topic"], template=template)
    chain = LLMChain(llm=llm, prompt=prompt_template)
    return chain.run(prompt)

def text_to_speech(text, output_file, lang='en'):
    # gTTS를 사용하여 텍스트를 음성으로 변환
    tts = gTTS(text=text, lang=lang)
    tts.save(output_file)
    print(f"Audio content written to '{output_file}'")

if __name__ == "__main__":
    topic = input("Enter a topic for the AI to talk about: ")

    generated_text = generate_text(topic)
    print("\nGenerated Text:")
    print(generated_text)

    output_file = f"{topic.replace(' ', '_')}_description.mp3"
    text_to_speech(generated_text, output_file)

    print(f"\nTTS conversion complete. The audio file has been saved as '{output_file}'.")
    print("You can now play this file to hear the AI-generated content about your chosen topic.")

코드 설명

  1. 환경 설정:
    • load_dotenv()를 사용하여 .env 파일에서 OpenAI API 키를 로드합니다.
    • API 키가 설정되어 있는지 확인합니다.
  2. 텍스트 생성 함수 (generate_text):
    • LangChain의 OpenAI 모델을 초기화합니다.
    • PromptTemplate을 사용하여 동적 프롬프트를 생성합니다.
    • LLMChain을 생성하고 실행하여 텍스트를 생성합니다.
  3. TTS 함수 (text_to_speech):
    • gTTS를 사용하여 텍스트를 음성으로 변환합니다.
    • 생성된 음성을 MP3 파일로 저장합니다.
  4. 메인 실행 부분:
    • 사용자로부터 주제를 입력받습니다.
    • 입력된 주제로 텍스트를 생성합니다.
    • 생성된 텍스트를 음성으로 변환합니다.

실행 방법

  1. .env 파일을 생성하고 OpenAI API 키를 추가합니다:
  2. OPENAI_API_KEY=your_api_key_here
  3. 코드를 Python 파일(예: langchain_tts.py)로 저장합니다.
  4. 터미널에서 다음 명령어로 실행합니다:
  5. python langchain_tts.py
  6. 프롬프트가 표시되면 원하는 주제를 입력합니다.
  7. 프로그램이 실행되면 AI가 생성한 텍스트가 표시되고, 해당 텍스트를 음성으로 변환한 MP3 파일이 생성됩니다.

LangChain과 gTTS를 활용한 동적 TTS 시스템 구축하기

확장 가능성

이 기본 시스템을 바탕으로 다양한 확장이 가능합니다:

  1. 웹 인터페이스 추가
  2. 다양한 LLM 모델 지원
  3. 음성 스타일 커스터마이징
  4. 생성된 콘텐츠 저장 및 관리 기능

이 튜토리얼에서는 LangChain과 gTTS를 결합하여 동적인 TTS 시스템을 구축해 보았습니다. 이 시스템은 AI 생성 콘텐츠를 음성으로 변환하는 강력한 도구가 될 수 있습니다. AI와 음성 기술의 결합은 교육, 엔터테인먼트, 접근성 향상 등 다양한 분야에서 혁신적인 애플리케이션을 만들 수 있는 가능성을 제공합니다. 이 기술을 활용하여 창의적인 프로젝트를 시작해 보는 것은 어떨까요?

 

반응형