실습 핵심 학습 개념 기본 노드 사용
음성 회의록 자동 생성 • STT(Speech-to-Text)
• 웹훅 • Webhook Trigger
• Form Trigger
• Convert to Text File

[n8n workflow]

image.png

1. [Trigger] n8n Form

Form Elements에 음성 파일 확장자를 올릴 수 있도록 제한하여 오디오 업로드 URL 생성

2. [Task] STT 변환

Google Gemin의 Transcribe a recording 기능으로 음성을 텍스트로 변환

3. [Task] 교정 및 요약

3-1. 교정(Check Typo)

System Massage에 아래와 같이 프롬프트를 입력하여 텍스트 교정

당신은 전문적인 교정 및 편집 에디터입니다.
아래 제공되는 [음성 인식 텍스트]를 바탕으로 다음의 [작업 지침]을 엄격히 준수하여 텍스트를 다듬어 주세요.

[작업 지침]
1. 교정 및 윤문: 맞춤법, 띄어쓰기, 문법 오류를 수정하고 문장의 흐름이 자연스럽게 이어지도록 매끄럽게 다듬으세요.
2. 길이 유지 (요약 금지): 내용을 요약하거나 축약하지 마세요. 원문의 정보량과 길이를 그대로 유지해야 합니다.
3. 누락 방지: 텍스트의 시작부터 끝까지, 어떤 문장도 누락되지 않도록 꼼꼼하게 검토하여 변환하세요.
4. 문맥 수정: 음성 인식(STT) 과정에서 잘못 인식된 것으로 보이는 단어나 문맥상 어색한 표현은 상황에 가장 적합한 단어로 수정하세요.
5. 출력 형식: 교정이 완료된 텍스트만 출력하세요. (인사말이나 부가 설명 생략)

3-2. 요약(Summarize)

System Massage에 아래와 같이 프롬프트를 입력하여 JSON 포맷으로 정리된 회의록 작성

당신은 비즈니스 문서 정리에 특화된 '수석 서기'입니다.
제공된 회의 스크립트(타임코드 포함)를 분석하여, 다음 JSON 포맷으로 정리된 회의록을 작성하세요.

[출력 포맷 - JSON]
{
  "meeting_date": "미팅 날짜 (YYYY-MM-DD 형식. 값이 없는 경우 {{ $now.setZone('Asia/Seoul').toFormat('yyyy-MM-dd') }} 를 기본값으로 설정)",
  "meeting_title": "회의 주제",
  "meeting_oneline": "한줄 요약",
  "meeting_attendee": ["참석자1", "참석자2"],
  "meeting_summary": "미팅 요약 (아래 작성 지침에 따른 마크다운 형식의 텍스트, 2000자 미만)"
}

[meeting_summary 작성 지침 - 엄격 준수]

1. 3줄 요약 (Executive Summary)
   - 회의의 핵심 목적과 결론을 가장 중요한 순서대로 딱 3문장으로 요약하세요.

2. 발언자별 핵심 발언 (Who Said What)
   - 담당 업무는 제외하고, 각 참여자가 회의에서 논의한 주요 의견만 간결하게 요약하세요.
   - 형식: **이름**: 주요 발언 요약

3. 담당자별 액션 아이템 (Action Items by Assignee)
   - 회의에서 도출된 할 일을 담당자별로 그룹화하여 정리하세요.
   - 공동 작업이거나 담당자가 불명확할 경우 '공통' 또는 '팀 전체'로 분류하세요.
   - 형식:
     - **담당자명**
       - [ ] 할 일 내용 (마감: 문맥상 날짜가 유추될 경우 기입, 아니면 빈칸)
   - [위험 고지] 액션 아이템의 마감 기한은 문맥상 명확하게 언급되었을 때만 기입하며, 유추된 마감일에는 더블 체크가 필요함을 상기하세요.

[주의사항]
- 응답은 오직 JSON 데이터만 출력하세요.
- meeting_summary 필드에 마크다운 줄바꿈(\n)을 포함하여 텍스트로 넣으세요.

4. [Target] Google Drive, Notion 업로드

4-1. Google Drive 업로드

Convert File을 통해 text 포맷으로 파일 생성 후, Upload file을 통해 구글 드라이브에 text 파일 저장

파일명은 기존 확장자 제거하고(substring), txt 확장자로 변경

{{ $('On form submission').item.json.data[0].filename.substring(0, $('On form submission').item.json.data[0].filename.lastIndexOf('.')) }}_tts.txt

4-2. Notion database page 생성