← 노하우 목록

FROM THE WORKSHOP / 노하우

자비스 제작기 — Mac에 말 걸고 네스트에서 답을 듣기까지

Mac 내장 마이크·로컬 인식·Cursor·Google Nest를 연결해 실제 호출과 1회 청취까지 확인했다. 39.07초를 구간별로 나누고, 재생 중 재호출 방지와 원형 실측·공개판 검증을 구분하는 기준을 정리했다.

강대종 · 마이너스베타스튜디오

자비스 제작기 — Mac에 말 걸고 네스트에서 답을 듣기까지

2026-09-23 · 음성 비서 제작·실측 기록

“자비스, 하늘이 파란 이유를 한 문장으로 알려줘.”

Mac 내장 마이크로 한 질문을 로컬에서 인식하고, Cursor가 만든 답변을 Google Nest Mini에서 재생했다. 기기의 재생 정상 종료와 사용자의 **“한 번 들었어”**라는 확인까지 맞춰 봤다.

그림과 함께 보는 자비스 제작기 · GitHub 오픈소스

이미 가진 도구를 한 경로로 연결한다

실측한 원형은 다음 순서로 동작한다.

Mac 내장 마이크 → 로컬 호출어 판정·입타 인식 → 근거 조회 → Cursor 답변 → macOS 음성 합성 → Google Nest

메뉴 막대 앱이 마이크를 관리한다. 짧은 발화를 로컬에서 인식한 뒤, 앞부분이 “자비스”인 질문만 답변 경로로 넘긴다. 호출어만 먼저 말하면 다음 질문을 받을 시간도 준다. 전용 저전력 키워드 모델 대신 발화 단위의 로컬 음성 인식을 사용하므로 인식 비용은 발생한다.

호출 전 인식 내용은 저장하거나 Cursor로 보내지 않는다. 임시 원음은 인식 후 삭제한다. 호출된 질문과 근거는 Cursor에 전달하고, 최근 질문·답변·시간은 로컬에 남긴다. 전체 과정이 오프라인인 것은 아니다.

스피커가 말하는 동안에는 새 질문을 받지 않는다

마이크가 네스트의 답변을 다시 듣고 호출로 처리하면 같은 말이 반복될 수 있다. 답변 생성과 재생 동안에는 새 발화를 받지 않고, 재생이 끝난 뒤 입력을 재개한다. 사용자가 메뉴에서 일시정지하면 마이크 엔진도 멈춘다.

네스트에서 다른 미디어가 재생·일시정지 중이면 덮어쓰지 않는다. 성공 안내도 단순한 명령 전송이 아니라 실제 재생 상태를 확인한 뒤 기록한다. 이 원칙은 음성 비서뿐 아니라 외부 기기를 제어하는 자동화에도 적용할 수 있다.

느리다는 감상 대신 구간별 시간을 남긴다

실제 사람의 발화가 끝난 뒤 네스트가 재생을 시작하기까지 39.07초가 걸렸다. 발화 시작부터는 42.77초였다.

구간관측 시간
무음으로 발화 끝 판정0.90초
로컬 음성 인식0.40초
네스트 연결13.47초
근거 조회0.94초
Cursor 답변 생성21.88초
음성 합성1.04초
네스트 재생 시작0.31초

가장 큰 대기는 답변 생성이었고, 네스트 연결도 상당한 시간을 차지했다. 생성 모델만 바꿔서는 전체 지연을 설명할 수 없다. 각 구간을 측정해야 어디서 기다렸는지 구분할 수 있다.

이 수치는 한 질문을 한 번 측정한 결과다. 발화 끝은 무음 감지가 정한 마지막 유성 프레임이며 장치 버퍼와 관측 오차가 있다. 개별 값은 반올림했고 전체 시간에는 부가 처리도 포함된다. 속도 보장이나 장시간 안정성 검증으로 확대해서 해석하지 않는다.

개인정보를 제외한 집계 측정값 JSON

원형 실측과 공개 패키지의 검증을 구분한다

연결 코드는 Jarvis Mac 저장소에 MIT 라이선스로 공개했다. 마이크 메뉴 앱, 호출 판정, Cursor 연결, 네스트 출력과 설치 안내를 담았다. 개인 기기명·인증정보·음성 원본·운영 로그는 포함하지 않았다.

위 39.07초 실측은 입타의 상주 인식기를 썼다. 공개 패키지의 기본 인식 어댑터는 사용자가 설치한 whisper.cpp CLI를 발화마다 실행한다. 공개 어댑터의 합성 WAV 인식은 확인했지만, 공개판의 실제 마이크→네스트 전체 경로는 별도 실측하지 않았다. 따라서 원형의 수치를 공개판 성능으로 약속하지 않는다.

Cursor·macOS·음성 모델은 각각의 이용 조건을 따르며 별도 준비가 필요하다. 현재 기본 근거 조회는 하늘·노을 질문에 한정되고 범용 웹 검색과 끼어들기는 지원하지 않는다. 호출어는 화자 인증이 아니며 공개 메뉴 앱에는 가전 제어 기능을 넣지 않았다.

다음 음성 도구를 만들 때 가져갈 기준

  • 마이크 권한, 실제 입력, 인식 결과, 기기 재생 상태, 사람의 청취를 각각 확인한다.
  • 생성 시간과 스피커 연결 시간을 분리해 측정한다.
  • 재생 중 입력 차단과 실패 시 임시 음성·소유 프로세스 정리를 함께 구현한다.
  • 원형의 실측, 공개 코드의 테스트, 공개판의 실기기 검증을 구분해서 설명한다.

자비스 제작기 전체 보기

기록은 다음 시작이 됩니다.노하우 더 읽기 ↗이 작업장의 제품 ↗
작업장 전체 페이지 목적에 맞는 페이지 찾기