맥북에서 AI 음성 어시스턴트 직접 만들어봤다 — Whisper + Claude 연동 실제 과정
"자비스"라고 부르면 대답하는 AI 어시스턴트를 만들어봤다.
유튜브에서 "AI 어시스턴트 만들기" 영상을 찾아보면, 대부분 파이썬 코드가 주르륵 나오거나, 영어 명령어만 인식하는 데모 영상이거나, "이 API 키를 여기에 넣으세요"에서 끝난다. 실제로 한국어로 말했을 때 작동하는 걸 보여주는 건 거의 없다.
직접 만들었다. 완성형은 아니지만, "자비스"라고 부르면 반응하고, 명령을 받아서 Claude에게 넘기고, 남성 음성으로 대답이 나오는 수준까지는 됐다. 그 과정에서 생각보다 많은 게 안 됐고, 하나씩 고쳐나갔다.
왜 만들었나
맥을 쓰면서 손을 놓고 싶을 때가 있다. 뭔가를 검색하거나, 메모를 남기거나, 일정을 확인하거나 — 이런 걸 말로 하면 편할 것 같다는 생각이 들었다.
시리(Siri)를 쓰면 되지 않냐고 할 수 있다. 시리가 한국어를 지원하긴 하는데, 업무 관련 질문이나 리서치 요청에는 한계가 있다. "오늘 삼성전자 실적 요약해줘" 같은 걸 시리한테 말하면 그냥 구글 검색 결과를 보여준다. 원하는 건 그게 아니었다.
Claude를 직접 연결하면 다를 것 같았다. Claude는 긴 질문도 잘 받고, 한국어도 잘 이해한다. 여기에 목소리 입력만 연결하면 되는 거 아닐까 — 그 생각에서 시작했다.
필요한 구성 요소 3가지
이걸 만들려면 세 가지 역할이 필요하다.
음성 → 텍스트 (STT: 음성인식)
말한 내용을 텍스트로 변환해주는 역할이다. Whisper라는 도구를 사용했다. OpenAI가 만든 음성인식 모델인데, 내 컴퓨터에서 직접 실행할 수 있고 한국어 인식도 꽤 잘 된다. 무료다.
텍스트 → 대답 (AI)
Claude API를 연결했다. 텍스트로 변환된 명령을 Claude에게 보내고, 받은 답변을 다시 음성으로 바꿔주는 역할이다.
텍스트 → 음성 (TTS: 음성 합성)
Claude의 답변을 소리로 들려주는 역할이다. Microsoft에서 제공하는 edge-tts라는 도구를 사용했다. 한국어 남성 음성이 있고, 무료다.
이 세 가지를 이어주는 연결 작업을 Claude Code로 했다.
어떻게 만들었나 — Claude Code에게 말로 설명했다
코드를 직접 짤 필요는 없다. Claude Code(터미널에서 실행하는 AI 도구)에게 원하는 걸 말로 설명하면 된다.
처음에 이렇게 말했다.
"맥에서 실행되는 음성 어시스턴트를 만들고 싶어. '자비스'라고 부르면 활성화되고, 내 명령을 받아서 Claude API에 보내서 대답을 받아오는 방식으로 만들어줘."
Claude Code가 필요한 도구 설치부터 전체 구조까지 설계해줬다. 처음 버전은 실행은 됐는데, 실제로 써보니 여러 가지가 안 됐다.
잘 안 됐던 것들
문제 1: "자비스"라고 불러도 반응이 없다
웨이크워드(특정 단어를 듣고 시스템이 깨어나는 기능) 설정 문제였다. 처음에 사용한 방식은 "hey_jarvis"라는 영어 모델로 웨이크워드를 감지하는 방식이었다. 그런데 이 모델은 영어 발음 기준으로 만들어진 거라, 한국어로 "자비스"라고 말해도 인식하지 못한다.
해결 방법은 방식 자체를 바꿨다. 영어 모델에 의존하는 대신, 마이크로 소리를 항상 듣다가 음성이 감지되면 Whisper로 텍스트로 변환하고, 거기서 "자비스"라는 단어가 있으면 활성화하는 방식으로 전환했다. 한국어 발음을 Whisper가 직접 인식하기 때문에 훨씬 잘 됐다.
문제 2: 여성 음성으로 대답한다
처음 TTS 설정이 여성 음성으로 되어 있었다. 남성 음성으로 바꾸는 건 설정 파일에서 한 줄 수정으로 됐다.
문제 3: 같은 대답이 두 번 나온다
말을 한 번 했는데 같은 답변이 두 번 연속으로 나왔다. 원인을 찾아보니, 브라우저 기반 음성 인식과 Python 기반 음성 인식이 동시에 동작하고 있었다. 두 곳이 독립적으로 명령을 받아서 처리하다 보니 두 번 들어가는 구조였다. 하나를 꺼서 해결했다.
문제 4: 자기 목소리에 다시 반응한다
Claude가 대답을 음성으로 말하면, 그 소리를 마이크가 다시 잡아서 새 명령으로 처리했다. 그래서 AI가 혼자 말하고 혼자 대답하는 루프가 생겼다. TTS가 재생되는 동안 마이크를 끄고, 재생이 끝나면 다시 켜는 방식으로 해결했다.
지금 동작하는 방식
현재는 이런 흐름으로 작동한다.
맥에서 서버를 실행하면 브라우저에 대시보드가 열린다. 마이크는 항상 대기 중이다. "자비스"라고 말하면 딱 소리와 함께 녹음이 시작된다. 명령을 말하면 Whisper가 텍스트로 변환하고, Claude에게 넘어가서 대답이 남성 음성으로 나온다. 대답이 끝나면 다시 대기 상태로 돌아간다.
음성 인식은 Whisper small 모델을 쓰고 있다. 처음엔 더 작은 base 모델을 썼는데, 인식률 차이가 꽤 있어서 올렸다. 맥 CPU에서 돌리는 거라 응답까지 2~3초 정도 걸린다.
완전히 매끄럽지는 않다. TV 소리나 배경 소음이 크면 웨이크워드 감지가 늦거나 오동작하는 경우가 있다. 마이크 가까이서 또렷하게 말하면 인식률이 올라간다.
코딩이 필요한가
Claude Code를 터미널에서 실행해야 해서, 터미널이 낯선 사람에게는 첫 발걸음이 좀 낯설 수 있다.
실제로 이 작업을 하면서 코드를 직접 짠 건 없다. Claude Code에게 원하는 걸 말로 설명하고, 결과를 확인하고, 잘못된 부분은 "이게 왜 이러는지 봐줘"라고 하면 됐다. 프로그래밍 지식보다 무엇이 문제인지 설명하는 능력이 더 중요했다.
"웨이크워드가 왜 안 잡히지?"라고 물어보면 원인을 찾아서 수정 방향을 제안해준다. "같은 대답이 두 번 나와"라고 하면 어디가 중복인지 찾아준다. 코드를 이해하지 않아도 문제를 추적하는 게 가능하다.
필요한 것:
- 맥 (맥북 또는 맥 미니)
- Claude Code 설치 → Claude Code를 처음 쓰는 직장인을 위한 설치 가이드
- Claude API 키 (Anthropic 사이트에서 발급, 소량 사용 시 월 1달러 이하)
- 터미널 앱을 열고 명령어를 복사해서 실행하는 정도의 경험
만들면서 생긴 것
처음 기대했던 건 편리함이었다. 손을 놓고 음성으로 명령하면 편할 거라는 생각.
실제로 써보니 편리함보다 다른 게 생겼다. 만드는 과정 자체가 흥미로웠다. 웨이크워드가 왜 안 잡히는지, 음성 피드백 루프를 어떻게 끊는지, 마이크 뮤트 타이밍을 어떻게 맞추는지 — 이런 문제를 하나씩 찾고 해결하는 과정이 있었다.
코드를 직접 보지 않아도 "왜 안 되는지"를 이해하는 게 가능했다는 점이 인상적이었다. AI 어시스턴트를 쓰는 것만큼, 이제는 만드는 것도 비슷한 진입장벽이 됐다는 걸 체감했다.
아직 불완전하다
솔직히 말하면, 지금도 완성형이 아니다.
배경 소음에 취약하고, 응답까지 2~3초 딜레이가 있고, 가끔 웨이크워드를 놓친다. 상업용 AI 스피커 수준을 기대하면 실망할 수 있다.
그래도 "말로 Claude에게 질문하고 음성으로 답 듣기"는 된다. 직접 만든 거라 어디를 고치면 뭐가 달라지는지 알고 있다는 점이 다르다. 고칠 여지가 있다.
완성형을 기다리다 보면 시작을 못한다. 일단 동작하는 버전을 만들고, 불편한 부분을 하나씩 고쳐나가는 쪽이 실제로 더 많이 배웠다.
이 글은 2026년 7월 기준 맥OS 환경에서 테스트한 내용입니다. Whisper, edge-tts, Claude API 사양은 이후 변경될 수 있습니다.
'AI 업무자동화' 카테고리의 다른 글
| ClaudCode + Obsidian으로 개인 지식 관리 시스템 만들기 (0) | 2026.07.28 |
|---|---|
| 세컨드 브레인을 포기했던 이유 — ChatGPT 대화 4년치로 다시 시작했다 (0) | 2026.06.25 |
| Claude Code로 투자 대시보드를 처음부터 만들어본 과정 — 기획부터 배포까지 (0) | 2026.06.10 |
| Google Sheets + Claude API로 투자 데이터 자동 정리하는 법 (0) | 2026.06.08 |
| Claude Code를 처음 쓰는 직장인을 위한 설치 및 시작 가이드 (0) | 2026.06.08 |