반응형
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.")
코드 설명
- 환경 설정:
load_dotenv()
를 사용하여 .env 파일에서 OpenAI API 키를 로드합니다.- API 키가 설정되어 있는지 확인합니다.
- 텍스트 생성 함수 (
generate_text
):- LangChain의
OpenAI
모델을 초기화합니다. - PromptTemplate을 사용하여 동적 프롬프트를 생성합니다.
- LLMChain을 생성하고 실행하여 텍스트를 생성합니다.
- LangChain의
- TTS 함수 (
text_to_speech
):- gTTS를 사용하여 텍스트를 음성으로 변환합니다.
- 생성된 음성을 MP3 파일로 저장합니다.
- 메인 실행 부분:
- 사용자로부터 주제를 입력받습니다.
- 입력된 주제로 텍스트를 생성합니다.
- 생성된 텍스트를 음성으로 변환합니다.
실행 방법
.env
파일을 생성하고 OpenAI API 키를 추가합니다:OPENAI_API_KEY=your_api_key_here
- 코드를 Python 파일(예:
langchain_tts.py
)로 저장합니다. - 터미널에서 다음 명령어로 실행합니다:
python langchain_tts.py
- 프롬프트가 표시되면 원하는 주제를 입력합니다.
- 프로그램이 실행되면 AI가 생성한 텍스트가 표시되고, 해당 텍스트를 음성으로 변환한 MP3 파일이 생성됩니다.
확장 가능성
이 기본 시스템을 바탕으로 다양한 확장이 가능합니다:
- 웹 인터페이스 추가
- 다양한 LLM 모델 지원
- 음성 스타일 커스터마이징
- 생성된 콘텐츠 저장 및 관리 기능
이 튜토리얼에서는 LangChain과 gTTS를 결합하여 동적인 TTS 시스템을 구축해 보았습니다. 이 시스템은 AI 생성 콘텐츠를 음성으로 변환하는 강력한 도구가 될 수 있습니다. AI와 음성 기술의 결합은 교육, 엔터테인먼트, 접근성 향상 등 다양한 분야에서 혁신적인 애플리케이션을 만들 수 있는 가능성을 제공합니다. 이 기술을 활용하여 창의적인 프로젝트를 시작해 보는 것은 어떨까요?
반응형
'인공지능 > Lang Chain' 카테고리의 다른 글
LangChain 랭체인의 구조 (0) | 2024.06.30 |
---|---|
LangChain을 이용한 MP3 음성 파일 STT 구현하기 (0) | 2024.06.29 |
간단한 Python TTS 애플리케이션 만들기: gTTS 활용하기 (0) | 2024.06.29 |
LangChain으로 만드는 텍스트 요약 예제 (0) | 2024.06.29 |
LangChain으로 만드는 간단한 질문-답변 시스템 (0) | 2024.06.29 |
LangChain 소개와 가장 간단한 예제 (0) | 2024.06.29 |