D1D-Turbo
генератор барабанных ваншотов за 3 шага
D1D-Turbo — быстрая версия D1D («Drum 1D») от sixf0ur. Генерирует kick, snare и hi-hat как сырой waveform: 16 384 сэмпла при 32 кГц (0,512 с), моно. На один сэмпл нужно всего 3 прохода сети — около 0,35 с на 6-ядерном CPU.
📌 Ключевые особенности
- 🔥 Reflow-дистилляция учителя D1D (50 шагов + CFG = 100 проходов): CFG уже вшит в веса, достаточно 3 шагов Euler.
- 💻 CPU-only инференс: C++ header-only библиотека, CLI и Python/ONNX Runtime, без PyTorch.
- ✨ Встроенный learned output gate даёт цифровую тишину до удара и после затухания без постобработки.
- 💻 В репозитории:
model.onnxfp32 (opset 20) иmodel.bin; 4 872 770 параметров (19,5 МБ). - 🎧 Классы:
0kick,1snare,2hat; фиксированный формат 0,512 с, моно, 32 кГц. - ✅ 3 шага выбраны на слух; 4 и 8 звучат практически одинаково.
💻 Пример
import numpy as np, onnxruntime as ort
from huggingface_hub import hf_hub_download
sess = ort.InferenceSession(hf_hub_download('sixf0ur/D1D-Turbo', 'model.onnx'))
x = np.random.randn(1, 1, 16384).astype(np.float32)
for i in range(3):
t = np.array([i / 3], np.float32)
x = x + sess.run(None, {'x': x, 't': t, 'y': np.array([0], np.int64)})[0] / 3
# x[0, 0] — kick, 16384 сэмпла @ 32 кГц; пик-нормализуйте
Подробнее
Железо: только CPU; 0,34 с/сэмпл в C++ (12 потоков) и 0,35–0,38 с в Python ONNX.SNR к учителю для того же шума: 17,1–18,8 dB; тишина до/после удара: −160…−173 dB.
Ограничения: остаточный шум под звуком, не бит-в-бит копия учителя, слабый верх snare (8–16 кГц: 2,4% против 5,8% у реальных), фиксированные 0,512 с/моно/32 кГц и 3 класса.
CFG уже вшит: вес, отличный от 1.0, не имеет смысла. Лицензия CC BY-NC 4.0 — некоммерческое использование с атрибуцией.








Комментарии