HAX 스피커v0.2 초안

04

실현 계획 — 어떻게 만드는가

이 문서에서
  1. 세 갈래의 일
  2. 지금 정할 것
  3. 로드맵
  4. 비용 감각

세 갈래의 일

A. 기구설계 · 하드웨어

"감도 높은"을 하드웨어 언어로 옮기면 세 가지다. 3 m에서 웨이크워드가 잡히고, 자기 스피커가 음악을 틀고 있을 때도 말이 들리며(barge-in), 책상 30 cm에서 스피커가 크게 울려도 마이크가 포화되지 않는 것. 두 번째가 가장 어렵고 소프트웨어만으로는 안 된다. 그래서 오디오 프론트엔드(AEC·빔포밍·DoA)는 XMOS XVF3800에 통째로 맡긴다.

알아야 할 것. MEMS 마이크의 SNR과 AOP — 스피커 옆에서 포화되면 AEC는 수학적으로 복구 불가(IM69D130: 69 dB SNR, 130 dB AOP). 어레이 기하 — 간격 λ/2 이하, 360°는 정사각, XVF3800 규격은 66 mm. 스피커→마이크 기계 결합 — Echo Dot 5세대 티어다운을 보면 마이크는 별도 PCB에 러버 개스킷으로 케이스에 붙고, 금속 섀시로 스피커와 분리되며, 3챔버 구조다. 스마트앰프의 여진 제한이 AEC 안정성에 직결(TI TAS2563/TAS5825M). 인클로저 공정 사다리 — 3D프린트(1~10대) → 진공주형(10~100대) → 사출(수천 대, 금형 $10~30k). KC 적합성평가 — 인증된 Wi-Fi 모듈을 써도 완제품 EMC는 별도, 약 300~600만 원·3~4주; 무선이 없으면 RF 시험이 통째로 빠진다. 배터리는 셀+팩 인증 700만 원+, 최대 12주 — 그래서 유선.

해야 할 것. 데브킷으로 시작 — Seeed ReSpeaker XVF3800(USB 또는 XIAO ESP32S3 번들, 약 $67)과 ESP32-S3-BOX-3($50)를 같은 방에 놓고 비교 측정. 측정 프로토콜 정의 — 3 m·음악 재생 중 웨이크 검출률, barge-in 성공률, 책상 근접 포화 여부. EVT — 마이크 PCB(4 mic, 66 mm)와 메인 PCB(XVF3800 + 스마트앰프 + 마이크 전원 물리 차단 + LED 링 + USB-C; LAN 버전은 ESP32-S3 추가)를 2보드로 분리. 3챔버 3D프린트 인클로저 — 스피커실/마이크실/전자부, 개스킷 마운트, 2.5" 풀레인지(Dayton ND65급) + 패시브 라디에이터. JLCPCB/PCBWay PCBA 10~20세트 → 팀과 집에서 4주 일상 사용. KC와 금형은 1,000대 수요가 보인 뒤로.

재사용할 것. XVF3800(AFE 전체), ESP32-S3-WROOM-1 인증 모듈, Home Assistant Voice PE KiCad 파일(2025-06 공개), Satellite1 설계, Dayton 드라이버.

직접 할 것. 책상+거실 겸용 기구 — 책상에서는 DoA로 사용자 방향 고정, 거실에서는 360°. 마이크 포트 위치, 뮤트 스위치의 촉감, LED 링의 광학. USB 전용 버전의 "무선 칩 없음"을 눈으로 확인시키는 설계.

피할 것. Pi/RK3588 리눅스 보드(2026 메모리 가격 급등, 온디바이스 STT는 어차피 tiny급 — 리눅스는 브리지에 있다), 배터리, 자체 Matter 스택, "AI 스피커 ODM" 패키지(자사 SoC·클라우드 묶음).

가장 큰 리스크. 스피커 진동이 케이스를 타고 마이크에 들어가 AEC가 무너지는 것. 첫 3D프린트 인클로저부터 "음악 크게 틀고 말 걸기"를 통과시켜야 한다. 두 번째는 한국어 웨이크워드 — 오픈소스 엔진은 영어 중심이라 Porcupine(한국어 공식, 유료) 또는 Espressif 커스텀(500명 코퍼스, 2~3주, 양산 과금) 중 초기에 결정.

B. 소프트웨어

네 층이다. 펌웨어, 브리지, 에이전트 어댑터, 한국어 음성 스택. 세 층은 2026년에 재사용 가능한 오픈소스가 충분하고, 브리지의 라우터·화자 태깅·위임/보고·맥락 핸들만이 진짜 새로 쓰는 코드다.

알아야 할 것. 캐스케이드(STT→LLM→TTS) vs 음성-음성(S2S) — S2S는 운율이 좋지만 감사 가능한 텍스트가 없고 툴콜이 약하며 비용 편차가 크다(Gemini Live 분당 ~$0.002 vs GPT-4o ~$0.30). 툴콜·IoT는 캐스케이드, 잡담은 S2S인 하이브리드가 관행. 지연 예산 — 턴 종료 300 + STT 150~250 + LLM 첫 토큰 200~400 + TTS 첫 오디오 100~150 = 750~1,100 ms. 700 ms 전에 확인음이 나와야 하는 이유. 턴 감지 — 침묵 임계값은 규칙 폭발로 무너진다. Pipecat Smart Turn v3(8M 파라미터, CPU 12 ms)처럼 파형 기반 semantic VAD를 브리지에서. HA의 LLM API가 자동으로 MCP(/api/mcp/assist)로 노출된다는 것 — IoT 제어는 표준 MCP 클라이언트로 끝. 노출 엔티티 수와 토큰 — 30개≈1,300 토큰, 50개 넘으면 모델이 기기를 잊는다; 라우터가 도구를 좁혀야 하는 이유. 라이선스 지뢰 — openWakeWord 사전학습 모델은 CC BY-NC, Piper는 GPLv3. 화자 태깅 — ECAPA-TDNN 계열 임베딩 + 등록 기반 verification, pyannote 계열 diarization; 임베딩은 브리지에만.

해야 할 것. 펌웨어 — USB 버전은 XVF3800 USB 모드 + 소형 MCU(LED·버튼); LAN 버전은 xiaozhi-esp32(MIT, WebSocket/MQTT, 디바이스 측 MCP, 한국어 UI) 포크. 브리지 — Pipecat(pipecat-esp32, Smart Turn) 위에 라우터·화자 태깅·세션·위임/보고·맥락 핸들. LiveKit Agents(ESP32 SDK, MCP 툴 내장)는 대등한 대안. 어댑터 — OpenAI 호환 chat(OpenClaw·Hermes가 이미 제공), MCP, Realtime API 각 하나씩; 기존 기기용으로 ESPHome 네이티브 API와 xiaozhi WebSocket. 한국어 스택 — STT는 리턴제로/클로바/ElevenLabs Scribe(스트리밍)로 시작, 로컬은 Qwen3-ASR·Whisper v3 Turbo; TTS는 Supertonic v3(온디바이스, MIT/OpenRAIL-M) + ElevenLabs; 웨이크워드는 Porcupine 한국어 → Piper 한국어 합성으로 microWakeWord 자체 학습. 측정 — 발화 종료→첫 가청 응답 ms를 매 대화 로깅. 이 숫자가 제품 지표.

재사용할 것. Pipecat/LiveKit, Speaches(자체 호스팅 OpenAI 호환 STT/TTS/Realtime), Silero VAD, HA MCP 서버, xiaozhi/ESPHome 음성 컴포넌트, Kyutai Unmute(로컬 S2S 래퍼).

직접 할 것. 디바이스 프로토콜 스펙과 레퍼런스 구현, 멀티 에이전트 라우터(shortlist→rerank, Alexa HypRank 구조 참고), 화자 태깅과 존대·권한·에이전트 매핑, 긴 작업 위임/보고 상태기계, 맥락 핸들 규약.

피할 것. 자체 에이전트 프레임워크, 자체 STT/TTS 모델, 기기 내 기억 저장소, 기기 내 클라우드 종단점.

가장 큰 리스크. 프로토콜을 정의하다가 "우리만의 표준"이 되어 xiaozhi·HA 생태계와 단절되는 것. 처음부터 양쪽 어댑터를 두고 스펙을 공개하는 편이 "소켓"이라는 정체성에 맞는다.

C. HAX — 선행 연구와 관점

이 갈래가 승부처다. 하드웨어와 소프트웨어는 재사용할 것이 많지만, 언제 말을 걸고 어떻게 회복하고 누가 답했는지 어떻게 보이는가는 아무도 대신 풀어주지 않는다.

문헌이 이미 답한 것 — 설계 원칙.

원칙근거이 기기에서
700 ms 이전 반응Stivers 2009(턴 간격 200 ms), Roberts & Francis 2013(700 ms 침묵 문턱), Moshi(160~200 ms)답이 늦으면 확인음·LED·필러가 먼저. 발화 종료→첫 반응 ms를 SLA로
회복 부담은 기기가Beneteau 2019, Amershi 2019 G10"잘 모르겠어요" 금지. 구체적 되묻기, 부분 실행 후 확인
가역/비가역 축의 확인 정책Pearl VUI, Shneiderman HCAI조명은 실행 후 5초 취소창, 잠금 해제·결제·삭제는 명시적 확인
모든 모드는 보이게, 응답 주체도Raskin, Amazon 다중 에이전트 상호운용 가이드, TOIT 2021상태 어휘와 색은 기기가 소유. 어느 에이전트인지는 색/음색으로
먼저 말 걸기는 전환점에서만Cha 2020(KAIST: 귀가 직후 97%, 수면 중 4%, 룸메이트 자면 72.5% 회피), Horvitz 1999귀가·활동 전환에만, 누가 자면 침묵, 한마디로 기각
동의를 하드웨어에Lau 2018, Meng 2023, Limitless물리 차단 + 음성 뮤트 + 게스트 모드 + "꺼짐이 뭔지" 설명
기억은 에이전트에, 기기는 통로Karpathy LLM OS, ElevenLabs CEO, a16z사일로 금지. 맥락 핸들을 어떤 에이전트에게든 같은 방식으로
시각 출력은 핸드오프Nielsen 2023, Humane 사후분석리스트·비교·긴 텍스트는 근처 화면으로
한 호흡 응답Amazon One-Breath Test, Grice, Gemini 스피커 리뷰단순 명령엔 단답. 브리지에서 길이 통제
오늘 되는 것만 출시Rabbit/Humane, PAIR 멘탈모델데모 기능 금지. 첫 주 온보딩이 "무엇이 되는지"를 정확히

우리가 직접 연구해야 할 것. 한국어 존대와 가족 — 화자 인식과 존대 수준·권한·연결 에이전트가 함께 바뀌어야 하는데 국내 실증 연구가 없다. 에이전트 감사 — 음성만으로 "어느 에이전트가 이 행동을 했는가"를 어떻게 남기고 보여줄 것인가, 권한 범위는 누가 어떤 UI로 정하는가. Full-duplex 시대의 상태 어휘 — 듣기/말하기 구분이 무너지면 LED는 어떻게 바뀌나, 기기가 "음, 응" 백채널을 내야 하나. 책상과 거실의 다른 문법 — 같은 기기가 장소를 알고 응답 길이와 출력 경로를 바꿔야 하는가.

연구 방법 (셋, 예산 0). 문헌이 쓴 방법을 그대로 쓴다. Phase 1부터 팀과 가족이 기기를 쓰면서 매일 저녁 ESM 한 줄("오늘 말 걸었다가 포기한 순간은?")을 남기고, 브리지 로그에서 발화 종료→응답 ms, 재시도 횟수, 라우팅 정정 횟수를 뽑는다. 4주 뒤 사용 빈도가 유지되는지가 스마트 스피커 정체 곡선을 넘었는지의 첫 신호다.

지금 정할 것

결정추천 기본값이유
전송 경로USB 전용으로 시작, 같은 프로토콜 위에 LAN 전용은 2번째 SKU인증·온보딩이 가장 가볍고, 프라이버시 주장이 가장 강하고, 우리가 매일 쓰는 장면이 책상
메인 컴퓨트USB 버전: XVF3800 USB 모드 + 소형 MCU. LAN 버전: ESP32-S3리눅스는 브리지에 있다. Pi/RK는 피함
오디오 프론트엔드XMOS XVF3800, 4 mic 66 mmbarge-in을 소프트웨어로 풀지 않기 위해
펌웨어 출발점xiaozhi-esp32 포크 (LAN 버전)MIT, 디바이스 측 MCP, WebSocket, 한국어 UI
브리지 프레임워크Pipecatpipecat-esp32, Smart Turn v3, BSD. LiveKit Agents는 대등한 대안
홈 IoTHome Assistant + MCP직접 Matter 컨트롤러는 보더라우터·커미셔닝 앱·인증($7k/년+)의 늪
웨이크워드Porcupine 한국어 → 자체유료지만 한국어 공식. 자체 학습은 Phase 2
음성 파이프라인캐스케이드 기본 + Realtime 옵션툴콜·IoT·감사 가능성
전원USB-C 5 V 유선배터리 KC 회피. 20 W 앰프면 PD 9~12 V
기억의 위치에이전트 측기기는 세션·맥락 핸들만
화자 정체브리지에서 태깅, 임베딩은 브리지에만방향은 기기, 정체는 브리지. 생체정보는 집 밖으로 안 나간다
공개 범위미정 — Phase 2 전에프로토콜 스펙은 공개가 정체성에 맞음. KiCad·펌웨어는 소량 판매 모델과 함께
첫 성공 지표3 m·음악 재생 중 웨이크 검출률과 barge-in 성공률 / 팀 3명 4주 일일 사용 유지전자는 "감도 높은"의 정의, 후자는 정체 곡선을 넘었는지의 정의

로드맵

하드웨어를 만지기 전에 소프트웨어로 가설을 먼저 검증한다. 각 단계 끝에 넘어가도 되는 조건(관문)을 둔다.

Phase 0 — 2주, 하드웨어 없음: 내 에이전트와 음성으로 일하기

맥북 + 헤드셋(또는 ReSpeaker XVF3800 USB를 바로 꽂아도 된다 — 그게 이미 이 기기의 원형이다) + Pipecat으로 브리지 v0. OpenClaw/Hermes/Claude Code 중 하나를 OpenAI 호환 엔드포인트로 붙이고, 회의 녹취 → 맥락 핸들 → 에이전트 위임 → 보고 플로우를 코드로 만든다. HA MCP로 조명 하나를 켠다.

관문. 팀이 2주 동안 타이핑 대신 실제로 이걸 쓰는가. 안 쓰면 하드웨어를 만들 이유가 없다.

Phase 1 — 4~6주, 약 $300: 데브킷 프로토타입

ReSpeaker XVF3800(USB + XIAO ESP32S3 번들)과 ESP32-S3-BOX-3를 산다. USB 경로와 LAN 경로 양쪽으로 디바이스 프로토콜 v0.1을 정의하고 브리지에 붙인다. 같은 방 3 m, 음악 재생 중 웨이크 검출률·barge-in 성공률을 두 기기에서 측정한다. Porcupine 한국어 웨이크워드. 화자 태깅 v0 — 팀 셋의 목소리 등록.

관문. 발화 종료→첫 반응 700 ms 이내. 음악 중 barge-in 성공률이 "쓸 만하다"고 팀이 동의. 책상에서 하루 10회 이상 자연스럽게 부르게 되는가.

Phase 2 — 8~12주, EVT: 첫 자체 기구

마이크 PCB + 메인 PCB 2보드 설계(Voice PE KiCad 참고), 3챔버 3D프린트 인클로저, 스마트앰프 + 2.5" 드라이버, 물리 뮤트와 전원선 LED, LED 링. JLCPCB PCBA 10~20세트. 팀과 가족 집에 놓고 4주 다이어리 스터디. microWakeWord 한국어 자체 학습 시도. 프로토콜 스펙·레퍼런스 구현 공개 여부 결정.

관문. 4주차 일일 사용이 1주차의 절반 이상 유지. 진동 결합으로 AEC가 무너지지 않음. 팀 밖에서 "나도 갖고 싶다"는 사람이 10명 이상.

Phase 3 — 그 후, 50~100대: 소량 배치

진공주형 인클로저, KC 적합성평가(USB 버전은 EMC만; LAN 버전은 인증 모듈로 RF 범위 축소), 국내 지원사업(제품개발 올인원 패키지, N15 등) 활용. 커뮤니티에 프로토콜과 어댑터를 열고, OpenClaw/Hermes/HA 쪽에 공식 통합을 제안한다. 사출과 1,000대는 이 배치의 사용 데이터를 본 뒤.

관문. 100대 사용자의 4주 유지율과 "어떤 에이전트를 붙였는가"의 분포. 후자가 다양할수록 소켓으로서 성공한 것.

비용 감각

항목규모
Phase 0~1 데브킷~$300
Phase 2 PCBA 10~20세트 + 3D프린트수십만~백만 원대
KC 적합성평가 (RF 포함)300~600만 원, 3~4주 (USB 전용이면 EMC만)
배터리 KC (셀+팩)700만 원+, 최대 12주 → 회피
사출 금형 (상·하 케이스 + 그릴 + 버튼)$10~30k
BOM 추정 (XVF3800 포함)100대 $70~100 / 1,000대 $45~65 / 10,000대 $35~50 (소매가 역산, ODM 견적 필요)
Matter 인증CSA $7k/년 + 제품당 $3k + 시험비 → HA에 위임해 회피