Skip to content

feat(voice): STT 환각(방송 클로징 등) 자동 제거#125

Merged
i3months merged 1 commit into
devfrom
feature/stt-hallucination-filter
Jun 28, 2026
Merged

feat(voice): STT 환각(방송 클로징 등) 자동 제거#125
i3months merged 1 commit into
devfrom
feature/stt-hallucination-filter

Conversation

@i3months

Copy link
Copy Markdown
Member

변경 사항

실전 면접 테스트(세션 82) 중 발견한 STT 환각 처리.

문제

답변 끝 긴 무음(25.7초) 뒤에 Whisper/Deepgram 이 학습데이터(방송) 정형 문구를 환각으로 덧붙임.

  • 실제 저장된 전사: interview_messages.id=409"…타임아웃을 잡았던 것이 생각납니다. MBC 뉴스 김재경입니다."
  • 이 환각이 전사·저장될 뿐 아니라 전달력 면접관 점수까지 감점시킴("문맥에 맞지 않는 발화").

수정

  • voice/stt/sanitize.py (신규): 방송 뉴스 클로징(MBC 뉴스 …입니다), 시청 인사(시청해주셔서 감사합니다), 구독 유도(구독과 좋아요), 자막 크레딧, 영어 환각(thanks for watching, please subscribe)을 보수적으로 제거. 감사합니다·뉴스 앱·구독자 수 등 정상 표현은 보존.
  • 배치 STT(deepgram, openai_whisper): transcribe 반환 결과 정화.
  • 라이브 STT(deepgram_live): 최종 자막마다 정화 + result() 백스톱 → 저장 전사·메트릭·실시간 표시 모두 적용.
  • 환각만 남은 segment 제거 → 무음/발음 메트릭이 실제 무음 반영.

테스트

  • tests/test_stt_sanitize.py 11케이스 추가 (실제 케이스 + 오탐 방지).
  • 전체 284 passed, flake8 clean.

비고

  • 기존 세션 82의 환각 레코드는 사용자 결정에 따라 보존(과거 1회성 테스트 기록).
  • 무음 "111초"는 답변별 무음 합계(13+16+10+26+23+17+8)로 정상 — 버그 아님.

🤖 Generated with Claude Code

발화 끝 무음 구간에서 Whisper/Deepgram 이 학습데이터(방송/유튜브) 정형
문구를 환각으로 덧붙이는 문제 처리. 실제 세션에서 답변 끝에 "MBC 뉴스
OOO입니다" 가 전사·저장되고 전달력 점수까지 감점시킨 사례 확인.

- voice/stt/sanitize.py: 방송 뉴스 클로징, 시청 인사, 구독 유도, 자막
  크레딧, 영어(thanks for watching 등) 환각을 보수적으로 제거.
  "감사합니다"·"뉴스 앱"·"구독자 수" 등 정상 표현은 보존.
- 배치(deepgram/openai_whisper): transcribe 반환 시 정화.
- 라이브(deepgram_live): 최종 자막마다 + result() 백스톱에서 정화 →
  저장 전사·메트릭·실시간 표시 모두 적용.
- 환각만 남은 segment 제거 → 무음/발음 메트릭이 실제 무음 반영.
- 테스트 11케이스(실제 케이스 + 오탐 방지) 추가, 전체 284 passed.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 28, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
stackup Ready Ready Preview, Comment Jun 28, 2026 10:14am

@i3months i3months merged commit 301822f into dev Jun 28, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant