프로젝트 배경
1)문제점
- 비정형 데이터의 검색 불가: 사내에 축적되는 법률 상담 녹취록(음성)이나 스캔된 계약서, 메신저 캡처(이미지) 등은 텍스트 검색이 불가능하여 정보 활용도가 낮음.
- 수동 업무의 비효율성: 녹취 내용을 확인하거나 계약서의 중요 조항을 찾기 위해 담당자가 일일이 파일을 열어보거나 청취해야 하여 많은 시간이 소요됨.
- 정보 파편화 및 유실 위험: 개인 PC에 산재된 비정형 파일들은 내용 파악이 어려워 부서 이동이나 퇴사 시 중요한 업무 맥락(Context)이 유실될 위험이 큼.
2) 프로젝트 목표
- 통합 검색을 위한 데이터 텍스트화 (Digitization):
- STT (Speech-to-Text): WhisperX 모델을 활용하여 음성 파일을 텍스트로 자동 변환하고, 화자 분리(Diarization)를 통해 '누가 언제 말했는지' 식별 가능한 데이터로 가공.
- OCR (Optical Character Recognition): 채팅 스크린샷, PDF 계약서 등을 Google Gemma 모델을 통해 분석하여 검색 가능한 JSON 및 HTML 구조로 변환.
- AI 기반 답변 생성을 위한 문서 구조화:
- 단순 텍스트 추출을 넘어, 계약서의 표(Table)나 조항, 채팅의 발화자(Left/Right) 구조를 인식하여 AI가 내용을 이해하고 답변할 수 있는 형태(Machine-readable)로 가공.
- 문서 유실 방지 및 보존 시스템 구축:
- FastAPI 기반의 서버 모듈을 구축하여 사용자가 파일을 업로드하는 즉시 분석 및 저장이 이루어지는 자동화 파이프라인 구현.
3) 주안점
- 유사 파일명 및 내용 분석을 통한 정확한 검색 결과 제공:
- 전처리 기술 적용: 오디오 볼륨 정규화(Librosa) 및 이미지 노이즈 제거/말풍선 추출(OpenCV) 을 통해 원본 품질이 낮아도 정확한 텍스트를 추출하여 검색 정확도 향상.
- LLM 기반 후처리: 추출된 텍스트의 오탈자를 교정하고, 'Speaker_00'과 같은 단순 라벨을 문맥에 맞춰 '변호사/의뢰인'으로 자동 변환하여 검색 용이성 증대.
- 업무 연속성을 위한 문서 중앙화 및 접근성 개선:
- 다중 포맷 지원: 분석된 결과를 SRT(자막), JSON, HTML, Text 등 다양한 포맷으로 자동 변환 및 ZIP 압축 제공하여, 사내 검색 엔진이나 다른 시스템이 쉽게 데이터를 가져갈 수 있도록 호환성 확보.
- 보안 강화를 위한 문서 접근 권한 관리:
- 파일 업로드 시 허용된 확장자(PDF, JPG 등) 및 용량 제한을 둔 보안 로직 적용 및 서버 내 임시 파일 자동 삭제 처리로 데이터 유출 방지.
- 비정형 데이터의 검색 불가: 사내에 축적되는 법률 상담 녹취록(음성)이나 스캔된 계약서, 메신저 캡처(이미지) 등은 텍스트 검색이 불가능하여 정보 활용도가 낮음.
- 수동 업무의 비효율성: 녹취 내용을 확인하거나 계약서의 중요 조항을 찾기 위해 담당자가 일일이 파일을 열어보거나 청취해야 하여 많은 시간이 소요됨.
- 정보 파편화 및 유실 위험: 개인 PC에 산재된 비정형 파일들은 내용 파악이 어려워 부서 이동이나 퇴사 시 중요한 업무 맥락(Context)이 유실될 위험이 큼.
2) 프로젝트 목표
- 통합 검색을 위한 데이터 텍스트화 (Digitization):
- STT (Speech-to-Text): WhisperX 모델을 활용하여 음성 파일을 텍스트로 자동 변환하고, 화자 분리(Diarization)를 통해 '누가 언제 말했는지' 식별 가능한 데이터로 가공.
- OCR (Optical Character Recognition): 채팅 스크린샷, PDF 계약서 등을 Google Gemma 모델을 통해 분석하여 검색 가능한 JSON 및 HTML 구조로 변환.
- AI 기반 답변 생성을 위한 문서 구조화:
- 단순 텍스트 추출을 넘어, 계약서의 표(Table)나 조항, 채팅의 발화자(Left/Right) 구조를 인식하여 AI가 내용을 이해하고 답변할 수 있는 형태(Machine-readable)로 가공.
- 문서 유실 방지 및 보존 시스템 구축:
- FastAPI 기반의 서버 모듈을 구축하여 사용자가 파일을 업로드하는 즉시 분석 및 저장이 이루어지는 자동화 파이프라인 구현.
3) 주안점
- 유사 파일명 및 내용 분석을 통한 정확한 검색 결과 제공:
- 전처리 기술 적용: 오디오 볼륨 정규화(Librosa) 및 이미지 노이즈 제거/말풍선 추출(OpenCV) 을 통해 원본 품질이 낮아도 정확한 텍스트를 추출하여 검색 정확도 향상.
- LLM 기반 후처리: 추출된 텍스트의 오탈자를 교정하고, 'Speaker_00'과 같은 단순 라벨을 문맥에 맞춰 '변호사/의뢰인'으로 자동 변환하여 검색 용이성 증대.
- 업무 연속성을 위한 문서 중앙화 및 접근성 개선:
- 다중 포맷 지원: 분석된 결과를 SRT(자막), JSON, HTML, Text 등 다양한 포맷으로 자동 변환 및 ZIP 압축 제공하여, 사내 검색 엔진이나 다른 시스템이 쉽게 데이터를 가져갈 수 있도록 호환성 확보.
- 보안 강화를 위한 문서 접근 권한 관리:
- 파일 업로드 시 허용된 확장자(PDF, JPG 등) 및 용량 제한을 둔 보안 로직 적용 및 서버 내 임시 파일 자동 삭제 처리로 데이터 유출 방지.
프로젝트 성과
비정형 데이터(이미지·음성)의 구조화 자동화 파이프라인 구축
기존에 수작업으로 진행하던 법률 녹취록 작성과 계약서/채팅 내역 입력을 자동화하기 위해 Python 기반의 통합 API 서버를 구축했습니다.
도메인 특화 전처리(Preprocessing) 알고리즘을 통한 인식 정확도 향상
범용 AI 모델의 한계를 극복하기 위해, 입력 데이터의 특성(오디오, 이미지)에 맞춘 자체 전처리 로직을 개발하여 인식률을 대폭 개선했습니다.
LLM(Gemma) 기반의 문맥 인식 및 데이터 고도화
단순한 텍스트 추출을 넘어, 생성형 AI(Google Gemma-3-27B)를 후처리 단계에 도입하여 데이터의 의미를 파악하고 가독성을 높였습니다.
업무 확장성을 고려한 다중 포맷 지원 및 API 서버 개발
개발된 모듈이 사내의 다양한 시스템(검색 엔진, 데이터베이스 등)과 유연하게 연동될 수 있도록 확장성 있는 백엔드 시스템을 설계했습니다.
핵심 기능
LLM 기반 후처리(Post-processing) 및 고도화
STT: 원본 텍스트의 무결성을 유지하도록 프롬프트 엔지니어링을 적용
OCR: JSON 객체 트리(Heading, Paragraph, Table)로 변환하여 데이터베이스 적재가 가능한 형태로 가공
OCR: JSON 객체 트리(Heading, Paragraph, Table)로 변환하여 데이터베이스 적재가 가능한 형태로 가공
API 서버 구축 및 다중 포맷 출력 구현
비동기 웹 서버를 구축하고, 파일 확장자 검증 및 용량 제한(16MB) 등의 보안 로직을 적용
결과물을 JSON, Text, SRT, HTML 등 다양한 형식으로 변환하고, 다중 포맷 요청 시 ZIP 파일을 제공
결과물을 JSON, Text, SRT, HTML 등 다양한 형식으로 변환하고, 다중 포맷 요청 시 ZIP 파일을 제공
진행 단계
요구사항 분석 및 시스템 아키텍처 설계
2025.10.
법률 상담 녹취록의 화자 분리(Diarization)와 채팅/계약서 등 비정형 문서의 텍스트 추출 자동화 필요성을 정의
데이터 전처리(Preprocessing) 알고리즘 개발
2025.10.
STT: 리샘플링 및 볼륨 정규화(Peak Normalization)를 수행 전처리 모듈을 구현
OCR: 채팅 스크린샷의 말풍선 영역 자동 감지, 배경 노이즈 제거, CLAHE 적용, 분할 화면 로직 개발
OCR: 채팅 스크린샷의 말풍선 영역 자동 감지, 배경 노이즈 제거, CLAHE 적용, 분할 화면 로직 개발
AI 모델 통합 및 핵심 엔진 구현
2025.11.
STT: WhisperX 모델로 음성을 텍스트로 변환하고, Pyannote 모델을 연동하여 화자 분리 파이프라인 구축
OCR: Gemma3 모델을 활용, 이미지와 PDF 텍스트 추출하고, 표나 문단 구조 파싱 구현
OCR: Gemma3 모델을 활용, 이미지와 PDF 텍스트 추출하고, 표나 문단 구조 파싱 구현
프로젝트 상세
법률·비즈니스 업무 자동화를 위한 AI 기반 STT 및 OCR 솔루션 개발
1) 포트폴리오 소개
- 서비스 카테고리: AI (Legal-Tech, 업무 자동화), B2B 솔루션
- 메인 타깃: 많은 양의 녹취록과 문서를 처리해야 하는 변호사, 법률 사무소 및 기업 실무자
- 소개: 법률 상담 녹취록의 화자 분리 및 텍스트 변환(STT)과 채팅 내역·계약서·이체내역서 등 비정형 문서의 데이터 구조화(OCR)를 자동화하여 업무 생산성을 극대화하는 Python 기반의 AI 모듈 및 API 서버 개발
2) 작업 범위
- 개발 참여 범위:
- STT/OCR 핵심 엔진 모듈 및 데이터 처리 파이프라인 개발
- RESTful API 서버 구축 (FastAPI)
- AI 모델(WhisperX, Gemma, Pyannote) 통합 및 프롬프트 엔지니어링
- 이미지 및 오디오 전처리 알고리즘 구현
- 지원 환경:
- Language: Python
- Framework: FastAPI
- AI/ML: WhisperX, Pyannote-audio (Diarization), Google Gemma-3-27B (LLM), OpenCV, Librosa
- Format: JSON, HTML, SRT, Text, ZIP
3) 주요 업무
- 지능형 음성 인식 및 화자 분리 (STT 파이프라인)
- 오디오 전처리: Librosa를 활용한 오디오 리샘플링 및 볼륨 정규화(Peak Normalization)로 인식률 향상
- 화자 분리(Diarization): WhisperX와 Pyannote 모델을 연동하여 '누가, 언제' 말했는지 식별하고, 법률 상담 특성에 맞춰 화자 수 고정(2인) 등 파라미터 최적화
- LLM 기반 화자 식별 고도화: Gemma LLM을 활용해 단순 화자 라벨(Speaker_00)을 문맥에 따라 '변호사', '의뢰인' 등의 실제 역할로 자동 추론 및 변환 (텍스트 무결성 유지 조건 적용)
- 다중 포맷 출력: 변환된 결과물을 사용 목적에 따라 SRT(자막), JSON, Text 형식으로 자동 변환 및 ZIP 압축 제공
- 문서 유형별 맞춤형 OCR 분석
- 채팅 스크린샷 분석: OpenCV 기반 이미지 전처리(CLAHE, 배경 제거)를 통해 말풍선 영역을 자동 감지하고, 발화 주체(나의 메시지 vs 상대방 메시지)를 위치(Left/Right) 기반으로 자동 분류
- 계약서 및 서류 구조화: PDF/이미지 형태의 계약서와 이체내역서를 Gemma 모델을 통해 HTML 구조(Table, Header 등)로 파싱하여 데이터베이스화 가능한 JSON 형태로 변환
- 특수 전처리 알고리즘: 모바일 메신저 캡처 시 발생하는 노이즈 제거, 분할 화면 감지, 말풍선 확대 등을 통한 인식 정확도 개선
4) 주안점
- 도메인 특화 정확도 향상: 범용 STT/OCR의 한계를 넘기 위해 법률 상담(화자 역할 구분)과 메신저 캡처(말풍선 구조 인식)라는 특정 도메인에 맞춰 전처리 및 후처리 로직을 고도화함
- LLM을 활용한 문맥 이해: 단순 텍스트 추출을 넘어, 생성형 AI(Gemma)에게 '전문 편집자' 페르소나를 부여하여 원본을 훼손하지 않으면서도 화자 라벨링과 문서 구조(표, 제목)를 정확히 파악하도록 프롬프트 엔지니어링 적용
- 확장성 있는 모듈 구조: processor, preprocessor, analyzer 등으로 역할을 명확히 분리하고 Strategy 패턴을 적용하여, 추후 새로운 문서 양식이나 오디오 포맷이 추가되더라도 유연하게 대응 가능한 아키텍처 설계
- 비동기 처리 및 리소스 관리: FastAPI의 비동기 처리를 활용하고, 대용량 파일 처리 시 메모리 누수를 방지하기 위한 임시 파일 관리 및 GPU 캐시 정리 로직 적용
1) 포트폴리오 소개
- 서비스 카테고리: AI (Legal-Tech, 업무 자동화), B2B 솔루션
- 메인 타깃: 많은 양의 녹취록과 문서를 처리해야 하는 변호사, 법률 사무소 및 기업 실무자
- 소개: 법률 상담 녹취록의 화자 분리 및 텍스트 변환(STT)과 채팅 내역·계약서·이체내역서 등 비정형 문서의 데이터 구조화(OCR)를 자동화하여 업무 생산성을 극대화하는 Python 기반의 AI 모듈 및 API 서버 개발
2) 작업 범위
- 개발 참여 범위:
- STT/OCR 핵심 엔진 모듈 및 데이터 처리 파이프라인 개발
- RESTful API 서버 구축 (FastAPI)
- AI 모델(WhisperX, Gemma, Pyannote) 통합 및 프롬프트 엔지니어링
- 이미지 및 오디오 전처리 알고리즘 구현
- 지원 환경:
- Language: Python
- Framework: FastAPI
- AI/ML: WhisperX, Pyannote-audio (Diarization), Google Gemma-3-27B (LLM), OpenCV, Librosa
- Format: JSON, HTML, SRT, Text, ZIP
3) 주요 업무
- 지능형 음성 인식 및 화자 분리 (STT 파이프라인)
- 오디오 전처리: Librosa를 활용한 오디오 리샘플링 및 볼륨 정규화(Peak Normalization)로 인식률 향상
- 화자 분리(Diarization): WhisperX와 Pyannote 모델을 연동하여 '누가, 언제' 말했는지 식별하고, 법률 상담 특성에 맞춰 화자 수 고정(2인) 등 파라미터 최적화
- LLM 기반 화자 식별 고도화: Gemma LLM을 활용해 단순 화자 라벨(Speaker_00)을 문맥에 따라 '변호사', '의뢰인' 등의 실제 역할로 자동 추론 및 변환 (텍스트 무결성 유지 조건 적용)
- 다중 포맷 출력: 변환된 결과물을 사용 목적에 따라 SRT(자막), JSON, Text 형식으로 자동 변환 및 ZIP 압축 제공
- 문서 유형별 맞춤형 OCR 분석
- 채팅 스크린샷 분석: OpenCV 기반 이미지 전처리(CLAHE, 배경 제거)를 통해 말풍선 영역을 자동 감지하고, 발화 주체(나의 메시지 vs 상대방 메시지)를 위치(Left/Right) 기반으로 자동 분류
- 계약서 및 서류 구조화: PDF/이미지 형태의 계약서와 이체내역서를 Gemma 모델을 통해 HTML 구조(Table, Header 등)로 파싱하여 데이터베이스화 가능한 JSON 형태로 변환
- 특수 전처리 알고리즘: 모바일 메신저 캡처 시 발생하는 노이즈 제거, 분할 화면 감지, 말풍선 확대 등을 통한 인식 정확도 개선
4) 주안점
- 도메인 특화 정확도 향상: 범용 STT/OCR의 한계를 넘기 위해 법률 상담(화자 역할 구분)과 메신저 캡처(말풍선 구조 인식)라는 특정 도메인에 맞춰 전처리 및 후처리 로직을 고도화함
- LLM을 활용한 문맥 이해: 단순 텍스트 추출을 넘어, 생성형 AI(Gemma)에게 '전문 편집자' 페르소나를 부여하여 원본을 훼손하지 않으면서도 화자 라벨링과 문서 구조(표, 제목)를 정확히 파악하도록 프롬프트 엔지니어링 적용
- 확장성 있는 모듈 구조: processor, preprocessor, analyzer 등으로 역할을 명확히 분리하고 Strategy 패턴을 적용하여, 추후 새로운 문서 양식이나 오디오 포맷이 추가되더라도 유연하게 대응 가능한 아키텍처 설계
- 비동기 처리 및 리소스 관리: FastAPI의 비동기 처리를 활용하고, 대용량 파일 처리 시 메모리 누수를 방지하기 위한 임시 파일 관리 및 GPU 캐시 정리 로직 적용


STT 및 OCR 처리 파이프라인 구축

음성 파일 STT 처리 과정

OCR 처리 과정

채팅 앱 이미지 OCR 전처리

영수증 및 명세서 표(table) 처리 과정

영수증 및 명세서 표(table) 처리 과정

STT 및 OCR API 처리 성능 측정




