전용 처리 가지 제거
MFCC용 입력 노드와 ScriptProcessor도 사라집니다. 기계음 감지용 Context는 남습니다.
마지막 업데이트 2026-09-14
MFCC라는 ‘목소리 패턴 검사기’와 그 기록 경로를 제거해,
AI 음성을 처리할 자원에 여유를 만듭니다.
실제 재생은 MFCC 검사를 통과한 뒤 시작하는 구조가 아닙니다. 검사 작업이 쓰던 자원을 줄이는 변화입니다.
MFCC용 입력 노드와 ScriptProcessor도 사라집니다. 기계음 감지용 Context는 남습니다.
16kHz 변환·MFCC 추출·템플릿 비교·오디오 콜백을 없앴습니다.
샘플 버퍼·분석 배열·매칭 상태와 로그 턴 종료 추적용 ID 집합이 없어졌습니다.
위 분석 자원 절감은 변경 전에 MFCC 분석기가 실행되던 경우 기준입니다. Context 1개는 고정된 CPU %나 메모리 용량을 뜻하지 않습니다.
이 경로 전체를 제거했습니다. 기존 S3 파일은 그대로 있으므로, 이미 차지한 저장 공간을 회수한 것은 아닙니다.
MFCC 계산과 기계음 감지가 함께 켜져 있었다면, 기계음 감지만 남습니다.
Realtime 예시는 기계음 감지 ON을 가정합니다. 전체 앱의 AudioContext 개수는 아닙니다. MFCC가 이미 OFF여도 별도로 보내던 MFCC 로그 경로의 정리 효과는 있습니다.
아직 그렇게 말할 근거는 없습니다. 실행 중이던 분석 작업을 없애 처리 여유를 늘릴 수는 있지만, 해당 작업이 밀림의 원인이었는지와 개선 폭은 실기기 비교가 필요합니다.
이전 코드도 LiveKit에서는 MFCC를 실행하지 않았습니다. 따라서 LiveKit iPad 세션의 지연 개선을 이 분석기 제거 효과로 설명하면 안 됩니다. 저사양 판별은 기기 정보 기반으로, 수업 중 발열에 따른 실시간 쓰로틀링 측정값이 아닙니다.
후속 검증: 동일 기기·수업·런타임·충전/저전력 조건에서 제거 전후 CPU·메모리와 실제 청취 지연을 비교합니다. 이번 문서는 그 측정 결과를 포함하지 않습니다.
| 위치 | 제거한 작업 | 수치의 의미 |
|---|---|---|
| 게스트 오디오 | AudioContext·MediaStreamAudioSourceNode·ScriptProcessorNode 각 1개 | MFCC 활성 시 기준. 기계음 분석은 독립적으로 유지. |
| 게스트 CPU | 4096 프레임 콜백, 16kHz 리샘플, 300ms 윈도우·150ms hop의 MFCC 계산·코사인 비교 | 코드에 정의된 처리 단위. 유예·무음·발화 상태에 따라 계산을 건너뛰므로 실제 횟수·CPU 절감률은 미측정. |
| 게스트 메모리 | 샘플·특징 배열, 패턴 커서, 이벤트 생성, MFCC 전용 턴 종료 ID 추적 | 실측 바이트 수 없음. 일반 대화 턴·전사 추적은 유지. |
| 네트워크·서버 | GUEST_MFCC_LOG_EVENT 송수신 및 검증·중계 | 제거한 경로의 전송량 감소. 전체 수업 트래픽 감소율은 미측정. |
| 모니터 | 턴 로그 버퍼, 지연 flush·업로드 중 추적 | 기존 버퍼 상한 2,000 이벤트. 코드 주석의 ‘약 2MB’는 이벤트당 1KB 가정의 추정치이며 실제 상시 절감량이 아님. |
| S3·DB | 신규 JSONL 생성, 업로드 URL 발급, S3 PUT, MFCC 포인터·요약 등록 | 성공한 턴 업로드 경로에서 발생하던 작업. 기존 객체 보관 비용은 유지되며 금액은 산출하지 않음. |
main/message의 MFCC 규칙·중단 설정, 게스트 디버그 설정, 전용 디버그 페이지 제거.mfccFpCheck 등 별도 레거시 설정 정리는 이 변경 범위에 포함하지 않음.구현: e3270372 · MFCC 기반 영어 가드 및 검증 로그 제거. 아래 링크는 변경 시점의 소스를 고정해 참조합니다.
apps/web/hooks/use-ai-english-guard.ts: 전용 Context·콜백·윈도우·매칭·정리.apps/web/entities/guest-page-session/model/use-guest-page-session.ts: MFCC hook 제거, 기계음 가드·STT·송출 보존.apps/web/hooks/use-ai-audio-noise-guard.ts: 유지된 기계음 감지.apps/web/entities/guest-session/model/use-ai-session.ts: MFCC 턴 종료 콜백·전용 ID 집합 정리. 일반 전사 완료 처리 보존.apps/web/entities/guest-socket/model/use-guest-socket.ts, apps/socket/src/sfu-socket/handlers/session-alert-handlers.ts, packages/shared/src/utils/constants.ts: 이벤트 경로 제거.apps/web/entities/monitor-session/model/use-monitor-session.ts, 제거된 apps/web/hooks/use-mfcc-log-collector.ts: 버퍼·타이머·수집·업로드 제거.apps/web/components/pages/session-log.tsx: MFCC 열과 액션 제거. apps/web/components/ui/mfcc-preview-modal.tsx 삭제.apps/web/lib/s3.ts, apps/web/lib/db-queries.ts, apps/web/app/api/session-logs/[id]/mfcc/route.ts: 신규 업로드·등록 제거, 과거 기록 API 유지.2026-09-14 · 커밋 e3270372에서 문서 작성 시 재실행: 5개 파일, 11개 테스트 통과. 브라우저·DB·S3 실제 자원 대신 fixture와 fake를 사용합니다.
cd apps/web pnpm exec vitest run \ components/pages/session-log.test.tsx \ components/pages/chat-preset.test.tsx \ hooks/use-ai-audio-noise-guard.test.ts \ stores/use-language-guard-settings-store.test.ts \ app/api/session-logs/mfcc-history.test.ts
확인 항목: 기계음 클리핑 감지·해제·공용 트랙 보존, 다른 설정 저장, MFCC UI 부재, 일반 대화 표시·복사, 기존 기록 API의 호환성.
구현 단계 기록: Socket 중계 검사 73개, 모니터 관련 검사 12개, 음성 세션 이벤트 검사, 웹·Socket 타입 검사, Storybook 정적 빌드 통과. 별도 metrics.test.js는 기존 경로 등록 누락 3건으로 실패하며, 변경 전 HEAD에서도 동일함을 확인했습니다.
미검증: 실제 iPad CPU·메모리·전력·발화 지연의 개선 폭. 기능 검증 결과를 성능 측정 결과로 해석하지 않습니다.
기능 제거의 목적: 앞으로 사용하지 않는 MFCC 경로 정리. 이 문서는 구현된 변화의 설명이며, 배포 완료나 실기기 성능 개선을 주장하지 않습니다.