본문 바로가기

인공지능/Lang Chain

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

728x90
반응형

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와 음성 기술의 결합은 교육, 엔터테인먼트, 접근성 향상 등 다양한 분야에서 혁신적인 애플리케이션을 만들 수 있는 가능성을 제공합니다. 이 기술을 활용하여 창의적인 프로젝트를 시작해 보는 것은 어떨까요?

 

반응형