01. 왜 v1.4가 중요했나
v1.3까지는 "챗으로 모든 것이 가능"한 단계를 만드는 데 집중했어요. 그런데 사용자 인터뷰를 200쌍 넘게 진행하면서 같은 피드백을 반복적으로 들었습니다.
"챗 좋은데, 손이 바쁠 때는 못 써요. 운전 중에·요리 중에·아기 안고 있을 때... 그때가 결혼 준비 머릿속에 떠오르는 시간인데."
음성 모드를 만들기로 결정한 게 작년 9월. 처음엔 가볍게 생각했어요. "한국어 STT API 붙이면 되겠지." 그런데 막상 해보니 대형 모델도 한국어 인식률이 80% 안팎이었고, 부산 사투리는 65%까지 떨어졌어요. Flora 사용자 30%가 부산권이라는 걸 생각하면 절대 출시할 수 없는 수준이었습니다.
그래서 6개월을 더 들였습니다. 자체 데이터셋을 만들고, 부산 사투리 12,000시간을 수집하고, 모델을 처음부터 fine-tuning했어요. 그 결과가 v1.4입니다.
02. 음성 모드 — STT 95% 정확도
음성 모드의 핵심은 STT(Speech-to-Text) 파이프라인이에요. 단순히 마이크로 입력 받아 텍스트로 바꾸는 게 아니라, 다음 단계를 거칩니다.
# Flora 음성 파이프라인 — 5단계 async def process_voice(audio_stream: AudioStream) -> Response: # 1. 노이즈 제거 + VAD (음성 감지) cleaned = await denoise_and_vad(audio_stream, threshold=0.65) # 2. STT — 자체 fine-tuned 모델 (Whisper-large 베이스) transcript = await stt_model.transcribe( cleaned, language="ko", dialect_hint=detect_dialect(cleaned) # 사투리 자동 감지 ) # 3. 결혼 도메인 보정 (예: "라움" 정확히 인식) transcript = await domain_post_process(transcript) # 4. 8명 비서 라우팅 (어느 비서가 답할지 결정) agent = await route_to_agent(transcript, context=user_context) # 5. 응답 생성 + TTS (음성으로 변환해 스트리밍) return await agent.stream_voice_response(transcript)
각 단계마다 다른 모델이 일해요. 노이즈 제거는 RNNoise, STT는 자체 학습한 Whisper-Flora-ko, 도메인 보정은 작은 BERT 모델, 라우팅은 LLM 기반 분류기, TTS는 VITS-Korean입니다.
03. 부산 사투리 인식 — 65% → 95%
가장 어려웠던 건 부산 사투리예요. 표준어 데이터로 학습한 모델은 "라움 스튜디오 9시"를 "나옴 스튜디오 9시"로 인식하기도 했습니다.
해결 과정은 이랬어요:
- 1단계: 데이터 수집 — 부산·울산·경남권 사용자 동의 받아 12,000시간 음성 데이터 수집 (익명화 + AES-256 암호화)
- 2단계: 라벨링 — 부산 출신 어시스턴트 4명이 1만 시간 라벨링 (3개월 소요)
- 3단계: Fine-tuning — Whisper-large-v3 베이스에 LoRA 어댑터 추가, 표준어 파라미터 보존하면서 사투리 성능만 학습
- 4단계: 도메인 후처리 —
"라움"·"오뗄"같은 결혼 도메인 고유명사 76개를 사전에 등록
특히 "카페 어디고?" · "마이 비싸다 안카나" · "머할라꼬 그라노" 같은 부산 사투리 특유의 문장을 정확히 인식합니다. 모델은 표준어 인식률(98%)도 그대로 유지해서, 다른 지역 사용자도 영향 없어요.
72%로 낮습니다. 데이터가 충분치 않아요. v1.5에서 제주·전남·강원 사투리도 학습 예정입니다.
04. 1주년 자동 앨범 — 5,000장 → BEST 80장
두 번째 큰 기능은 1주년 자동 앨범이에요. 결혼식 사진과 1년 동안 신혼 일상 사진을 모아 결혼 1주년 당일 가죽 양장 앨범을 자동 제작해주는 기능.
핵심 챌린지는 "평균 5,000장에서 어떻게 80장을 고를 것인가?"였어요. 단순히 잘 찍힌 사진 80장이 아니라, 스토리가 있는 80장이 필요했습니다.
큐레이션 알고리즘 v2
처음엔 단순했어요. 화질·표정·구도 점수로 정렬해서 상위 80장을 뽑았죠. 하지만 결과를 본 사용자들이 말했어요:
"잘 찍힌 사진은 많은데... 우리 결혼식 이야기가 안 보여요."
그래서 알고리즘을 다시 설계했습니다. 80장을 6개 카테고리로 자동 분류해서 균형을 맞추는 방식.
| 카테고리 | 비중 | 사진 수 | 선정 기준 |
|---|---|---|---|
| ① 본식 하이라이트 | 25% | 20장 | 표정 + 구도 |
| ② 두 분 디테일 | 15% | 12장 | 반지·드레스·부케 |
| ③ 가족·하객 | 15% | 12장 | 감정 표현 강한 순간 |
| ④ 비하인드 스토리 | 10% | 8장 | 자연스러운 순간 |
| ⑤ 신혼 일상 (D+1~365) | 30% | 24장 | 월별 균등 분포 |
| ⑥ 1주년 기념일 | 5% | 4장 | D-day 사진 |
| 합계 | 100% | 80장 | 평균 5,000장에서 추출 |
결과 — 만족도 4.9/5
v1.4 출시 전 30쌍 베타 테스트를 진행했어요. 결혼 1주년이 막 지난 부부에게 자동 생성된 앨범을 보내고 평가를 받았습니다.
05. 추가 — AI 비전 모델 v2
v1.4에는 비전 모델 v2도 함께 들어갔어요. 무드보드 사진을 분석해 두 분 스타일을 매칭하는 모델인데, 이번에 다음을 개선했습니다.
- 색감 분석: 16색 → 64색 팔레트, 색온도까지 인식
- 소재 인식: 린넨·실크·레이스·머슬린 등 12종 직물 인식
- 분위기:
"네추럴"·"빈티지"·"모던"등 24개 무드 키워드 자동 추출 - 매칭 정확도: 92% → 96.4% (+4.4%p)
06. 성능 + 다음 계획
v1.4 전체 성능 비교:
| 항목 | v1.3.5 | v1.4.0 | 변화 |
|---|---|---|---|
| 음성 응답 평균 시간 | 2.4초 | 1.1초 | ↓ -54% |
| STT 정확도 (표준어) | 88% | 98% | ↑ +10%p |
| STT 정확도 (부산 사투리) | 65% | 95% | ↑ +30%p |
| 비전 매칭 정확도 | 92% | 96.4% | ↑ +4.4%p |
| 앱 cold start | 2.1초 | 0.8초 | ↓ -62% |
| 일평균 챗 횟수 (베타 30쌍) | 8.4회 | 14.2회 | ↑ +69% |
v1.5 — 다음 단계 (2026 Q3)
v1.4에서 멈추진 않습니다. 6월부터 v1.5 작업이 시작돼요.
- 제주·전남·강원 사투리 추가 학습 (목표 인식률 90%+)
- 일본어 비서 베타 (도쿄 진출 대비 — 2027 Q1 정식 출시 목표)
- iOS·Android 정식 앱 (현재 PWA 위주 → 2026.08 정식 출시)
- 사진 → 동영상 자동 컴파일 (1주년 앨범의 동영상 버전)
v1.4는 "AI 비서가 진짜 비서답게 일하는 첫 버전"이에요. 음성으로 말 걸 수 있고, 결혼 후 1년 뒤에도 두 분을 잊지 않고 앨범을 보내드리니까요. 다음 1년이 더 기대됩니다.
v1.4 적용은 자동으로 진행됐습니다. /voice/ 메뉴에서 음성 모드 바로 체험하실 수 있어요. 버그·개선 의견은 언제든 skynet77@paran.com로 보내주세요. 박지원이 직접 읽어요.
댓글
Whisper-Flora-ko어떻게 만들었는지 더 디테일한 글 따로 가능할까요? LoRA 어댑터 구조도 궁금하고, 12000시간 데이터 라벨링 비용은 얼마나 들었나요? 정수아 님 인터뷰 글 부탁드려요!