들어가며
완성도 팀에서는 회의를 자주 한다. 처음엔 담당자가 회의 중 수기로 기록했다. 그런데 문제가 있었다.
- 담당자의 수작업이라 기록 품질이 들쭉날쭉
- 중요한 Action Item을 놓치기도 함
- 회의가 길어질수록 메모 담당의 부하가 커짐
이걸 자동화할 수 없을까? 그렇게 시작된 게 회의 자동 기록 프로젝트다. 녹음 → 텍스트 변환(STT) → AI 요약 → 자동 배포. 구상 자체는 단순했지만, 진짜 핵심은 "어느 STT를 쓸 것인가"였다.
찾아보니 STT 기술 자체는 이미 성숙해 있었다. 나는 STT를 잘 모르는 상태였는데, AI와 함께 기획을 탄탄히 잡아가려고 했다. 내가 원하는 요구사항 스펙을 먼저 정의하고, 선택지마다 트레이드오프를 하나하나 따지면서 결정했다. Google, Azure, AWS, OpenAI 등 다들 높은 수준의 서비스를 제공한다. 문제는 가격, 정확도, 화자분리, 커스터마이징 네 가지 기준에서 무엇이 최선이냐였다.
비용 먼저
회의를 자주 한다는 게 핵심이다. 이건 "일회성" 작업이 아니라 지속적으로 발생하는 비용을 뜻한다. '자주'가 추상적으로 들릴 수 있는데, 그때 우리 팀의 rule은 매일 1시간 회의였다. (물론 음성 회의 대신 텍스트로 공유할 때도 있었다.)
Google Cloud Speech-to-Text
- 요금: 분당 약 $0.024 (v1 standard)
- 월 비용: 60분 × 22일 = 1,320분 → 약 $32
- 무료 사용량 소진 후 누적
한국어 정확도는 공식 문서상 높지만, 실제로는 "스웨거", "넥스트" 같은 개발 용어나 한/영 혼합 구어체에서 떨어질 수 있다. 화자분리(Speaker Diarization)는 별도 API를 써야 하고 추가 비용이 든다.
Azure Speech Services
- 요금: 1시간당 약 $1.30
- 월 비용: 22시간 → 약 $28~35
- Google과 유사한 정확도·추가 기능 비용 구조
AWS Transcribe
- 요금: 분당 약 $0.024
- 월 비용: 약 $31.68
- Google·Azure와 거의 같은 가격대
세 서비스 모두 "매달 $30대의 지속 비용"이 든다.
OpenAI Whisper API
- 요금: 분당 약 $0.006
- 월 비용: 약 $8
- 가장 저렴
다만 화자분리는 지원하지 않는다. 별도로 구현해야 한다.
Clova (네이버)
한국어 최적화가 뛰어나다고 알려져 있다. 하지만 네이버 클라우드 플랫폼 안에서만 쓸 수 있어서, 외부 서버(GitHub, Vercel)에서 호출하기 불편하다. 더 큰 문제는 정해진 틀의 요약만 준다는 점이다. "Action Item만 추출해줘", "의사결정을 강조해줘" 같은 세부 요청이 안 된다.
비용 비교 정리
| 서비스 | 월 비용(예상) | 화자분리 | 한국어 | 커스터마이징 |
|---|---|---|---|---|
| Google Cloud | ~$32 | 별도 비용 | ⭐⭐⭐ | LLM 별도 |
| Azure | ~$32 | 별도 비용 | ⭐⭐⭐ | LLM 별도 |
| AWS | ~$32 | 별도 비용 | ⭐⭐⭐ | LLM 별도 |
| OpenAI Whisper API | ~$8 | ❌ | ⭐⭐⭐ | LLM 별도 |
| Clova | ~$30 | ❌ | ⭐⭐⭐⭐ | ❌ 고정 틀 |
로컬 Whisper라는 선택지
Cloud API는 어쨌든 돈이 든다. 클로바 노트 무료 할당량을 팀원 계정 여러 개로 돌려 채울까도 고민했지만, 그때는 회의를 얼마나 자주 하게 될지 예측이 안 돼서 다른 길을 찾았다. 그러다 로컬 STT 모델을 알게 됐고, 그중 한국어 전사가 좋다는 Whisper를 만났다.
OpenAI의 Whisper는 오픈소스다. 모델도 공개돼 있다.
핵심 장점
- 비용: 모델 파일 1회 다운로드(large-v3-turbo: 약 1.5GB) 후 영구 무료
- 정확도: large-v3-turbo는 개발 용어 + 혼합 언어에서 우수
- GPU 가속: Apple Silicon의 Metal을 자동 활용해 빠르게 처리
- 화자분리: 별도 모델 없이 음성 트랙을 이용해 구현 가능
물론 한계도 있다.
- 초기 환경 설정 필요 (whisper 빌드)
- 모델 파일이 크다 (1.5GB)
- 직접 유지보수해야 함
의사결정: 비용 × 정확도 × 화자분리 × 커스터마이징
| 기준 | Google Cloud | Azure | AWS | OpenAI API | Clova | 로컬 Whisper |
|---|---|---|---|---|---|---|
| 비용(예상) | 월 ~$32 | 월 ~$32 | 월 ~$32 | 월 ~$8 | 월 ~$30 | 초기 1회 다운 / 이후 $0 |
| 한국어 | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
| 화자분리 | 별도 비용 | 별도 비용 | 별도 비용 | ❌ | ❌ | 구현 가능 |
| 커스터마이징 | LLM 필요 | LLM 필요 | LLM 필요 | LLM 필요 | ❌ 고정 | LLM 필요 |
최종 결정: 로컬 Whisper
근거
- 비용: 매일 발생하는 회의라는 특성상, 월 $8~32의 선형 비용보다 1회 초기 비용이 명백히 유리
- 정확도: 개발 팀 용어와 한/영 혼합 환경에서 우수한 성능
- 커스터마이징: "Action Item만 추출", "의사결정 강조", "특정 주제 제외" 같은 세부 지시 가능
- 장기 운영: 1회 세팅 후 지속 관리 비용이 거의 없음
(사실 돈이 안 드는 구조를 가장 원했다.)
최종 아키텍처
원본 음성 파일 (로컬)
↓ whisper.cpp 로컬 처리
텍스트 전사본
↓ Gemini API + prompts/default.md
요약된 회의록 (마크다운)
↓ Discord / Notion / GitHub Wiki
팀 협업 도구 (자동 배포)
- 무료: GPU로 로컬에서 전사하니 STT 비용이 0
- 요약만 클라우드: 이미 텍스트로 바뀐 전사본만 Gemini로 보내서, 원본 음성 대비 데이터가 1/100 수준
- 프롬프트 커스터마이징: 팀 고유의 요구를 프롬프트로 반영
회고
이 의사결정에서 배운 점.
비용은 "누적"으로 봐야 한다. 월 $8과 $32의 차이는 1년이면 $288, 5년이면 $1,440이다. 장기 운영 서비스라면 더 그렇다.
기술 선택은 문제마다 다르다. 일반적인 프로덕션 서비스였다면 Cloud API를 추천했을 거다. 하지만 취준생인 만큼 최대한 돈을 아끼는 방식을 택했다. (추후 완성도 프로젝트에서는 Cloud API를 활용해, 스터디/사이드프로젝트 팀끼리 회의 내용을 요약해주는 기능도 만들어보려 한다.)
이제 벌써 21회 이상의 회의를 자동으로 기록하고 있다. 완성도 프로젝트도 실제 유저 피드백을 받고 싶어서, 팀원들과 합의해 운영, 개선을 좀 더 이어가기로 했다. 이 과정에서도 whisper는 유용하게 쓰이고 있다. 상세한 구현은 다음 글에서 다룰 예정이다.
'개발 > 프로젝트' 카테고리의 다른 글
| 완성도(完成島): 회의 기능 구현 - 왜 LiveKit(SFU)을 선택했나 (0) | 2026.04.30 |
|---|---|
| AutoMeeting: 매일 20분 걸리던 회의 기록을 0으로 만든 AI 파이프라인 (0) | 2026.04.30 |
| 완성도(完成島): 페어프로그래밍으로 만든 GatheringCard (0) | 2026.03.30 |
| 완성도(完成島): Toss에서는 이렇게 쓰려나? Modal 설계 (0) | 2026.03.19 |