A-5 스파이크 — 어눌한 한국어 STT 정확도를 잰다
무엇을
구현이 아니라 “잴 수 있는가”를 먼저 확인하는 스파이크다. 외국인이 어눌한 한국어로 말할 때 상용 STT 가 얼마나 알아듣는지를 숙련도 등급별로 잰다.
⚠ 2026-08-28 ID 정정:
A-3→A-5. 기획서의A-3은 이미 「브라우저 실시간 전달(WebSocket)」이고A-4는 발화 구간 검출이다.decisions/201초안이 같은 번호를 통번역에 붙여 한 ID 가 두 뜻을 갖게 됐다 — 추적성 규칙(rfp-harness §1.3)이 깨진다. 코드 주석에는# Requirement: A-5를 쓴다. 근거:_project/plan.mdrev.5 요약.
범위 — ⓑ 어눌한 한국어만 (2026-08-28 확정)
_project/decisions/201 부록 A. 두 시나리오 중 ⓑ 만 1차 범위다.
| ⓐ 고객이 모국어로 말함 | ⓑ 고객이 어눌한 한국어로 말함 | |
|---|---|---|
| 상용 API | 대체로 됨 | 가장 못하는 지점 |
| 평가 데이터 | ❌ 못 찾았다 | ✅ AI Hub 505 · 71479 |
ⓐ 와 상담원→고객 TTS 는 폐기가 아니라 여유 시 확장이다.
데이터 — 확보 경로가 있다
| 데이터셋 | 규모 | 비고 |
|---|---|---|
AI Hub dataSetSn=505 |
4,302시간 | 베트남·영어·일본·중국·태국어 모어 화자 |
AI Hub dataSetSn=71479 |
1,500시간 | 숙련도 4등급 라벨 + 발음오류 태깅 |
전량이 필요하지 않다. 학습이 아니라 측정이 목적이므로 정답 전사가 붙은 발화 수십~수백 건이면 WER/CER 이 나온다. 등급별로 고르게 뽑는 것이 규모보다 중요하다.
⚠ 반드시 함께 적을 한계
- 전화 음성이 아니다. 이 데이터는 44.1kHz 스튜디오/온라인이고, 우리 실제 통화는 8kHz 협대역이다(실측: 다산콜DB 8000Hz/2ch · 저품질전화 8000Hz/1ch). 8kHz 로 다운샘플링해서 잰다.
- 민원 대화가 아니다 — 낭독·질문답변이라 어휘가 다르다.
- 그래서 이 수치는 상한이다. 실제 통화에서는 더 나쁘다. 이 문장 없이 숫자만 옮기면 절대 원칙 10 위반이다.
완료 조건
- AI Hub 505 또는 71479 신청·수령
- 8kHz 다운샘플링 후 숙련도 등급별로 표본을 뽑았다 (등급당 최소 20건)
- Chirp 3 로 WER/CER 을 등급별로 냈다. 전체 평균 하나로 뭉개지 않는다
- 같은 표본을 원본 44.1kHz 로도 재서 8kHz 가 얼마나 깎아먹는지 분리했다
- 수치에 측정일·커밋·명령·표본 수 네 가지가 붙어 있다(§5)
- “이 수치는 상한”이라는 한계가 결과 옆에 적혀 있다
- 왕복 지연(STT→번역→화면)을 실측해 예산표를 다시 만들었다. 목표치를 지어내지 않는다
- 결과가 나쁘면 A-5 를 코어에서 뺄지 팀에 알린다 — 스파이크의 목적이 이 판단이다
참고 — API 를 써도 데이터는 필요하다
Chirp 3 가 85개 이상 언어를 지원하므로 학습·파인튜닝은 불필요하다. 그러나 측정에는 필요하다 — 정답 전사가 붙은 외국인 화자 음성이 없으면 A-5 가 되는지 안 되는지 말할 수 없다(절대 원칙 10). API 는 “만들 데이터”를 없애지 “잴 데이터”를 없애지 않는다.