Nejste přihlášen/a.
Poradíte v čem by se dalo relizovat toto:
Mějme audio soubor a ja bych chtělvětět kolikrat v něm intenzita zvuku překročí nějakou hraniic s tím, že mě zajima počet případů a pak vypis řekněme časových značek v kterých k tomu došlo.
Děkuji
Tento úkol lze provést pomocí programovacího jazyka a knihovny pro práci se zvukem. Například Python s knihovnami jako Librosa nebo PyDub může být velmi užitečný.
Postup:
Načtení zvukového souboru:
Načtete zvukový soubor a převedete jej na amplitudová data.
Nastavení prahu intenzity:
Určíte hodnotu intenzity (amplitudy), kterou chcete sledovat.
Vyhledání překročení prahu:
Procházíte amplitudová data a zaznamenáváte, kdy je překročen nastavený práh.
Výpočet časových značek:
Přepočítáte indexy těchto překročení na časové značky (na základě vzorkovací frekvence).
Výstup:
Zobrazíte počet překročení a jejich časové značky.
Ukázka implementace v Pythonu:
import librosa
import numpy as np
# Načtení zvukového souboru
audio_file = cesta_k_audio_souboru.wav
y, sr = librosa.load(audio_file)
# Nastavení prahu intenzity
threshold = 0.5 # Práh amplitudy (hodnota mezi 0 a 1, záleží na normalizaci)
# Najít překročení prahu
crossings = np.where(np.abs(y) > threshold)[0]
# Přepočet na časové značky (odstranění duplicit blízkých bodů)
timestamps = np.unique(np.floor(crossings / sr * 1000)) # čas v milisekundách
# Výstup
print(f"Počet překročení prahu: {len(timestamps)}")
print("Časové značky (ms):", timestamps)
Co si vybrat?
Librosa: Pokročilé zpracování, přístup k amplitudám, frekvencím atd.
PyDub: Jednoduché na použití, zvládne i práci s úrovněmi hlasitosti (v dB).
Pokud chcete, mohu pomoci rozšířit tento kód o grafy, výstupy do souborů apod.
Mělo by se to dát udělat v audacity. Ten je zadarmo.
A jinak pro Matlab by to byla hračka, jen by se to muselo naprogramovat (ze zvuku dostanete pole vzorků a v něm tu statistiku můžete udělat lehce), ale to neni zrovna levný software. Stačil by základ, žádné další toolboxy na to nejsou potřeba, všechno jsou to základní funkce. (Pokud máte k dispozici matlab, třeba jako student, tak to určitě využijte; narozdíl od normálních programovacích jazyků (pascal, c, java, python aj.) tento je přímo zaměřený na práci s maticema (už ten název vzniknul jako MATrix LABoratory) a vůbec matematické operace.)
Neneseme odpovědnost za správnost informací a za škodu vzniklou jejich využitím. Jednotlivé odpovědi vyjadřují názory jejich autorů a nemusí se shodovat s názorem provozovatele poradny Poradte.cz.
Používáním poradny vyjadřujete souhlas s personifikovanou reklamou, která pomáhá financovat tento server, děkujeme.