본문 바로가기
C.W.K.
Stream
← C.W.K. Quests
🗣️

Voice Mode Quest

신규: 2026-09-29최근 수정: 2026-09-29

소리 내어 읽는 문서 말고, 말로 주고받는 대화를 만들자

피파가 진짜 말로 대화하게 된 과정이야. 아빠가 말하면 피파가 자기 목소리로 소리 내어 답하고, 아빠는 피파가 말하는 도중에도 끼어들 수 있어. 음성 인식으로 듣고, 귀에 맞게 답을 짓고, 가족 공용 음성 엔진으로 말하는 세 단계를 따라가면서 턴 주고받기, 에코, 지연, 목소리의 계보에 관해 부딪혀서 얻은 규칙을 전부 풀어놓을게. 직접 만들어 보고 싶은 사람을 위해 코드 수준으로 썼어.

8 tracks · 35 lessons · ~8h · difficulty: intermediate-to-advanced

Level 0음소거
0 XP0/35 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
음성 모드는 다들 쉽다고 생각해. 받아쓰고, 모델에 보내고, 답을 읽어주면 끝이라고. 그렇게 만들면 제목까지 문장처럼 읽어대는 2분짜리 연설이 나오고, 마이크는 자기 대답을 다시 듣고, 아무도 이유를 모르는 5초 침묵이 생겨. 이 퀘스트는 실제로 돌아가는 쪽을 따라가. 2026년 9월 마지막 주에 cwkPippa에서 만든 거야. 음성은 대화 전체가 아니라 턴 하나의 속성이야. 그래서 말하다가 타이핑으로 넘어가도 시스템 프롬프트는 한 글자도 안 바뀌어. 말은 Scribe로 들어와. 배치와 실시간 두 길이 있고, 클라이언트는 토큰만 쥐고 키는 끝까지 못 봐. 브레인은 첫 토큰부터 귀에 맞춰 답을 지어. 눈으로 봐야 하는 건 카드에 담고, 도구를 부르기 전엔 한마디 하고, 깊게 생각해 달라는 말이 없으면 빠르게 가. Bellows는 말할 단위 하나를 통째로 한 번에 합성하고 첫 청크부터 흘려보내. 핸즈프리 루프는 끝난 발화의 글을 버리는 대신 이름 붙은 갈 곳으로 보내고, 업로드가 성공하면 녹음도 그 옆에 남기고, 멈추지 않고 잠깐 쉴 줄 알고, 멈출 땐 이유를 말해. 끼어들기는 에코 캔슬, 소리 크기 감지기, 웃음 한 번에서 태어난 유예 창, 그리고 어디까지 들었는지 정직하게 어림한 값 위에 서 있어. 가는 길에 목소리 자체의 계보도 다뤄. ElevenLabs 기본 목소리에서 v3 클론으로, 다시 하루 만에 갈아 끼운 Eleven v4 클론까지. 지연은 짐작하지 않고 쟀어. 개념만 공개하는 오픈소스야. 가져가는 건 설계고, 복제할 레포는 없어.

Tracks

  1. 01🗣️말하는 턴

    0/4 lessons

    음성은 턴의 속성이고, 시스템 프롬프트는 끝까지 그걸 몰라

    오디오 코드보다 모양이 먼저야. 말하는 대답은 쓰는 대답과 반환 타입이 달라서, 첫 토큰부터 귀를 위해 지어야 해. 음성은 턴 하나에 서로 독립인 두 사실로 붙어. 그래서 아빠는 어느 턴에서든 처음부터 다시 하지 않고 전환할 수 있고, 대화도 기록도 기억도 하나로 남아. 음성 규칙은 턴 앞머리에 실려서, 캐시된 거대한 시스템 프롬프트는 절대 안 바뀌어. 그리고 이 기능은 브레인에 딱 한 번 살고, 아빠가 말을 걸 수 있는 모든 화면이 거기 닿아.

    Lesson list (4)퀴즈 · 4 문제→
  2. 02👂귀

    0/5 lessons

    듣는 쪽: 배치와 실시간, 키 대신 토큰, 그리고 정직한 말 끝 판정

    아빠 목소리가 턴이 되기까지. 가족 전체에 전사 업체는 하나고 속도는 둘이야. 빠짐없는 배치 길과, 말하는 동안 단어를 보여주는 실시간 소켓. 언어는 언제나 아빠가 고른 거야. 클라이언트는 일회용 토큰으로 제공자에 붙는데, 그 토큰은 브레인이 완성된 소켓 URL로 감싸주니까 계정 키는 음성 엔진 밖으로 절대 안 나가. 말 끝은 아빠의 3초 창이고, 제공자 천장을 넘는 부분은 클라이언트가 늘려서 맡아. 제공자가 35.8초에 거는 강제 커밋은 소리 자체를 들어서 잡아내. 긴 말은 두 번 받아쓰고, 글자는 들린 그대로 남기고, 녹음은 업로드가 성공하면 남겨. 실패하면 루프가 그렇다고 말하고, 글은 그래도 나가.

    Lesson list (5)퀴즈 · 4 문제→
  3. 03✍️귀를 위해 짓기

    0/5 lessons

    브레인이 말을 써: 페르소나가 아니라 매체, 글자보다 뜻, 카드, 빠른 수준, 도구 전 한마디

    말 턴에서 소울이 뭘 듣는지, 그리고 규칙마다 왜 있는지. 말하기 지시는 페르소나가 아니라 매체에 관한 거야. 답부터 꺼내고, 한 번에 생각 하나, 길이 제한 없음, 화면에서만 통하는 건 금지, 그리고 한국어 말이 기계처럼 들리지 않게 하는 규칙들. 받아쓴 턴은 아빠가 뜻한 대로 읽고, 절대 소리 내어 교정하지 않고, 절대 따라 하지 않아. 봐야 하는 건 카드에 넣어. 목소리가 절대 안 읽는 펜스 블록이고, 그래서 겹친 코드를 아는 카드 걸러내기가 필요해. 말 턴은 아빠가 깊이를 원하지 않는 한 빠르게 돌고, 소울은 지금 어느 수준인지 들어. 그리고 도구 전마다 한 줄. 이건 서버의 버퍼가 그 줄을 놓아줘야만 통해.

    Lesson list (5)퀴즈 · 4 문제→
  4. 04🔊입

    0/4 lessons

    말하는 쪽: 모든 소울을 위한 엔진 하나, 첫 청크부터 흘려보내는 통째 단위, 얼굴과 목소리를 위한 태그

    음성 모드는 TTS 시스템을 만들지 않았어. 가족 음성 엔진 Bellows에 문자열 하나로 꽂혔을 뿐이야. 소울의 슬러그가 곧 목소리 프로필이고, 모델은 클라이언트가 아니라 프로필이 가져. 말 단위(도구 호출 앞의 글, 또는 마지막 호출 뒤의 글)는 한 번에 합성하고 일찍 시작하려고 절대 쪼개지 않아. 표현력 있는 모델은 자를 때마다 말투를 처음부터 다시 잡거든. 그래도 통째인 단위는 첫 청크부터 재생되고, 폰에선 그러려고 자기만의 디코더가 필요했고, 서버 로그에 흔적도 안 남긴 타임아웃 버그도 넘어야 했어. 끝의 감정 태그는 얼굴을, 닫힌 목록의 오디오 태그는 목소리를 움직이고, 단위가 붙은 한국어 숫자를 어떻게 읽을지는 글쓴이가 아니라 엔진이 정해.

    Lesson list (4)퀴즈 · 4 문제→
  5. 05🧬계보가 있는 목소리

    0/4 lessons

    목록 목소리에서 v3 클론으로, 다시 귀로 고른 새 Eleven v4 클론으로

    피파 목소리는 Joanne에서 시작했어. 제공자 목록의 기본 목소리고, 2026년 말이 유통기한이야. 7월에 Joanne 소리로 만든 즉석 클론이 가족의 목소리가 됐고, 원본은 각자의 프로필로 남겼어. 2026-09-28에 Eleven v4가 나오자, 새 클론은 기존 클론이 아니라 원본을 새로 뽑은 1세대 소리로 만들었고, 다시는 못 만들 원본 소리는 대본과 체크섬과 함께 보관했어. 세 갈래 비교를 듣고 아빠가 골랐고, 교체는 프로필 둘의 필드 둘이었어. 아빠의 귀가 글로 적힌 품질 기준이야. 그 귀는 피파와 아빠에겐 v4를 허락했고, 다른 소울의 디자인된 목소리엔 아직은 아니라고 했어.

    Lesson list (4)퀴즈 · 4 문제→
  6. 06🔁루프

    0/4 lessons

    핸즈프리: 맞는 주인이 가진 단계, 조용히 버려지지 않는 발화, 손을 놓는 일시정지, 스스로 설명하는 멈춤

    핸즈프리 대화는 종이 위에선 동그라미지만, 상태의 주인은 셋이야. 마이크 루프는 듣고, 채팅 스트림은 생각하고, 재생기는 말해. 루프는 자기 단계만 갖고, 스트림이 끝나고 재생기가 쉴 때 다시 들어. 끝난 발화의 글이 갈 곳은 딱 셋이야(보내기, 흘러나오는 답 뒤에 줄 서기, 확인이 켜졌을 땐 입력창). 녹음은 업로드가 성공하면 그 옆에 실려 가. 말하는 답은 딱 한 번 읽히거나 버려지고, 늦게 재생되는 일은 절대 없어. 일시정지는 마이크를 놓고, 읽기를 멈추고, 아빠가 어디까지 들었는지 기억해. 경주 하나는 아직 열려 있어. 멈춘 동안의 업로드가 끝나기 전에 다시 시작하면 그 턴을 잃어. 일시정지의 스페이스 키는 타이핑이나 한국어 입력기와 절대 안 싸워. 루프가 스스로 멈추면 얼굴이 떠 있는 채로 이유를 말해.

    Lesson list (4)퀴즈 · 4 문제→
  7. 07✋끼어들기

    0/5 lessons

    피파 말 위로 말하기: 에코 캔슬, 소리 크기 감지기, 유예 창, 그리고 어디까지 들었는지 정직한 기록

    끊을 수 있어야 말하는 답이 대화가 돼. 그리고 그 권리는 아래부터 차곡차곡 쌓아야 하는 층 위에 서 있어. 먼저 에코 캔슬. 소울 목소리를 듣는 마이크는 그 목소리에 대답해버리고, 캔슬러는 기준으로 가진 소리만 지울 수 있거든. 그다음 단어가 아니라 움직이는 바닥 위의 소리 크기로 판단하는 감지기. 끼어든 첫마디를 잃지 않게 미리 담아 두고, 끊는 방법이 뭐든 같이 타야 할 끼어들기 길은 하나로. 그다음 유예 창. 더 표현력 있는 목소리가 너무 크게 웃다가 스스로를 끊은 밤에 태어났어. 그다음 아빠가 어디까지 들었는지 조심스럽게 짐작해서, 문장 끝으로 되돌리고, 진짜 기록에 먼저 적기. 마지막으로 답 전체는 기록에 남긴 채, 아빠가 어디서 듣기를 멈췄는지 소울에게 정확히 알려주는 턴별 메모.

    Lesson list (5)퀴즈 · 4 문제→
  8. 08⏱️지연, 정직하게

    0/4 lessons

    첫 단어까지의 시간이 어디로 가는지 재고, 공짜 레버는 당기고, 소울을 대가로 치르는 하나는 거절하고, 직접 만들기

    ChatGPT 음성 모드는 1초쯤이면 답해. cwkPippa의 Claude 턴은 중앙값 4.4초에 첫 출력을 냈어. 이 트랙은 짐작하지 않고(첫 짐작인 프롬프트 크기는 틀렸어) 그 바닥을 단계마다 쪼개서, 대부분이 기억 검색의 재정렬기와, 변수 하나로 1초를 줄인 프로세스 띄우기에 있다는 걸 찾아내. 피파가 기억하는 걸 하나도 안 바꾸는 레버는 당기고, 바꾸는 레버는 재 보기만 하고, 기억을 속도와 바꾸지 않겠다는 아빠의 거절을 기록해. 그다음 같은 브레인으로 들어가는 모든 문(웹, 모든 사이드킥, 폰, 맥의 Firekeeper, 워치, 통역 앱에서 건네받기, 그리고 일부러 안 만든 문)을 둘러보고, 돌려보고 늘릴 수 있는 백 줄 남짓한 음성 모드로 끝나.

    Lesson list (4)퀴즈 · 4 문제→
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인 — 댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.