"엔진은 자기가 찍은 것만 서빙해. 없는 건 없다고 말하고."
공짜 상태의 유혹
오래 사는 엔진한텐 언젠가 꼭 이런 제안이 와. 다른 도구가 채워둔 캐시 디렉토리, 손으로 밀어넣은 오디오 파일, 딴 시스템 백업에서 복원한 산출물. 겉보기엔 공짜지. 소리가 이미 있는데, 그냥 읽어주면 유료요청 하나 아끼는 거 아냐? 근데 그 셈엔 빠진 게 하나 있어. 그 파일이 어떤 규칙으로 만들어졌는지, 이 엔진은 모른다는 거. 앞으로도 영영 모르고.
정직한 키가 없어
Bellows의 content-addressed 캐시는 합성에 영향 주는 설정 전부로 키를 매겨. 정규화된 텍스트, 해석된 binding, 모델, 목소리 설정, 사전 버전까지. 필드 하나하나는 트랙 4에서 해부해. 키는 약속이야. 같은 키면 같은 소리. 근데 다른 도구가 찍은 항목은 그 약속 밖에서 태어났어. 무슨 설정이었는지, 정규화를 거치긴 했는지, 사전은 몇 번째 버전이었는지, 어디에도 안 적혀 있어. 그러니까 여기선 정직한 키가 없어. 그걸 import하면 유료요청을 아끼는 게 아니라, 어떤 설정이 새 뜻을 갖는 날 엉뚱한 오디오를 뱉는 지뢰를 심는 거야.
조용한 대체 금지
이 규칙엔 서빙 쪽 짝이 있어. 캐시에 없으면, 없는 거야. 엔진은 빈자리를 남의 물건으로 안 메워. 없는 상태는 둘 중 하나로 가. 정상 유료 경로로 새로 합성하거나, 명시적 에러로 요란하게 실패하거나. 어디서 주워온 파일로 조용히 때우는 세 번째 길은 없어. 자기가 안 만든 산출물로 몰래 fallback하는 엔진은, 이름만 하나 쓴 반쪽 시스템 둘이야.