Livrare LOT 1 - Didi

This commit is contained in:
Dezvoltari Evotech 2026-06-25 14:13:25 -07:00
commit 5380c3fc63
990 changed files with 133308 additions and 0 deletions

View file

@ -0,0 +1,34 @@
"""Spectrogram DSP tests (synthetic signals, no ffmpeg)."""
from __future__ import annotations
import numpy as np
from extractors.features import spectrogram
def test_compute_features_on_tone():
sr = 16_000
t = np.linspace(0, 1.0, sr, endpoint=False)
pcm = 0.5 * np.sin(2 * np.pi * 440 * t).astype(np.float32)
feats = spectrogram.compute_features(pcm, sr)
assert feats["sample_rate"] == sr
assert abs(feats["duration_s"] - 1.0) < 0.01
assert feats["spectral_centroid_hz_mean"] > 0
assert feats["discontinuities_s"] == []
def test_detects_energy_discontinuity():
sr = 16_000
quiet = np.full(sr // 2, 0.001, dtype=np.float32)
loud = (0.6 * np.sin(2 * np.pi * 300 * np.linspace(0, 0.5, sr // 2))).astype(
np.float32
)
pcm = np.concatenate([quiet, loud])
feats = spectrogram.compute_features(pcm, sr)
assert len(feats["discontinuities_s"]) >= 1
def test_empty_signal():
feats = spectrogram.compute_features(np.array([], dtype=np.float32), 16_000)
assert feats["frames"] == 0