import numpy as np T_MAX = 256 L_MAX = 512 def preprocess(tokens, token_len, embedding, z=None): """S3 tokens(int32, 裁剪到 [0,6560]) + 长度 + 音色嵌入(float32) + 噪声(可选) -> 模型输入。""" tokens = np.clip(np.asarray(tokens, dtype=np.int32).reshape(1, T_MAX), 0, 6560) token_len = np.asarray(token_len, dtype=np.int32).reshape(1) embedding = np.ascontiguousarray(embedding, dtype=np.float32).reshape(1, -1) if z is None: z = np.random.randn(1, 80, L_MAX).astype(np.float32) z = np.ascontiguousarray(z, dtype=np.float32).reshape(1, 80, L_MAX) return [np.ascontiguousarray(tokens), token_len, embedding, z]