이이솔 25회기 체크인 영상 0초 정지 + AI 무음 — 아동 PC 오디오 출력 경로 정지 (AudioContext 0.0107초 고정) 분석앱 원인 아님 · 감지 개선 미적용

마지막 업데이트 2026-09-30

2026-09-30 2026-09-29 18:30~18:35 KST · roomId 2f633906…_25 Windows · Chrome 154 · CS42L43 AMP Speaker

결론: 아동 노트북에서 소리를 밖으로 내보내는 경로(오디오 출력)가 멈췄다. 그래서 소리가 있는 체크인 영상이 0초에서 멈췄고, AI 음성이 나오지 않았고, 진행자에게 중계된 AI 음성도 무음이었다. 새로고침 2회와 kick 3회로 페이지를 5번 다시 열었지만 5번 모두 같은 상태여서 회복되지 않았다.

네트워크·서버·에이전트·PPI 샘플레이트 설정은 원인이 아니다. 이슈 분류기가 "네트워크 × 연결"(0.54)로 본 것은 오분류다. 멈춘 곳이 CS42L43 드라이버·장치인지, Chrome 오디오 서비스인지는 로그로 가를 수 없다.

1. 코드 경로

2. 목적 요약 — 무엇을 판별하는 문서인가

신고: "체크인 영상 재생 종료 시점에 멈추고, 재접속 이후 AI 스텝에서 발화 출력이 안 되고 멈춤."

3. 입출력 흐름 — 시간순 인과

// 아동 PC (Windows, Chrome 154, 출력 = CS42L43 AMP Speaker 내장 스피커)
18:14:57 /guest 입장 화면 · 권한 허용 · 기본 출력 장치 자동 선택 (이후 14분 대기, 소리 재생 기록 없음)
18:29:22 대기실 · 리소스 프리페치 정상 (체크인 영상 포함)
18:30:06 AUDIO_PROBE warmup: 250ms 후 currentTime 0.0107 · outputLatency 0 → 판정은 suspectedSilent:false(위음성)
   ├→ 18:30:06 체크인 영상 play 이벤트 발생, playing은 없음
   │   18:30:08 paused:false인데 currentTime 0 · 오디오 디코딩 0바이트
   │   18:30:13 7.4초 동안 시간 갱신 없음(stalled), currentTime 0
   │   // 소리 있는 영상은 오디오 출력을 재생 시계로 쓴다 → 출력이 멈추면 영상도 멈춤
   │   // 소리 없는 카메라 영상(srcObject)은 43.9초까지 정상 진행
   ├→ 18:30:50 아동 "화면/친구가 멈췄어요" 신고
   ├→ 18:30:53 진행자가 AI 스텝(스몰톡)으로 이동
   │   에이전트는 정상: response_started/completed, tts_first_pcm (5회 모두)
   │   Audio chain not rendering: currentTime 0.011 고정 (5초마다 연속)
   │   mic-audio(가공) · ai-audio 송신 bytesSentDelta 0
   │   // AI 세션 전의 원본 마이크 송신은 정상(에너지 0.016) → 캡처는 살아 있고 출력(렌더)만 멈춤
   └→ 18:31:50 / 18:33:31 새로고침 · 18:33:57 / 18:34:40 / 18:35:22 진행자 kick
       5번 모두 0.0107에서 멈춤 → 회복 안 됨

// 진행자 PC
18:30:06~21 체크인 영상 정상 재생 → ended 15.168초 (probe 0.2347초 · outputLatency 0.011)
18:30:33~48 다시 재생 → ended
AI 턴 오디오 녹음 615~629B/턴 = 사실상 무음 (아동 기기에서 이미 무음으로 송출됨)

4. 모듈별 세부 근거

4-1. AUDIO_PROBE 값 비교

대상250ms 후 currentTimeoutputLatency해석
진행자 PC (같은 시각)0.2347 / 0.2507초0.011정상
아동 PC 20~24회기0.21~0.26초0.042~0.065정상
아동 PC 25회기 (로드 5번 모두)0.0107초0512샘플(48kHz), 출력 버퍼를 딱 한 번 가져가고 멈춤

4-2. 프로브 판정이 틀린 이유

result.currentTimeAdvanced = ctx.currentTime > 0;   // 0.0107 > 0 → true
result.suspectedSilent = ctxStateAfter !== "running" || currentTimeAdvanced === false;  // → false

"0보다 크면 진행됨"으로만 보기 때문에, 버퍼 한 번만 돌고 멈춘 경우를 잡지 못한다. 대기 시간 250ms에 비해 너무 적게 진행됐는지(예: currentTime < 0.1)까지 봐야 잡힌다.

4-3. 배제한 원인

후보배제 근거
네트워크 / SFU영상 파일은 대기실에서 미리 캐시됨. 송신 transport는 connected였고, 소리 없는 카메라 영상은 정상 진행
LiveKit 에이전트응답 생성과 TTS PCM 도착까지 정상(5턴). 방 생성·트랙 publish·종료도 정상. "음성 합치기 설정 변경 실패"는 응답이 계속 생성됐으므로 원인 아님
자동재생 차단컨텍스트 상태 running, 영상 play 이벤트 발생
CPU 부하LOW_POWER_PROBE 60fps, 스레드 8개·메모리 16GB
PPI 샘플레이트 설정멈춘 컨텍스트는 샘플레이트를 따로 지정하지 않았다(장치 기본 48kHz). 앱이 샘플레이트를 건드리지 않는 <video>도 멈춤. 16kHz를 지정하는 곳(use-ai-audio-stt-capture.ts:93)은 externalSttEnabled:false라 생성되지 않음
마이크 장치 고장원본 mic producer 송신 정상(50패킷, 에너지 > 0)

4-4. 이전 회기와 비교 (같은 노트북)

회기 (날짜)Chrome출력 장치 이름결과
20~23 (9/8~9/17)152Cirrus Logic XU정상
24 (9/22)153CS42L43 AMP Speaker (드라이버 교체 흔적)정상
25 (9/29)154CS42L43 AMP Speaker처음으로 출력 멈춤

드라이버는 9/17과 9/22 사이에 바뀌었지만 24회기는 정상이었다. 24→25 사이에 로그로 보이는 변화는 Chrome 154 업데이트뿐이다. 인과는 확정되지 않았다.

5. 주의사항 · 판별법 · 대응 · 남은 과제

판별법: 영상 멈춤과 AI 무음이 함께 신고되면 먼저 AUDIO_PROBE currentTimeSec과 Audio chain not rendering의 currentTime이 고정돼 있는지 본다. 약 0.01초에 고정 + outputLatency 0 + 영상 currentTime 0 + 카메라 영상만 정상, 이 조합이면 단말 출력 경로 정지로 확정한다. 리로드와 kick으로는 회복되지 않는다.

확정되지 않은 것: ① 멈춘 곳이 CS42L43 드라이버·장치인지, Windows 오디오 서비스인지, Chrome 오디오 프로세스인지 ② 멈춘 시점(입장 전 14분 동안 소리 재생 기록 없음) ③ 노트북 제조사·모델. 공개 자료에는 "Chrome 154 + CS42L43 + AudioContext 멈춤" 조합의 알려진 사례가 없다(2026-09-30 검색 기준). 비슷한 사례는 Linux에서 CS42L43이 절전 복귀 뒤 응답을 멈추는 SOF #5959 정도다. 그래서 "절전 복귀 후 멈춤" 가설이 가능하지만 추정이다.

양육자에게 확인할 것

  1. 수업 전에 노트북이 절전 상태였다가 다시 켜진 건가요?
  2. 그때 유튜브 같은 다른 앱에서도 소리가 안 났나요? (안 났으면 OS·드라이버 쪽, 났으면 Chrome 쪽)
  3. 재부팅한 뒤에 회복됐나요?
  4. 노트북 제조사와 모델명은 무엇인가요?

아동 측 대응 순서

  1. 재부팅 → 유튜브에서 소리가 나는지 확인
  2. 이어폰이나 USB/블루투스 스피커로 출력 장치 변경 → 문제 경로(CS42L43 내장 스피커)를 거치지 않음
  3. Windows 소리 설정: 오디오 향상 끄기, 형식을 16비트 48000Hz로, 단독 모드 해제 (일반적 조치이고 이번 건 효과는 미검증)
  4. 제조사 최신 오디오 드라이버 설치. 안 되면 장치 관리자에서 드라이버 롤백(20~23회기에 정상이던 "Cirrus Logic XU")
  5. 최후 수단: 다른 기기로 수업. Edge는 Chrome과 엔진이 같아서 효과가 불확실

개선 제안 (미적용)