본문 바로가기

인공지능/Lang Chain

LangChain을 이용한 MP3 음성 파일 STT 구현하기

728x90
반응형

LangChain을 이용한 MP3 음성 파일 STT 구현하기

LangChain과 OpenAI의 Whisper 모델을 사용하여 MP3 음성 파일을 텍스트로 변환하는 STT(Speech-to-Text) 예제를 구현하는 방법을 소개하겠습니다.

LangChain을 이용한 MP3 음성 파일 STT 구현하기

1. 예제 프로젝트 개요

이 프로젝트의 목표는 다음과 같습니다.

  • LangChain을 사용하여 MP3 파일을 텍스트로 변환
  • OpenAI의 Whisper 모델 활용
  • 간단하고 효과적인 STT 시스템 구축

2. 필요한 라이브러리 설치

먼저, 필요한 라이브러리를 설치해야 합니다. 터미널에서 다음 명령어를 실행하세요.

pip install langchain langchain-openai langchain-community python-dotenv openai-whisper pydub ffmpeg-python

또한, FFmpeg가 시스템에 설치되어 있어야 합니다.

3. 코드 구현

다음은 LangChain을 사용하여 MP3 파일을 텍스트로 변환하는 ex6-STT Python 코드입니다.

import os
from dotenv import load_dotenv
from langchain_openai import OpenAI
from langchain_community.document_loaders.generic import GenericLoader
from langchain_community.document_loaders.parsers import OpenAIWhisperParser

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

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

def transcribe_audio(file_path):
    # GenericLoader를 사용하여 오디오 파일 로드
    loader = GenericLoader.from_filesystem(
        file_path,
        glob="*",
        suffixes=[".mp3"],
        parser=OpenAIWhisperParser()
    )

    # 오디오 파일 트랜스크립션
    docs = loader.load()

    # 트랜스크립션 결과 반환
    return docs[0].page_content if docs else "트랜스크립션 실패"

# 메인 실행 부분
if __name__ == "__main__":
    audio_file_path = input("트랜스크립션할 MP3 파일의 경로를 입력하세요: ")

    if not os.path.exists(audio_file_path):
        print("파일을 찾을 수 없습니다. 경로를 확인해주세요.")
    else:
        print("트랜스크립션을 시작합니다...")
        try:
            transcript = transcribe_audio(audio_file_path)
            print("\n트랜스크립션 결과:")
            print(transcript)
        except Exception as e:
            print(f"오류 발생: {e}")
            print("FFmpeg가 설치되어 있는지 확인해주세요.")

4. 코드 설명

  1. 환경 설정:
    • load_dotenv()를 사용하여 .env 파일에서 OpenAI API 키를 로드합니다.
    • API 키가 설정되어 있는지 확인합니다.
  2. transcribe_audio 함수:
    • GenericLoader를 사용하여 MP3 파일을 로드합니다.
    • OpenAIWhisperParser를 사용하여 오디오를 텍스트로 변환합니다.
    • 변환된 텍스트를 반환합니다.
  3. 메인 실행 부분:
    • 사용자로부터 MP3 파일 경로를 입력받습니다.
    • 파일 존재 여부를 확인합니다.
    • 트랜스크립션을 실행하고 결과를 출력합니다.
    • 오류 처리를 통해 예외 상황에 대응합니다.

5. 실행 방법

1..env 파일에 OpenAI API 키를 설정합니다:

   OPENAI_API_KEY=your_api_key_here

2.스크립트를 실행합니다:

   python ex6-STT.py

3.프롬프트가 표시되면 MP3 파일의 경로를 입력합니다.

LangChain을 이용한 MP3 음성 파일 STT 구현하기

6. 주의사항 및 팁

  • OpenAI API 사용에 따른 비용이 발생할 수 있으니 주의하세요.
  • 큰 오디오 파일의 경우 처리 시간이 오래 걸릴 수 있습니다.
  • Whisper 모델의 다양한 언어 지원을 활용해 보세요.
  • 프로덕션 환경에서는 적절한 에러 핸들링과 로깅을 추가하는 것이 좋습니다.

이 프로젝트를 통해 LangChain과 OpenAI Whisper를 사용하여 간단하지만 강력한 STT 시스템을 구현해 보았습니다. 이 기술은 음성 데이터 분석, 자동 자막 생성, 음성 명령 처리 등 다양한 애플리케이션에 활용될 수 있습니다.

LangChain의 유연성과 OpenAI Whisper의 강력한 성능을 결합함으로써, 개발자들은 복잡한 음성 처리 작업을 비교적 쉽게 구현할 수 있게 되었습니다. 이는 AI 기술의 접근성을 높이고, 더 많은 혁신적인 애플리케이션의 개발을 가능하게 합니다. 다른 AI 기술과 결합하여 더욱 강력하고 유용한 애플리케이션을 만들어 볼 수 있을 것입니다.

반응형