멀티모달 AI · 음성 인식 · AI 에이전트
음성 회의록 에이전트 파이프라인 구성하기
오디오 입력을 전사하고 긴 텍스트를 나눈 뒤 구조화된 회의록으로 저장하는 단계별 파이프라인을 설계합니다.
무료 공개 · 최근 수정
여러 모델을 한 작업으로 연결하기
“멀티모달”은 한 모델이 텍스트와 이미지를 함께 이해하는 능력을 가리키기도 하고, 서로 다른 형식을 다루는 여러 모델과 프로그램을 연결한 시스템을 뜻하기도 합니다. 회의 음성에서 회의록을 만드는 작업은 후자에 가깝습니다. 음성 인식 모델은 소리를 글로 바꾸는 데 강하고, LLM은 전사문에서 의제와 결정 사항을 정리하는 데 적합합니다. 파일 저장은 다시 결정적인 프로그램 코드가 맡습니다.
회의 음성을 하나의 LLM 호출로 처리하려 하면 어느 단계에서 정보가 사라졌는지 알기 어렵고 긴 입력을 다시 처음부터 계산해야 합니다. 오디오를 텍스트로 전사하고, 긴 전사를 처리 가능한 크기로 나누며, LLM이 결정 사항과 할 일을 구조화한 뒤 파일로 저장하는 멀티모달 파이프라인으로 나누면 각 산출물을 검사하고 실패한 단계만 재실행할 수 있습니다.
그림: 각 단계의 산출물을 검증한 뒤 다음 단계로 전달합니다.
각 단계는 단계별 검증을 거쳐야 합니다.
- 전사 단계는 오디오 형식, 언어와 잡음의 영향을 받습니다.
- 분할 단계는 발화 문맥과 화자 경계를 끊을 수 있습니다.
- 요약 단계는 결정되지 않은 내용을 결정 사항처럼 만들 수 있습니다.
- 저장 단계는 기존 파일을 덮어쓰거나 민감 정보를 남길 수 있습니다.
단계 사이에는 명시적인 계약이 필요합니다. 전사 결과에는 텍스트만이 아니라 시작·끝 시각, 가능하면 화자 식별과 신뢰도를 남깁니다. 분할기는 이 메타데이터를 보존한 채 겹치는 구간을 만들고, 요약기는 원문 위치를 참조하는 구조화된 결과를 반환합니다. 그래야 최종 회의록의 결정 사항을 실제 발화와 대조할 수 있습니다.
입력 파일의 해시와 각 단계의 버전을 기록하면 같은 오디오를 불필요하게 다시 전사하지 않아도 됩니다. 중간 산출물을 체크포인트로 저장하되 오디오와 전사문에 민감 정보가 있다는 점을 고려해 암호화, 접근 권한과 만료 정책을 적용합니다.
구조화된 결과부터 정하기
모델에 긴 회의록을 자유 형식으로 요청하기보다 출력 스키마를 먼저 정합니다.
from typing import TypedDict
class MeetingNote(TypedDict):
agenda: list[str]
decisions: list[str]
action_items: list[dict[str, str]]
unresolved: list[str]각 청크의 부분 요약을 만든 뒤 전체 결과를 합치고, 원문 타임스탬프와 대조할 수 있는 참조를 남깁니다. 담당자나 기한이 원문에 없으면 추측하지 않고 미정 값으로 둡니다.
스키마는 단지 출력 모양을 예쁘게 만드는 장치가 아닙니다. 필수 필드와 자료형을 검사해 다음 단계가 안전하게 사용할 수 있게 하고, 검증에 실패하면 자유 형식 텍스트를 그대로 저장하지 않고 재시도하거나 사람에게 보냅니다. 여러 청크의 결과를 합칠 때는 같은 결정 사항을 중복 제거하고, 서로 충돌하는 내용은 임의로 하나를 고르지 말고 unresolved에 남깁니다.
긴 회의에서는 청크별 요약이 전체 맥락을 잃을 수 있습니다. 먼저 의제나 화자 전환을 기준으로 나누고, 인접 구간을 조금 겹치며, 마지막 병합 단계에 전체 의제와 부분 결과를 함께 제공합니다. 이렇게 해도 중요한 결론이 보존되는지는 실제 회의 샘플과 사람이 작성한 기준 회의록으로 평가해야 합니다.
자동화 범위 제한하기
회의록 초안 생성까지는 자동화하더라도 외부 공유와 업무 시스템 등록은 사람이 원문 근거와 수신자를 확인한 뒤 실행하는 편이 안전합니다. 특히 담당자와 기한은 실제 약속으로 이어지므로 모델이 추정한 값을 확정 정보처럼 보내지 않습니다. 수정된 최종본과 모델 초안을 구분해 보관하면 이후 품질 평가에도 사용할 수 있습니다.
오디오와 전사에는 개인정보가 포함될 수 있으므로 저장 위치, 보존 기간과 접근 권한을 정합니다. 로컬 모델을 사용해도 원격 전사 API나 저장소를 결합하면 데이터가 외부로 전송될 수 있습니다. 처리 시간을 줄이기 위해 병렬화할 때도 같은 파일을 중복 저장하거나 청크 순서가 뒤섞이지 않도록 식별자를 유지합니다.
단계별 시간, 입력 식별자와 출력 상태를 LangSmith 실행 추적 같은 관측 도구로 기록하면 병목과 실패 위치를 찾기 쉽습니다. 다만 원문 전체 대신 필요한 메타데이터와 안전하게 마스킹한 표본을 기록해 관측 데이터가 새로운 유출 경로가 되지 않게 합니다.
참고 문서
설명이 어렵거나 잘못된 부분을 발견하셨나요?
문서 수정 의견 보내기