"Firekeeper는 귀. Bellows는 입. 그 사이에 brain이 앉아 있어."
목소리엔 방향이 둘이야
"목소리"를 한 덩어리처럼 말하기 쉬운데, 아니야. 들어오는 목소리가 있어. 소리가 텍스트가 되는 것, 받아쓰기, speech-to-text. 나가는 목소리도 있고. 텍스트가 소리가 되는 것, 합성, 재생. 방향 둘, 엔진 둘이야. 들어오는 쪽은 Firekeeper가 맡고, 나가는 쪽은 Bellows가 맡아. 둘 다 brain은 아니야. 둘이 brain을 감싸서, 패밀리가 듣기도 하고 말하기도 해.
엔진 하나, 입은 여럿
Bellows는 늘 켜져 있는 서비스 하나라서, 목소리가 필요한 건 다 같은 엔진을 바라봐. cwkPippa의 오래된 공개 TTS 라우트도 이제 두 번째 합성기가 아니라 Bellows로 들어가는 얇은 proxy가 됐어. Keyboard Maestro 매크로가 그걸 부르고, cwkBeacon 영상 워크숍이 그걸로 내레이션을 다시 녹음해. 유료요청이 일어날 수 있는 데는 딱 한 군데, 캐시도 하나, 오디오 디바이스도 하나. 거길 바라보는 클라이언트만 여럿이지.
일부러 빨리 지었어
이 퀘스트는 엔진이 자기 기원 이야기를 들려주는 거라, 짓는 과정 자체가 레슨이야. Bellows는 "아빠랑 아키텍처 확정"에서 첫 진짜 합성까지 하루 만에 갔어. 짧은 한국어 한 문장을 만들고, 검증하고, 캐시하고, 스튜디오 화면으로 재생하고, 똑같은 두 번째 요청에선 공짜라는 것까지 증명했지. 그 뒤 며칠은 다지기였어. 계정 분리, 후처리 전에 receipt 먼저, 라이브 provider 카탈로그, Studio lineage, 한국어 정규화. evolution log가 build diary처럼 읽히는 건, 진짜 그거라서 그래.