본문으로 건너뛰기
AI/개발/오픈소스

D'CASTLE

AI 전화 비서 ai-phone, 통화 내용이 맥 밖으로 안 나가는 구조와 비용 정리


AI 전화 비서 ai-phone, 통화 내용이 맥 밖으로 안 나가는 구조, 듣기 Parakeet·생각 Qwen3.5 4B·말하기 Phonon이 모두 맥 안에서 돈다

전화 한 통을 미루고 있다.

통관이 안 되는 것 때문에 전화를 해야 하는데, 전화하기가 싫어서 계속 미루는 중이다.
(막상 하면 별거 아닌데)

가끔 이렇게 전화 걸기가 불편할 때가 있다. 그래서 나도 이런 기능이 필요하다 ㅠㅠ

그런 기능을 클라우드가 아니라 내 맥 한 대에서 돌리는 오픈소스가 나왔다. 2026년 10월 27일 깃허브에 공개된 ai-phone이다.

근데 나는 맥이 없다 ㅋㅋㅋ

윈도우 컴 하나, 아이패드 하나, 폰은 갤럭시다. 그래서 이 글은 써본 후기가 아니라, README와 문서를 보고 구조와 비용을 정리한 글이다.

맥 한 대가 전화를 받고 거는 오픈소스

AI 전화 비서 오픈소스 ai-phone 깃허브 레포 화면, 스타 198개와 포크 38개, 애플 실리콘 SIP 전화 데몬 소개

출처: github.com/oxnw/ai-phone (2026년 10월 29일 화면)

레포 소개는 “애플 실리콘에서 로컬 음성·언어 모델로 도는 SIP 전화 데몬” 한 줄이다. 공개 이틀째인 10월 29일 화면 기준 스타 198개다.

SIP는 전화를 인터넷으로 주고받는 표준 규격이래. AI가 전화를 대신 걸어준다, 아니, 정확히는 내 맥이 번호를 가진 전화기가 되는 쪽에 가깝다.

하는 일은 두 가지다.

  • 받기: 전화가 오면 AI가 받아서 인사하고, 기본 설정으로는 이름·번호·용건을 받아 적는다.
  • 걸기: 명령 한 줄에 용건을 적으면 AI가 전화를 걸어 대화하고, 끝나면 대화 전사본을 돌려준다.

README 예시는 “오늘 저녁 8시에 두 명 자리 있나 물어봐” 식이다.

조건도 같이 적혀 있다. 지금은 영어만, 한 번에 한 통만 된다. 라이선스는 AGPL-3.0이다.

듣고, 생각하고, 말하는 3단계가 맥 안에서

비전공 바이브코더 눈높이로 옮겨보면 이렇다.
(틀린 데 있으면 살살 알려주길)

ai-phone 로컬 AI 전화 작동 구조, 맥 안에서 Parakeet 음성 인식, Qwen3.5 4B 언어 모델, Phonon 음성 합성이 돌고 밖으로는 전화선 음성만 나가는 흐름

문서에 나온 한 턴의 흐름은 이렇다.

  1. 말 끝 판단: 상대가 말을 멈추고 0.3초 조용하면 말이 끝났다고 본다.
  2. 듣기: Parakeet TDT 0.6B라는 음성 인식 모델이 말을 글자로 바꾼다.
  3. 생각: Qwen3.5 4B 언어 모델이 대답을 쓴다. 문장을 다 쓸 때까지 안 기다리고 첫 구절이 나오면 바로 넘긴다.
  4. 말하기: Phonon 31M이나 Kokoro 82M 음성 합성 모델이 그 구절부터 소리로 만든다.
  5. 전화선으로: 맥 안에서 16kHz로 다루던 소리를 전화선 규격인 8kHz로 바꿔 보낸다.

세 모델 모두 애플 칩용 MLX로 맥에서 돈대. 통역사 셋이 한 책상에 붙어 앉아 릴레이하는 그림이다.

9월 3일 측정에는 단계별 시간도 적혀 있다. 말 끝 판단 대기 297ms, 듣기 96ms, 생각 첫 구절 312ms, 말하기 첫 조각 164ms, 내보내기 9ms.

전체로 보면 상대가 말을 끝내고 AI 첫 소리가 나가기까지 874ms(중간값)였대.

끼어들기도 된다. 상대가 0.25초 넘게 말하면 AI가 하던 말을 멈추는데, 0.3초 안에 멈추는 게 목표래.

남 말 자르고 혼자 떠드는 AI는 아니라는 거다 허허.

통화 중에 밖으로 나가는 것, 안 나가는 것

셋 중에 제일 궁금했던 게 이 부분이다.

설계 문서 맨 앞에 “절대 깨지 않는 원칙” 6개가 있는데, 1번이 네트워크 얘기다. 통화하는 동안 맥이 바깥과 주고받는 건 두 가지뿐이래.

  • 상대와의 전화 연결(SIP/RTP): 통화 음성이 오가는 길. 전화니까 이건 당연히 나간다.
  • 바깥 두뇌, 고른 경우에만: 생각 단계를 클로드나 챗GPT에 맡기기로 했을 때 그 한 곳.

그 밖에 텔레메트리, 업데이트 확인, 통화 중 모델 다운로드도 안 한대. 통신사 API 키도 번호를 살 때 한 번만 쓴다.

두뇌별 차이를 usage 문서 기준으로 옮기면 이렇다.

생각 담당(두뇌) 첫 대답까지 통화 텍스트가 가는 곳 필요한 것
내 맥 (기본값) 1.5초 (10/27 측정 중간값) 맥 밖으로 안 나감 로컬 모델 다운로드
클로드 구독 첫 턴 2.4~5.5초, 이후 약 1초 Anthropic Claude Code 설치·로그인
챗GPT 구독 첫 턴 3.9~4.4초, 이후 1.1~1.9초 OpenAI Codex 설치·로그인
내 서버 서버 성능 따라 그 서버 OpenAI 호환 주소

출처: ai-phone docs/usage.md “Brains and privacy” (2026년 10월 29일 기준). 어느 두뇌든 통화 음성 자체는 전화선으로 오간다.

README 표현으로는 이렇다.

Speech recognition and synthesis stay local.

듣기와 말하기는 어느 두뇌를 골라도 맥에 남는다는 뜻이다. 클라우드로 가는 건 소리가 아니라 텍스트다.

다만 클로드·챗GPT 두뇌를 고르면 상대가 한 말의 텍스트, 통화 지시문, 대화 이력은 그 회사로 간다. 데몬이 켜질 때 어디로 가는지 알려준대.

구독 두뇌는 API 키 없이 이미 로그인해둔 CLI를 쓴다. 빈 폴더에서 도구를 다 끈 채로 돌리고, 도구를 쓰려 하면 그 턴과 세션을 끊는대.

통화 상대가 하는 말이 그대로 모델 입력이 되니까 막아둔 모양이다.

솔직히 나는 별생각이 없다. 무감각한 편이다.

이미 내 정보, 내 신상은 세계 곳곳에 퍼져 있다고 생각하는 쪽이라서.

그래도 통화에는 내 말만 있는 게 아니라 상대방 말도 같이 들어간다. 나야 무감각해도, 전화를 받는 사람 입장에선 기본값이 맥 안에서 끝나는 쪽이 마음 편할 수도 있겠다.

응답 속도, 1초 목표를 못 맞췄다고 적어둔 숫자

ai-phone 응답 속도 측정 기록, 첫 소리까지 중간값 874ms에서 1074ms, 1500ms로 늘어나 1초 목표를 넘긴 막대 그래프

첫 소리까지 걸린 시간(중간값)이 측정할 때마다 이렇게 달라졌다.

  • 9월 3일: 874ms. 목표 1초 안.
  • 10월 26일 (Kokoro 목소리): 1,074ms.
  • 10월 27일 (Phonon 목소리): 1,500ms.

셋 다 같은 맥(M5 Pro, 램 24GB), 같은 4B 모델이다.

10월 27일 측정 때는 맥이 메모리에 꽤 쪼들렸다고 문서에 적혀 있다. 스왑이 22.5GB를 넘었고 남은 램은 300MB 안팎이었대.

그게 원인이라고 단정하진 않고, 배경 부하가 있었다는 것까지만 적어뒀다.

끼어들기도 비슷하다. 9월엔 중간값 219ms로 목표 300ms 안이었는데, 10월 27일엔 5번 중 4번만 300ms 안에 멈췄고 1번은 396ms였다.

README에는 1초 목표를 못 맞췄다는 문장이 그대로 들어 있다. 측정 조건과 예전 결과도 다 링크해놨다.

내가 보기엔 조건까지 같이 적어둔 덕분에, 1.5초라는 숫자를 어떻게 읽으면 되는지 알 수 있다.

아직 남은 검증도 적혀 있다. 설치와 로컬 통화, 끼어들기 테스트는 했지만 실제 통신사 회선으로 거는 종단 검증은 아직이래. 공개 이틀 차 프로젝트라는 걸 감안하고 보면 된다.

AI라고 먼저 밝히고 시작하는 규칙들

전화를 거는 AI라 규칙도 몇 개 박혀 있다.

  • AI 고지: 모든 발신 전화는 “Hi, this is an AI assistant calling.”으로 시작한다. 전화를 받을 때 기본 인사도 AI 비서라고 밝힌다.
  • 긴급번호 거부: 112·119·911·999 같은 긴급번호 13종은 안 건다. 내선 100처럼 긴급번호로 보이는 번호도 막는대.
  • 하루 발신 제한: 하루에 걸 수 있는 횟수를 정할 수 있다. 기본값 0은 무제한이다.
  • 침묵·시간 제한: 8초 조용하면 “Still there?”, 8초 더 조용하면 끊는다. 한 통은 최대 10분.
  • 한 번에 한 통: 회선이 여러 개여도 통화 중에 두 번째 전화가 오면 통화중 신호를 보낸다.

클로드 코드나 코덱스 같은 에이전트가 직접 대화를 끌고 가는 relay 모드도 있다. call --relay로 건 다음 say로 말하고, listen으로 듣고, hangup으로 끊는 식이다.

에이전트가 생각하느라 늦으면 ai-phone이 “One moment.”로 시간을 벌어주고, 25초 동안 대답이 없으면 사과하고 끊는대.

써보려면 필요한 것

맥이 있는 사람 기준으로 정리하면 이렇다.

  • 맥: 애플 실리콘 macOS만. 인텔 맥·리눅스·윈도우는 아직 안 된다.
  • 램: 기본 4B 모델은 16GB 권장, 9B는 32GB. 8GB 맥에는 더 작은 2B 모델을 준대. setup이 램을 보고 추천한다.
  • 디스크: 모델 다운로드로 몇 GB. 4B가 3.1GB, 9B가 6.0GB다.
  • 도구: Git, Homebrew, uv.

설치는 README 기준 네 줄이다.

git clone https://github.com/oxnw/ai-phone.git
cd ai-phone
./scripts/install.sh
uv run ai-phone setup

setup 마법사가 받기·걸기·둘 다 중에 고르게 하고, 모델·회선·목소리를 정해준다. 그다음 uv run ai-phone run으로 켜두면 된다.

백그라운드 서비스로 깔리진 않아서, 받으려면 켜두구 있어야 한대.

번호를 사기 전에 공짜로 먼저 해볼 수 있다. setup에서 “A SIP address”를 고르고 이름을 agent 그대로 두면, 같은 맥에서 pjsua --local-port 5070 sip:[email protected]로 걸어서 대화해볼 수 있대.

진짜 전화번호를 붙이는 길은 다섯 가지다.

  1. 텔닉스나 트윌리오에서 새 번호 사기
  2. 그 계정에 이미 있는 번호 연결하기
  3. 내 휴대폰 번호를 착신전환으로 넘기기, 코드(**61*)는 setup이 알려준다
  4. 통신사 없는 SIP 주소로 에이전트끼리 통화하기
  5. 내가 가진 SIP 트렁크 연결하기

착신전환 코드가 국내 통신사에서도 먹히는지는 모르겠는디, 확인된 자료는 찾지 못했다.

비용, 번호 값은 한 달 1달러 남짓

ai-phone 자체는 무료 오픈소스다. 돈이 드는 건 전화번호와 통화료다.

  • 텔닉스: 미국 로컬 번호 월 $1.00(문자까지 쓰면 +$0.10). 분당 요금은 확인 못 했다.
  • 트윌리오: 미국 로컬 번호 월 $1.15, 미국 안 통화 기준 발신 분당 $0.014, 수신 분당 $0.0085.

트윌리오로 한 달 쓰는 경우를 몇 가지 계산해봤다.

한 달 사용 달러 원화
번호만 $1.15 약 1,541원
번호 + 수신 30분 $1.405 약 1,883원
번호 + 발신 30분 $1.57 약 2,104원
번호 + 발신 30분 + 수신 30분 $1.825 약 2,446원

트윌리오 미국 요금표 기준, 미국 번호로 미국 안에서 통화한다고 가정. 1달러 = 1,340.24원(2026년 10월 29일 환율). 맥 값, 전기료, 구독료는 넣지 않았다.

번호 값만 보면 한 달 1,500원 안팎이다.
(맥 값은 못 본 척하기로 한다)

클로드·챗GPT 두뇌는 API 요금이 아니라 내 구독 플랜 한도 안에서 돈다. 대신 ai-phone을 켤 때마다 로그인 확인용으로 아주 작은 턴을 한 번 쓴대.

한국 번호는 사정이 좀 다르다. 트윌리오 기준으로 한국 지역번호·전국번호·080은 사업자등록증이 있어야 하고 개인은 안 된다. 모바일 번호는 신분증으로 개인 신청이 된다는데, 가격과 재고는 확인 못 했다.

게다가 지금은 영어 대화만 된다. 한국에선 영어권 전화나 구조 공부용에 가까워 보인다.

나 같은 윈도우·갤럭시 사용자는

맥 없어서 못 써본다. 아쉽다 ㅋㅋㅋ

내 기기 세 개로 하나씩 대보면 이렇다. 🤔

  • 윈도우 컴: 지원 안 함. 리눅스는 계획에 있는데 윈도우는 계획 목록에도 안 보인다. 음성 모델이 애플 칩용 MLX로 돌아서, 다른 OS는 음성 부분을 통째로 바꿔야 한대.
  • 아이패드: README가 말하는 건 macOS라서 아이패드는 해당이 안 되는 것 같다.
  • 갤럭시: 이쪽은 상관없다. 플랫폼 조건은 ai-phone을 돌리는 컴퓨터에만 해당하고, 전화를 거는 쪽은 아무 전화기나 된대.

그러니까 누가 맥에 ai-phone을 띄워두면 내 갤럭시로 거기에 전화를 거는 건 된다. 정작 내 전화를 맡기는 쪽은 안 되고.

그리고 내가 미루고 있는 통관 전화는 한국어다.

맥이 없어서 못 써보는데 있었어도 영어만 되니까 통관 전화는 결국 내가 걸어야 하고 그 전화를 아직도 미루고 있다.

듣는 귀, 생각하는 머리, 말하는 입이 다 책상 위 맥 한 대에 들어 있는 전화로구나.

나도 이 기능이 필요한 사람이라, 지금은 구경만 하는 게 좀 아쉽다. 그래도 통화 내용이 어디로 가는지 표 하나로 갈라 적어둔 프로젝트라, 맥 없는 사람도 구조는 따라가 볼 수 있었다.

혹시 맥이 있고 나처럼 전화를 미루는 타입이면, 번호부터 사지 말고 공짜 로컬 테스트부터 돌려보길.
내 맥 램으로 대답이 몇 초 걸리는지만 봐도 쓸 만한지 감이 온다.

답글 남기기

필수 필드는 *로 표시됩니다.