Portál AbcLinuxu, 17. července 2025 07:28


Dotaz: Jak hromadne roztridit zvukove nahravky?

3.2.2019 21:43 zdenek2008 | skóre: 26
Jak hromadne roztridit zvukove nahravky?
Přečteno: 541×
Odpovědět | Admin
Mam nekolik tisic wav souboru z diktafonu, kazdy kolem 18 MB nebo mene. Na vetsine je pouze ticho nebo nejaka zvukova kulisa, ty muzu smazat, ale nektere obsahuji hovor a ty bych chtel zachovat. Kdyz si soubor otevru v nejakem audio programu tak na grafu samozrejme ihned vidim kde mam konkretne hledat hovor; nechce se mi ale rucne prochazet stovky a stovky souboru a tak premyslim jak to zautomatizovat. Nemeli byste nekdo nejaky tip? Uvazoval jsem o TensorFlow, ale ta priprava/trenovani algoritmu by asi zabrala tolik casu jako delat to rucne, kdyz jsem s TF jeste ani nic nedelal. Kdyztak predem diky za pripadne napady.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

3.2.2019 21:53 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: Jak hromadne roztridit zvukove nahravky?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pokud jde jen o rozlišení tiché nahrávky od nahrávky s hlasitějším hovorem, můžeš využít např. efekt silence soxu a nějak si to naskriptovat dle potřeby.

https://digitalcardboard.com/blog/2009/08/25/the-sox-of-silence/comment-page-2/
Pavel 'TIGER' Růžička avatar 3.2.2019 22:21 Pavel 'TIGER' Růžička | skóre: 54
Rozbalit Rozbalit vše Re: Jak hromadne roztridit zvukove nahravky?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Já osobně jsem to dělal "ručně" skript mi přehrával soubory a po přehrání se zeptal na smazání, či přesunutí do archívu. Přesun proto, aby se dalo pokračovat tam, kde jsem přestal a nemusel jsem poslouchat to co už jsem slyšel. Případným posloucháním se dá pověřit i spolehlivá a důvěryhodná osoba.
3.2.2019 22:29 debian+
Rozbalit Rozbalit vše Re: Jak hromadne roztridit zvukove nahravky?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Vygeneruj si grafy a vyber podla pohladu. Ak nie, tak tam mas tam prikaz na export zvykovych hodnot do txt, co si mozes spracovat/analyzovat vo svojom oblubenym programovacim jazykom.
Josef Kufner avatar 3.2.2019 22:39 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Jak hromadne roztridit zvukove nahravky?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Můžeš si nechat spočítat průměrnou hlasitost nahrávky a podle té to pak roztřídit. Případně to předtím prohnat frekvenčím filtrem (pásmovou propustí), který by nahrávku omezil na frekvence typické pro kecání.

To naprogramuješ možná i rychleji než najdeš ;-)
Hello world ! Segmentation fault (core dumped)
3.2.2019 23:12 PetebLazar
Rozbalit Rozbalit vše Re: Jak hromadne roztridit zvukove nahravky?
Pokud ten diktafon mel AGC, pak se to mozna projevi na DR nahravek. Treba by to stacilo protahnout soubory dr14_meterem a roztridit soubory na s typickym diktafonovym DR a ty dalsi (ty na hrane zkontrolovat rucne). Pravda, rada masteringu z poslednich dekad se tam vejde asi take. :-(

3.2.2019 23:19 PetebLazar
Rozbalit Rozbalit vše Re: Jak hromadne roztridit zvukove nahravky?
Takto dopadl napriklad podcast kolegu z cnews.cz vystaveny ruzne agresivni kompresi dynamiky a zmenam v hlasitosti (ty se nad DR neprojevily) v Audiacity.
:~/Desktop$ dr14_tmeter .
cnewsfm-227t.wav: 	 DR 17
cnewsfm-227ccc.wav: 	 DR 8
cnewsfm-227.wav: 	 DR 17
cnewsfm-227tc.wav: 	 DR 15
cnewsfm-227cc.wav: 	 DR 16
cnewsfm-227c.wav: 	 DR 15
cnewsfm-227.mp3: 	 DR 17
DR = 15
4.2.2019 08:38 nemam
Rozbalit Rozbalit vše Re: Jak hromadne roztridit zvukove nahravky?
to zní rozumně... ale jak to udělat třeba v bashi nebo pythonu, je na to nějaká knihovna? dik
Jendа avatar 4.2.2019 10:25 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Jak hromadne roztridit zvukove nahravky?
Uříznou hlavičku, načíst, udělat z toho numpy.array. Průměrná hlasitost: numpy.mean. Jen pro některé frekvence: rozsekat na bloky a každý ooknit numpy.hamming a ztransformovat numpy.fft. Příklad:
def gen_spectrum(arr):
    fftsize = 1024

    W = np.hamming(fftsize)
    acc = np.zeros(fftsize)
    it = 0
    for i in range(0, len(arr)-fftsize, fftsize//2):
        sp = np.fft.fft(arr[i:i+fftsize]*W)
        pw = np.fft.fftshift(10*np.log10((np.square(np.real(sp))+np.square(np.imag(sp)))/fftsize))
        acc += pw
        it += 1

    acc /= it
Rychlejší by bylo to vhodně numpy.reshape a pak všechny ty operace udělat nad vektorem vektorů, ale to neumím napsat s overlapem.
5.2.2019 11:01 nemam
Rozbalit Rozbalit vše Re: Jak hromadne roztridit zvukove nahravky?
Super, numpy mě vůbec nenapadlo, určitě to použiju v mém projektu. Nemáš odkaz na nějaký good zdroj, kde se zpracováním zvuku přes numpy zabývají? Díík
Jendа avatar 5.2.2019 14:17 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Jak hromadne roztridit zvukove nahravky?
Bohužel jsem většinu věcí nabral za posledních 7 let co si hraju s rádiem tak nějak porůznu… Použité online zdroje píšu sem, ale je tam toho fakt hodně. A jestli je to o numpy nebo čemkoli jiném je podle mě celkem fuk, vždycky je to pár knihovních funkcí.
Jendа avatar 3.2.2019 23:55 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Jak hromadne roztridit zvukove nahravky?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Když to vidíš na grafu, tak asi budou mít různé maximální hlasitosti/histogramy samplů. Takže toto pro každou spočítáš a podle toho rozhodneš.

Jak to načíst? Buď je to WAV s PCM, pak stačí oříznout hlavičku a koukat na to jako na pole samplů, nebo je to nějak komprimované, a pak stačí spustit ffmpeg a zkonvertovat do raw formátu.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.