仅列常用公共接口;完整签名以源码 docstring 为准。
import foleyflow
foleyflow.__version__
foleyflow.train_demo_generator(epochs=30, backend="flow", ...) -> (FoleyGenerator, TrainState)FoleyGenerator(model=None, *, audio_config=None, model_config=None, tags=None, backend="flow")| 方法 / 属性 | 说明 |
|---|---|
generate(prompt, *, timeline=None, config=None) -> np.ndarray |
文本 → 波形 |
generate_mel(prompt, ...) -> np.ndarray |
文本 → 归一化梅尔谱 (n_mels, n_frames) |
generate_to_file(prompt, path, ...) -> Path |
生成并写 WAV |
save(path) -> Path / FoleyGenerator.load(path, **kw) |
模型持久化 |
n_frames / fps / native_duration |
生成片段的帧数 / 帧率 / 时长 |
AudioConfig(sample_rate, n_fft, hop_length, n_mels, ...)ModelConfig(n_mels, n_frames, hidden_dim, n_layers, cond_dim, ...)GenerationConfig(duration_s, steps, guidance_scale, sampler, seed, align_strength)
MelSpectrogram(config).forward(waveform) -> (n_mels, T)griffin_lim(magnitude, *, n_fft, hop_length, n_iter=60) -> waveformGriffinLimVocoder(config)(mel_amplitude, length=None) -> waveformstft/istft/mel_filterbank/read_wav/write_wav
NoiseSchedule.create(kind="cosine", num_timesteps=1000)GaussianDiffusion(schedule, parameterization="v").q_sample(x0, t_idx, noise)、.compute_loss(model, x0, cond, rng)
ddim_sample(model, diffusion, shape, *, cond, guidance_scale, steps, eta)ddpm_sample(...)
make_path("rectified" | "trig")、FlowMatching(path)euler_sample / midpoint_sample / heun_sample(model, shape, *, cond, guidance_scale, steps)
TagVocabulary(tags)、EmbeddingTable(vocab, dim)ConditionEncoder(vocab, dim).encode(prompt) -> (dim,)classifier_free_guidance(cond_out, uncond_out, scale)
EventTimeline.from_times([...]).onset_envelope(n_frames, fps)onset_envelope_from_mel(mel)、spectral_flux(mel)dtw(a, b) -> (cost, path)apply_energy_alignment(mel, target_env, strength)、make_alignment_callback(...)
SyntheticFoleyDataset(n_mels, n_frames, cond_dim).build(samples_per_class) -> (X, cond, labels)Adam(lr, betas, eps, weight_decay)Trainer(model, objective, optimizer).fit(x, cond, epochs, batch_size) -> TrainState
MLPDenoiser(config).predict(x, t, cond) -> np.ndarraysinusoidal_embedding(t, dim)、FiLM(cond_dim, feature_dim, rng)