언어 경계에서 합성을 쪼개면 오디오에 작은 틈이 남아. 한 요청이 끝나고 다음이 시작된 자리들. 본능은 그걸 없애는 쪽이야. 무음을 잘라내고, 구간을 딱 붙이고, 호출 하나였으면 그랬을 것처럼 내레이션이 끊김 없이 흐르게 만들기.
이 설계는 반대로 해. 이음매를 남기고, 조율해. 근거는 쪼개는 자리가 무작위로 안 떨어진다는 거야. 언어 전환은 전부 뜻의 경계에서 일어나거든. 인용이 들어오거나 나갈 때, 수정이 도착할 때. 그래서 틈이 어차피 쉼이 있어야 할 자리에 정확히 떨어져. 인용을 앞뒤 내레이션에 딱 붙이면 그게 인용처럼 안 들려.
그래서 기술적 제약이 표현 장치가 됐어. 흐뭇한 결말이고, 살짝 위험한 이야기이기도 해. 여기서 통한 건 특정한 정렬 덕분이야. 제약의 경계가 내용이 원하던 경계랑 겹쳤거든. 그게 보장되는 게 아니고, 이음매가 아무 데나 떨어지는 제약은 그냥 손상이야.
틈 길이는 상수가 아니라 매개변수야
틈을 찌꺼기가 아니라 내용으로 취급하기 시작하면 구현 하나가 따라와. 길이가 구간마다 달라져. 인용이 들어올 때 필요한 쉼이랑 평범한 문장 사이의 쉼이 다르고, 수정이 끼어들 때는 또 달라.
전역 상수 대신 구간별 매개변수로 만드는 건 작은 변경인데 뒤에 일반적인 교훈이 있어. 잘 맞춘 상수 하나는 뭔가를 '최소화할 골칫거리'로 볼 때 쓰는 거야. 사례별 매개변수는 그걸 '쓰고 있을' 때 쓰는 거고. 코드의 형태가 그 둘 중 뭐로 정했느냐에서 따라 나와. 그리고 보통 그 질문을 정하는 게 조율 자체보다 값어치가 커.
이런 뒤집기는 코드 밖에서도 알아볼 만해. 로딩 표시가 '기다림을 가리는 가림막'에서 '얼마나 남았는지 알려주는 장치'가 되는 순간, 애니메이션 길이는 최소화할 상수가 아니라 진행 상황에 묶인 값이 돼. 여백이 '남은 자리'에서 '읽는 속도를 정하는 장치'가 되면, 값은 하나가 아니라 자리마다 달라지고. 매번 같은 전환이야. 골칫거리에서 재료로.
제약이 남긴 흔적을 없애기 전에, 그게 어디 떨어지는지 봐. 내용이 이미 가진 경계에 떨어지면 남기고 다듬을 값어치가 있을 수 있어. 아무 데나 떨어지면 없애. 질문은 그 흔적이 의도된 거였냐가 아냐. 그 위치가 정보를 싣고 있냐야. 그건 우아함을 놓고 논쟁하는 대신 들여다보면 답이 나오고.
Code
내용으로서의 무음, 뜻을 가진 길이·python
@dataclass
class Segment:
key: str
lang: str # exactly one script per segment
text: str
gap_after: float # NOT a constant - this is authored
# a quote entering wants air around it;
# an ordinary sentence break wants much less.
SEGMENTS = [
Segment("s07", "en", "...and then he said something I did not expect.",
gap_after=0.55), # <- setting up a quotation
Segment("s08", "ko", "<the quoted line, in its own language>",
gap_after=0.60), # <- letting it land before returning
Segment("s09", "en", "He was right, and I had it backwards.",
gap_after=0.18), # <- ordinary continuation
]
# The gaps are not what is left over after cutting.
# They are authored, and they are part of the performance.
네가 만드는 것에서 기술적 제약이 남긴 흔적을 하나 찾아봐. 페이지 경계, 배치 가장자리, 페이지 나눔, 문서 파이프라인의 청크 경계 같은 거. 그 경계들이 내용 자체의 구조에 견줘 실제로 어디 떨어지는지 봐. 진짜 구분이랑 겹치면 눈에 보이게 만들고 의도적으로 다룰 생각을 해봐. 아무 데나 떨어지면, 그건 네가 그동안 한계라고 불러온 결함이야.
Hint
검색용 문서 청킹이 요즘 제일 선명한 사례야. 고정 크기로 자른 청크는 문장 한가운데, 논지 한가운데 떨어지고, 어떻게 포장해도 그게 기능이 되진 않아. 반면 제목에서 자른 청크는 저자가 이미 만들어둔 구분이랑 겹치고, 독자한테 구조로 내보일 수도 있고.
Progress
Progress is local-only — sign in to sync across devices.