Search

26. OpenAI Whisper를 활용한 영상 요약

섹션
8. Workflow + Agent: 영상 요약 에이전트

OpenAI Whisper를 활용한 영상 요약

프로젝트 목적

비디오 요약 시스템

•
비디오 파일에서 Whisper 모델로 음성 추출
•
OpenAI 제공 STT 엔진 활용
•
MP3, WAV 음성 파일뿐만 아니라 비디오도 처리 가능
•
음성만 추출하여 텍스트로 변환

실제 활용 사례

•
강의 자료 제작에 사용하는 코드
•
촬영 → 비디오 파일 생성 → Whisper 실행 → 개요 작성 → 강의 자료 활용
•
현재 제공되는 강의 자료도 이 방식으로 제작

구현 방법

LangChain을 사용하지 않는 Whisper 처리 방식

•
Whisper 용량 제한(5MB 또는 50MB) 때문에 헬퍼 함수 구현
•
큰 파일을 작은 사이즈로 나누어 whipser를 여러번 호출해야함

Whisper Parser 지원 형식

•
다양한 확장자 지원
•
오디오 파일 및 mp4, mpeg 비디오 파일 지원
•
Azur OpenAIWhisperParser와 OpenAIWhisperParser 존재

OpenAI vs AzureOpenAI 선택

•
OpenAIWhisperParser 사용 결정
•
OpenAI: Tier 1에서 분당 요청 500회 증가
•
Azure OpenAI: 요청 증가를 위한 별도 승인 필요 (1주 이상 소요)
•
OpenAI: 5달러 결제로 Tier 1 획득 가능

워크플로우 vs 에이전트 선택

워크플로우 선택 이유

•
순서가 명확한 경우 워크플로우 적합
•
예측이 어려운 경우 에이전트 적합
•
현재 작업: 비디오 → Whisper → LLM 순서가 명확
•
따라서 워크플로우가 더 적합

코드 구현

상태 정의

•
file_path: 비디오 파일 경로
•
transcript: Whisper로 추출한 텍스트
•
outline: LLM으로 요약한 내용

클래스 선언

•
LLM 클래스 선언
•
OpenAI API 키를 .env에 저장하여 별도 전달 불필요
•
Whisper 클래스도 OpenAI 모델이므로 동일한 환경 변수 사용

노드 생성

•
공식 문서에 따라 오디오 blob 생성 후 OpenAI 파일로 전달
•
Documents는 리스트가 아닌 이터레이터(제너레이터)
•
transcript 저장 방식으로 처리

개요 생성 노드

•
기본 메시지 대신 LCEL 문법 사용
•
스트링 파서 추가로 LLM 실행 결과를 문자열로 변환
•
invoke를 통해 transcript가 outline prompt에 입력

테스트 및 결과

테스트 비디오

•
이전 강의의 네이버 뉴스 스크래핑 워크플로우 비디오 사용
•
파서 제공 기능으로 분할 및 텍스트 추출
•
Vrew 편집기 사용으로 인한 1, 2, 3 편집 포인트 표시

결과 확인

•
Transcript에서 음성 인식 결과 확인
•
영어로 개요 생성 (프롬프트 변경으로 한국어 가능)

Notion 연동

Notion 설정

•
페이지 생성 후 API 키 발급
•
Connections에서 API 권한 확인
•
데이터베이스 생성 및 연결
•
프로퍼티명을 Title로 변경

API 구현

•
Notion API는 POST 요청으로 데이터베이스 입력
•
데이터베이스 ID 사용
•
상태에 데이터베이스 ID와 타이틀 추가
•
Notion 업로드 노드 생성

실행 결과

•
음성 인식 완료 후 한국어 개요 생성 성공
•
Notion에 성공적으로 업로드
•
프롬프트 변경으로 한국어 개요 작성 확인

개선 필요사항

마크다운 포맷팅 문제

•
현재 마크다운 문법으로 출력
•
Notion에서 볼드체, 불릿 포인트 등 제대로 표시되지 않음
•
함수로 로직 구현보다는 MCP 사용이 더 효율적
•
다음 강의에서 MCP 활용 예정