"텍스트를 어떻게 자르냐가 어떻게 들리냐를 바꿔. 그래서 자르기가 결정론적이어야 하고 — cache 키의 일부여야 해."
긴 텍스트는 잘려야 해
긴 구절은 chunk로 합성되고, 어디서 자르냐는 겉치레가 아냐 — prosody, 쉼, 숨을 빚어. Bellows의 chunker는 몇 개 명확한 규칙을 따라. newline은 hard 경계야: 텍스트의 줄바꿈이 말의 진짜 끊김이야. 그리고 홀로 선, 앞, 뒤 영어가 detach돼 — 한국어 문장 가장자리의 영어 덩어리가 자기 chunk가 돼. 이끄는 원리는 "단어는 온전하게, 문장은 detach"야: 절대 단어 중간에서 쪼개지 마, 근데 깨끗한 이음새는 경계가 되게 해.
자르기가 identity의 일부야
여기 트랙 4로 이어지는 연결이 있어: chunk 경계가 오디오를 바꾸니까, cache identity에 접혀 들어가. 같은 입력이, 같게 chunk되면, 같은 split을 내고 같은 캐시를 맞혀. chunking이 비결정론적이면 — 실행마다 다른 경계 — '똑같은' 요청이 매번 재합성하고, 캐시가 절대 안 맞아. 결정론적 chunking이 긴 오디오를 애초에 캐시 가능하게 만드는 거야.
결제 전에 preview해
split이 결정론적이고 중요하니까, Bellows가 그걸 너한테 보여줄 수 있어. Speak가 커밋 전에 정확한 chunk 경계를 preview해 — 텍스트가 어디서 끊길지 봐서, 이미 결제한 뒤에 생각 중간에 떨어지는 놀라운 자르기가 없어. 루프를 닫아: preview에서 보는 chunking이 합성되고, 키 매겨지고, 캐시되는 그 chunking이야.