TL;DR
Raz는 오디오를 클라우드로 보내지 않고 Apple Silicon에서 Claude Code와 음성으로 대화하도록 만든 로컬 인터페이스입니다. mlx-whisper가 push-to-talk 음성을 텍스트로 바꾸고, kokoro-mlx와 localhost의 FastAPI 서버가 Claude의 산문 응답을 음성으로 변환하며 코드 블록과 표는 건너뜁니다. MCP 도구 10개로 음성 설정과 듣기 상태를 Claude가 제어하고, Whisper는 5분 유휴 뒤 언로드되어 약 4GB의 메모리를 반환합니다. 54개 음성과 10개 언어를 지원하며 Apple Silicon Mac, Python 3.12, Claude Code, uv 환경에서 약 5분 만에 설치할 수 있습니다.
실용적 조언
- Apple Silicon Mac에서 Claude Code를 음성으로 사용하려면 저장소를 복제한 뒤 `uv sync`를 실행하고 MCP 서버와 Stop hook을 차례로 등록하면 됩니다. Right Option 키를 push-to-talk 입력 키로 사용하므로 전역 단축키 충돌 여부를 먼저 확인하는 편이 좋습니다. Whisper가 첫 입력 때 로드되므로 최초 음성 인식에는 모델 초기화 시간이 필요합니다.
섹션별 상세
용어 해설
- 음성 합성(TTS)
- — TTS는 텍스트를 음성으로 변환하는 기술입니다. 이 프로젝트에서는 Claude Code의 답변에서 산문을 추출한 뒤 코드 블록과 표를 제외하고 음성으로 읽어 주는 출력 단계에 사용됩니다.
- 음성 인식(STT)
- — STT는 사용자의 음성을 텍스트로 바꾸는 기술입니다. Right Option 키를 누른 동안 녹음한 음성을 mlx-whisper가 전사하고, 변환된 문장을 Claude Code에 붙여 넣는 입력 과정에 쓰입니다.
- 모델 컨텍스트 프로토콜(MCP)
- — MCP는 외부 기능을 AI 애플리케이션과 연결하는 인터페이스입니다. Raz는 10개의 MCP 도구를 통해 Claude가 음성 변경, 속도 조절, 듣기 시작과 중지를 직접 제어하도록 구성됩니다.
- 중지 훅(Stop hook)
- — Stop hook은 Claude Code의 응답 처리가 끝나는 시점에 외부 동작을 실행하는 연결 지점입니다. Raz는 이 훅에서 완성된 응답을 로컬 TTS 서버로 전달해 자동 음성 출력을 시작합니다.
- 탐욕적 디코딩(greedy decoding)
- — greedy decoding은 각 단계에서 가장 높은 확률의 토큰을 선택해 음성을 텍스트로 변환하는 추론 방식입니다. Raz의 STT 구성은 mlx-whisper의 large-v3-turbo 모델에 이 방식을 적용합니다.
언급된 도구
Apple Silicon에서 로컬 TTS를 실행하는 라이브러리
large-v3-turbo와 greedy decoding을 이용해 로컬 STT를 실행하는 라이브러리
localhost에서 TTS 요청을 처리하는 서버 구성
Claude Code가 Raz의 음성 제어 기능을 호출하도록 연결하는 서버 인터페이스
전역 push-to-talk 단축키를 처리하는 라이브러리
Python 의존성 설치와 프로젝트 동기화에 사용하는 도구
언급된 리소스
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.