시연 인프라 준비 — STT 캡 · speaker=auto 실검증 · 관리자 토큰 수명

무엇을

시연 리허설 전에 인프라 쪽에서 막힐 것 셋을 먼저 푼다.

  1. STT 캡 — 2026-09-21 /call-mediator/health 실측: 일 600초 · 월 3,600초. 하루 약 4통화면 끝난다. 리허설 + 본 시연을 같은 날 하면 본 시연에서 스트림 오픈이 거부된다(COST-1 2차 가드가 의도대로 동작하는 것이다). 시연 기간에만 올리고 끝나면 되돌린다 — GCP 쿼터(1차)와 STT_MAX_SECONDS_*(2차) 둘 다
  2. speaker=auto — 모노 녹음 화자 분리(decisions/303)가 실제 구글 응답으로 미검증이다. 시연은 물리 2채널(브라우저 2대)로 우회하기로 했지만, 우회가 안 될 때의 대비로 한 번은 실제 응답으로 돌려 본다
  3. 관리자 토큰 수명 → ✅ 2026-09-28 끝났다(decisions/136 — access 30분 · refresh 12시간, 운영 시크릿 + 코드 기본값). QA Q-05 가 이 값을 보는 항목이라 게이트 앞으로 당겨 처리했다. 원문 — access 5분 · refresh 10분은 테스트 값이다(decisions/403). 시연 중에 로그인이 풀린다. 운영 값은 조서희 님과 정한다

완료 조건

2026-10-01 — 절차로 정했다 (정성윤)

2026-10-01 — done (정성윤)

2026-10-01 — speaker=auto 실검증 (정성윤) · 판정 불가

운영 콜 미디에이터에 모노 8kHz 45초 wav(stream_wav.ts --speaker auto --watch --max-seconds 30, 통화 test-auto-01)를 흘렸다. 입력은 윈도우 TTS(Heami) 한 음성으로 상담원·고객 턴을 읽고 고객만 -4반음 낮춘 합성음 — macOS say 기반 합성 스크립트가 윈도우에서 안 돌아 대신 만든 것이다. 결과 — 구글 화자 분리가 30초 전체를 한 화자(agent)의 확정 1건으로 돌려줬다(터미널 +30.85s FINAL #1 [agent] …). 글자는 합성음·8kHz 라 틀린 곳이 많고(「한별 씨 통합민원」·「헬로」) 그 수치는 성능으로 인용하지 않는다. 판정: 「안 됨」이 아니라 「판정 불가」 — 같은 목소리를 음높이만 바꾼 입력은 사람이 들어도 한 사람이다. 화자 분리가 동작하는지는 실제 두 사람 음성이 있어야 안다. 발표에는 「speaker=auto 미검증(실제 2인 음성 없음)」으로 적는다. 배선(모델 요청 플래그·+diarize 엔진 이름·첫 화자 = 상담원 규칙)은 이 호출로 운영에서 끝까지 돌았다 — 그것까지가 확인된 범위다.

2026-10-01 저녁 — 2채널(채널 분리) 실검증 (정성윤) · 배선 ✅ · 끝점 검출 ✗ → 0.2.13

speaker=auto 대신 기획서 1순위 경로인 채널 분리를 돌렸다. SYN-004 대본 7턴을 두 목소리(상담원 +2st · 고객 −5st, Heami TTS)로 읽어 스테레오 wav(L=상담원 · R=고객, 상대가 말할 때는 무음, 59.9초, data/processed/stt-2ch/, gitignore)를 만들고 stream_wav.ts … --call-id real-stt-01 --max-seconds 60 --watch 로 운영에 보냈다(STT 캡 120초 소모).

2026-10-01 19:00 — 0.2.13 배포 뒤 재검증 (정성윤) · 완료

같은 스테레오 wav 를 real-stt-02 로 다시 보냈다(콜 미디에이터 0.2.13, STT 캡 120초). 운영 DB: google-stt · 채널 2 · 확정 발화 상담원 8 · 고객 11 = 19건(0.2.12 에서는 1·1). 턴 7개가 19건으로 쪼개진 것은 TTS 가 쉼표·마침표마다 넣는 0.7초 넘는 쉼을 발화 끝으로 본 것이다 — 「무엇을 도와 드릴까요」「천천히 말씀하셔도 괜찮아요」 처럼 한 호흡 단위라 자막으로는 오히려 읽기 좋고, 추천은 두 번 발동해(「차일드」 뒤·네 서류 안내 뒤) 4.13 카드 4/4 가 그대로 떴다. 화면은 상담원·고객 줄이 시각 순으로 번갈아 쌓였다(사용자 캡처, 로컬 보관). 쉼 기준(silenceMs 700)은 상수라 필요하면 올린다.

이것으로 「음성 → Google STT(2채널) → 마스킹 → 자막·카드」 가 운영에서 발화 단위로 도는 것을 확인했다. speaker=auto(화자 분리)만 미검증으로 남는다.