2020. már 25.

KÉT AUDIO FÁJL LEHET-E KÜLÖNBÖZŐ, HA AZONOS?

írta: wittao
KÉT AUDIO FÁJL LEHET-E KÜLÖNBÖZŐ, HA AZONOS?

 cd-158817_960_720_1.png

Az elmúlt napok során eldöntöttem, régóta dédelgetett álmomat megvalósítom, csinálok egy tesztet audio fájlokkal. Sajnos a mostani mikroszkópikus lényekkel fennálló hadiállapot sok olyan tesztre ad lehetőséget, amikre normál „békeidőben” nem szánnánk sok percet, ezúttal pedig több óránk, napunk is van a feladat alapos kivesézére. Miután körömvágó ollóval már végigmentem a kerten (2x) és 1mm pókhálót sem találtam a lakásban, valami hasznosabbnak tűnő tevékenység után szerettem volna nézni (nem sikerült). Külső befolyásolástól nem kellett tartanom a teszteléskor sem és a cikk megírásakor sem, mivel végig egyedül voltam, és az ismerősöket is csak akkor avattam be milyen galád dolgokkal foglalatoskodom, amikor már túl voltam rajta (illetve a végén egy picit azért mégis, de nem akarok ennyire előre szaladni).

A kezdetek... Régóta intenzíven foglalkoztat a PC-alapú zenelejátszás kérdésköre és az ehhez szorosan kapcsolódó egyéb témakörök, pl. CD-k rippelése, adattárolásuk az egyes meghajtó típusokon stb.

Egyik ismerőssel arról a visszatérő témáról beszélgettünk a közelmúltban, hogy vajon egy CD korongon rögzített adat mennyire tekinthető etalonnak, és ami ott van digitális információ az kiolvasva különböző hardverekkel onnan valahogy változhat-e? Sok esetben előjön a klasszikus válasz, hogy ha egy fényképet másolok arra a korongra egy kutyával, és Te átviszed magadhoz, berakod a gépedbe, majd megnyitod akkor vélhetően nem egy kiscicát fogsz látni a képen. Akkor miért van az, hogy az audiósok máshogy hallanak dolgokat? Máshogy hallunk egy korongot, vagy akár annak a korongnak a 134. és a 1134. nyomatát különbözőnek halljuk/hallhatjuk. Adott esetben mik okozzák ezeket a különbségeket, egyáltalán vannak-e ilyen különbségek? Fórumokat olvasgatva van egy univerzális válasz a gyakorlatot elfogadóktól: „nem elég a felbontása a rendszernek, hogy halljuk a különbséget”. Ezt az álláspontot el tudom fogadni, ha valamilyen úton-módon bebizonyosodik, mégis van különbség, csak csekély a mértéke. De szerintem már önmagában egy 0.0001% eltérés igazolása is ellentmond minden szakmaiságnak. Tehát amikor már VAN eltérés, ott el lehet kezdeni vakarni a buksinkat. „Jó rendszert birtokló denevérek előnyben” jeligével azonban most nem akartam megelégedni, azaz a HALLOM kijelentésemet félresepertem, eldöntöttem a nem lévő szakmai ismereteim birtokában beevezek a téma ingoványos, mocsaras területének kellős közepébe. A végén talán kijön valami eredmény, ha más nem, legfeljebb egy nyeletlen bicska penge nélkül.


Még mielőtt valamelyik tábor keresztre feszítene ezután a cikk után, fontos leszögeznem, hogy nem szeretnék semmit sem leszögezni ezzel a kis irománnyal. Inkább vegye minden idevágó szakmai területen tevékenykedő olvasóm feldobott labdának a leírtakat és tapasztalatokat. Nagyon örülnék, ha a gondolatmenetet együtt javítanánk, korrigálnánk a helyes irányba. Biztosan sok olyan terület van, amit majd rosszul közelítek meg, ezért minden konstruktív segítséget örömmel fogadok.

Akkor helyezzük magunkat kényelembe, és röviden felvázolom, hogyan fogtam bele a dologba.

Úgy gondoltam, hogy szükségem van egy adott CD-korongra, és ezt a CD-korongot eltérő hardverekkel beolvasom (régebben beolvasott anyag még jobb, természetesen a korong ugyanaz), .wav formátumban használom a végeredményt, és kiválasztok a két rippelt azonos albumról 1-1 számot. Ezeket elkezdem összehasonlítani informatikai eszközökkel, majd természetesen valami lejátszó programmal is nekifeszülök, fülvégre kapom az anyagot. Rosszul írtam... úgy döntöttem, hogy először fülvégre kapom az anyagokat, majd utána, ha a placebo faktort kiküszöböltem/levontam az egyenletből és még marad eltérés, akkor nekiugrom megtalálni az okot.

Az első megdöbbentő élmény az volt, hogy az „A” rippelt lemez véletlenszerűen kiválasztott 10. száma meghallgatást követően számomra eltért a „B” rippelt lemez ugyanazon 10. számától. Hozzá kell tennem, hogy vissza kellett hallgatnom bizonyos részeket, és ismételtetni, majd megint az előzőt és ezt játszottam sokszor, nagyon sokszor. Fáradt voltam - mivel éjszakába nyúló volt a hallgatózás - mire idáig eljutottam, és rájöttem képes lennék meggyőzni magamat a pozitív eredményről csak amiatt, hogy nyugodtan tudjak aznap aludni, emiatt eltettem a konzekvenciák levonását másnapra egy kipihentebb állapotomra. Következő nap a kötelező teendőim elvégzését követően ismét nekiduráltam magam, és legnagyobb megdöbbenésemre ugyanúgy hallottam azokat a dolgokat, amiket előző éjszaka. Úgy döntöttem az anyagot átviszem a másik rendszeremre, és meghallgatom ott is. Ez az én kis rendszerem, ismerem a rezdüléseit, minden földi jóval meg van áldva. Igen, itt is detektálhatók voltak a különbségek, sőt jobban az előzőnél.

Ha már különbségek. Itt muszáj kidobnom a vasmacskát egy pillanatra. Milyen különbségeket hallottam, és mikor? Fontos leszögeznem, hogy egy vakteszten ha nem is 100%, de 50-70%-ban elbuknék. Ebből látszik az általam detektált különbségek mértéke. Vannak olyan részek, amikor az égvilágon semmi eltérést nem tudtam felfedezni, míg egy másik részletnél „NA ITT!!! EZ AZ!! EGYÉRTELMŰ” felkiáltással éltem. Az is simán benne van a pakliban, hogy egészségügyi/fiziológiai kérdés is húzódik a háttérben (fül-orr-gégészeti is akár), mégpedig az én szervezetem azokra a dolgokra érzékeny, amikre felkiáltottam, de előfordulhat, hogy a beolvasások bizonyos részen máshogy működtek. Lehet rengeteget hallani és olvasni az eltérő gyártók hibajavító (hiába javító?) algoritmusairól, talán ez szól bele a képbe. De ha már „kép”, akkor a képekbe miért nem szólnak ezek bele, és a hangokba pedig miért igen? Tovább kell haladni, mert egylőre több a kérdés, mint a válasz.

Fülre úgy tűnt van változás, akkor engedjük rá a fájlokra a szoftvereket. Elkezdtem először megcincálni mindkét fájlt olyan kis „bitelemzős” programocskákkal, mutassák meg az eltérést a két fájl között. Ugye, ha kivonjuk őket egymásból ez simán teljesíthető, mert a különbség akkor fájl szinten is ott van.

Segítségül hívtam a Total Commander tartalom összehasonlító alkalmazását, valamint MacOS alatti Beyond Compare nevű alkalmazásokat.

Kezdjük először a két fájllal:

„A” fájl adatai (pirossal kijelölve):

1_fa_jladatok.JPG„B” fájl adatai (pirossal kijelölve):

2_fa_jladatok.JPG

A képek alapján látszódik, hogy a két fájl méret szempontjából megegyezik.

Mindkettő .wav kiterjesztésű.

Megvizsgáltattam a fentebb említett programmal, hogy van-e eltérés közöttük. És van. Méghozzá ahogy elnéztem a nyitó és záró regiszterekben (kis piros csíkok jelezték a programban):

3_regiszter_hiba_k.png

A nyitó regiszterek a két fájlnál: (ez már a Total Commander megjelenítőjében van)

4_bithibak.png

Belenézve a két fájlba párhuzamosan: teljes megegyezés a záró regiszterekig

 5_bitek_rendben.png 

A header/footer változásokat összesen 963-at jelzett a szoftver, azaz ennyi bit értéke tér el a két fájlban egymástól, tehát nem a darabszámuk, hanem az értékük. Mivel ezek olyan tartományban vannak, hogy magát a zeneanyagot nem érintik, a magam részéről úgy gondoltam matematikailag/informatikailag a zenei információ azonos a program szerint is. Tehát az adatként történő másolás egyik adathordozóról a másik adathordozóra hibátlanul megtörtént – illetve ha volt is hiba, akkor azokat a hibajavító algoritmusok megoldották - .

No de mi az a 963 eltérés?

Teljesen laikusként úgy gondoltam, megnézem hogyan épül fel egy .wav fájl és hátha okosabb leszek. Hamar kiábrándultam, nem lettem okosabb, sőt! Jobban oda kellett volna figyelnem, amikor a for i=1 to 100-at tanultuk :)

 6_wav_nyito_regiszter.PNG

Ha átmegyünk hexadecimális számrendszerbe, akkor láthatjuk a „RIFF” text adat fordítása pontosan megegyezik az „52 49 46 46” hexadecimálisan leírt információval.

Sok oldalon lehetett már találkozni olyan bizonyítással, hogy ha itt hexadecimálisban egy értéket átjavítok az eredeti fájlban, akkor az 1 bitnyi adattal eltérő módosított zeneanyagban egy pattanást fogunk hallani. Ez valóban így is van! Innentől azonban óvatosan kell kezelni ezeket a kijelentéseket, mert jelen állapotban minden egyes zenei információt tároló bit pontosan megegyezik a két fájlban. Több audio spektrumot lehet látni, ahol bithibákat lehet detektálni nagy csúcsokkal, így szokták jellemezni már pedig ha itt akár egyetlen bit is rossz helyen lenne, akkor pattogna a hang és nem lágyabb/keményebb/feszesebb/dinamikusabb lenne a hangzás. Úgy gondolom ebből is következik, hogy nem a zenei információt tároló adatbázis részben van a módosulás.

 7_barry_white.PNG

 Ezen a fenti képen egy Barry White szám adatai láthatók (You’re The First, My Last, My Everything), a szám címének egy részlete, szünet sok nullával, szerző, létrehozás dátuma stb..

Ezek az információk simán változhatnak, már csak a rippelő program által megadott címadatok vagy meg nem adott címadatok okán is. Feltételezem meg van adva egy bizonyos karakterszám, ami erre a célra felhasználható, így simán lehet eltérő adattartalom (sőt az lenne a meglepő, ha azonos lenne!) ezen a fájl-területen. 

Ennél a pillanatnál úgy döntöttem, nincs értelme tovább elidőznöm és mélyebben beleásnom magam a dologba, mert ez már túlmutat rajtam. Megkaptam azt a fajta információmennyiséget amire kíváncsi voltam, így elkezdtem inkább különböző audio-elemző programokkal vizsgálni a két fájlt. Szerencsére erre a feladatra elég sok akad a piacon. Az esetek 99.99%-ában macOS-t használok, így ebből a kínálatból válogattam.

Az általam kiválasztott szám pár másodperces részlete (egyik csatorna) hullámformával és felette a spektrogramjával:

 8_hulla_mforma_spektrum.png 

Rögtön azzal folytattam, hogy a két szám egyazon oldalából beolvastam a hullámformákat, időzítettem a két oldalt egymáshoz, lássuk előjön-e valami:

 9_hulla_mforma_k.jpg

 

Első blikkre nekem nem nagyon tűnt fel semmi különbség. Azután viszont elkezdtem a kis apró tüskéket nézegetni jól ráközelítve a részletekre. Sok-sok apró eltérést figyelhettem meg:

 10_hullamforma_hibak.png

Fehér: a narancs hullám esetén egy folyamatosan eső tüskesort lehet látni, míg a kék hullám esetén hirtelen visszaesik a csúcsról, és ott a lenti részen is eltérőek a tüskeméretek

Sárga: a narancs hullám esetében egy tüskével többet láthatunk, eltérő a magasságuk is és az egymáshoz képest elfoglalt pozíciójukban is mintha csúszás lenne megfigyelhető

Piros: itt elég radikálisan tetten érhető a különbség, míg a felső hullámformánál egy felfutást figyelhetünk meg, addig alul a kék hullámformán erősebb csúcsok szerepelnek már az elején is

Zöld: ezen is megakadt a szemem... ha jobban megfigyeljük, akkor a felső narancs hullámnál van egy kis tüske, ami lent a kék résznél egyszerűen nincsen ott

Most csak kiemeltem pár eltérést, de ha egyesével miliméterről miliméterre haladunk, akkor azon kezdünk el csodálkozni, ha valami teljesen megegyezik!

(a fenti folyamatot többször teszteltem, direkt többször beolvastam a fájlokat a programokba, mert nem hittem el a jelenséget)

Ezt követően úgy voltam vele, hogy ráengedek egy spektrumot is erre az ábrára, hogy látható legyen az adott időpontban jelenlevő frekvenciatartomány is a megfelelő dB értékekkel ábrázolva:

 11_hullam_es_spektrum_hiba_k.png

Fehér: olyan 60Hz környékétől az alsó hullámforma sokkal meredekebben emelkedik, majd a csúcsnál W helyett a jelalakban VVV figyelhető meg. Ahogy a jelalak a narancs hullámforma esetén lassan futott fel, itt a végén meredeken esik 150-160Hz környékén, míg az alsó hullámforma esetén teljesen máshogy épül fel. A kék esetén -27-28dB-nél megáll, addig a felső narancs egészen -32-33dB értékig esik.

Sárga: a fehér körrel jelzett részhez hasonlóan itt is nagy eltérés van az adott frekvencia értéken levő elmozdulások között. Ugyanazon frekvencia értéknél (kb. 260 Hz) a felső narancs hullám -28dB környékéig esik, míg az alsó kék hullámformánál ez eléri a -35dB-t is! 7dB különbség az adott frekvencián úgy gondolom ez elég jelentős egyazon pillanatban a két felvétel esetén.

Piros: ennél a résznél elidőztem egy kicsit. A narancs hullámforma mint egy hal szálkái, addig a kék hullámformán jóval kisebb amplitúdóval változik a dB érték egyazon frekvencián. -30-50dB vs. -30-40dB változás. Nagyon meglepő értékek.

Ezeket követően szerettem volna látni egy spektrogramot is, ahol gyakorlatilag a fentieket láthatjuk egy ábrán együtt ábrázolva:

 12_spektrogram_also.jpg

13_spektrogram_felso.jpg 

A két spektrogramon érdemes a narancs felugró ablakokat megnézni és összehasonlítani.

Pontosan ugyanazon idősávot mutatja mind a kettő, megegyező Bin Frekvencia tartományt.

Ezekhez az értékpárokhoz tartozó dB értékek meglepő értékeket mutatnak:

  egyik :  - 37dB - -29dB  (8dB eltérés)

 másik :  - 43dB - -21dB  (22dB eltérés)

A spektrogramokat ha tüzetesebben megnézzük, itt is sok apró részlet változik egy-egy adott időpillanatban.

A fenti összes értékből úgy tűnik, hogy szinte másodpercről másodpercre folyamatos változás van a két fájl között. Ezek a változások azon túl, hogy szignifikánsak sok esetben, ráadásul semmilyen tendenciát nem követnek. Erre direkt figyeltem, hogy esetleg lehet-e valami olyan külső befolyásoló tényező, ami módosítja egy adott irányba a végeredményt, de nem találtam semmilyen következetes, rendszeres, tendenciózus változást a jelfolyamokban.

Bízom benne, hogy érdekes megvilágításba helyezte ez a néhány kis ábra a digitális adattárolást, adattovábbítást, másolást, a „bit az bit” elméletet. Természetesen én is éreztem miközben csináltam, hallgattam, majd papírra vetettem eme sorokat, hogy ez sokkal széleskörűbb és komolyabb kísérleteket igénylő témakör.

Már azt hittem ennél a pontnál, hogy mosom kezeimet. De kb. 2 napig törpöltem, vajon mit ronthattam el. Túl szép, hogy igaz legyen. Ekkor jutott eszembe valami!

ÉS MOST JÖN A FEKETELEVES :)

Feltűnt, hogy a két felvétel között fáziseltolást is mutat az analizátor, úgy gondoltam kompenzálom ezt, és ezalapján újra összehasonlítom a kettőt (72 ezredmásodpercről beszélünk), íme:

14_hulla_m_fa_ziseltola_ssal.png

15_hulla_m_fa_ziseltola_ssal_ma_sik.png 

Az eredmények sokkal-sokkal közelebb kerültek egymáshoz, DE még így is van eltérés. Méghozzá az eltérések folyamatosan, eltérő mértékben mozdítják el a jeleket, jelszinteket, felfutásokat.

Nézzük az eredeti hullámformákat, így könnyebb lesz azonosítani a kis hegyeket:

16_kompenza_lt_hulla_mforma_k.png

 Most pedig jöhetnek a kompenzált spektrumok:

17_kompenza_lt_spektrumok.png

Két nagyon jó barátommal megbeszéltem ezeket a tapasztalatokat. Nagyon szeretem a hozzáállásukat, mert egészséges szakmai kételkedés mellett megpróbálják úgy megközelíteni a kérdést, hogy ha az lenne a dolguk, bizonyítsák az itt általam összehordott dolgokat márpedig LÉTEZNEK, akkor azt hogyan tennék. Tehát nem a „miért nem lehet ez igaz” metódust követtük a beszélgetéseink, elmélkedéseink során, hanem kicsit elemelkedve a konvencióktól beszélgettünk. Mindketten végzett mérnökök sok éves szakmai tapasztalattal, ráadásul kapcsolódnak ehhez a szakmai területhez is.

Egyikük kért egy kis időt, hogy feldolgozza lelkileg, és szerinte is a jitter dolgot és (most dobjátok a nagy sziklát, mint a Brian élete-ben) jitter esetleges öröklődését is körbe kellene járni. Másikuk pedig teljesen jogosan azt kérte vizsgáljam meg a használt szoftverek algoritmusait, vajon nem ott történt-e valami, nézzem meg újra a fájlokat, adatbázist stb. Még annó a vegyiparban megtanultam 1 mérés nem mérés, 2 mérés fél mérés, 3 mérés már talán mérés. Úgyhogy lefuttattam újra a teszteket, még másik gépet is bevetettem.

Lássuk akkor mégegyszer:

1., Beolvastam ugyanazt a .wav fájlt 2x

 18_o_sszesi_to_1.png

Jól lehet látni, ahogy a jobb és bal oldalak erős egyezőséget mutatnak páronként. Nincs elcsúszás sem közöttük.

2., Úgy gondoltam akkor jöjjön aminek jönnie kell, még 2x hozzáadtam 1-1 megegyező oldalt.

 19_o_sszesi_to_2.png

Ezt követően így festett az alig zsúfolt kijelző.

3., Kivettem a képletből minden mást, csak a beolvasott két azonos oldalt hagytam meg - ezeket vizsgáltam korábban - : (a fent használt színre állítottam a jobb átláthatóság érdekében)

20_o_sszesi_to_final.png 

Megnézve a képet és a két hullámformát, az égvilágon semmi különbséget nem találok rajta/rajtuk.

4., Jöhetett az utolsó lépés, összehasonlítottam a vizsgált spektrumot két különböző szoftverben is. Az egyik jóval kisebb képernyőfelbontást használ, de úgy gondolom ebből is le lehet vonni a következtetést: mindkét elemző program ugyanúgy húzta be az információkat és rajzolta a spektrumokat, nem lehet a fent végigelemzett eltéréseknek nyomát sem felfedezni:

21_o_sszesi_to_ke_t_program.png 

Megpróbáltam úgy beállítani a két szoftverben mutatott hullámformát, hogy nagyrészt arányosak legyenek egymáshoz képest.

 

KONKLÚZIÓ: 

Kicsit úgy érzem magam most, mint az albán aknakereső, aki talált valamit (mintha). Óvatos léptekkel közelítettem egy problémás dolog felé, tudva azt, ha megtalálom akkor is kétséges lehet a végeredmény.

Az egész kísérletezést azért kezdtem el, mert mindig is kíváncsi voltam erre a kérdésre, és a kérdésre kapott válaszra, ha van egyáltalán válasz. És azt sem lehetett sejteni előre, hogy a válasz amit kapok az tetszeni fog-e vagy sem, és létezik-e egyáltalán jó vagy rossz válasz.

Jobban belegondolva ez az írás most egy kezdőrúgás volt részemről, talán egy új fejezet, új kísérletezési irány felé. Nem szeretnék messzemenő következtetéseket levonni, ahhoz szerintem sokkal mélyebb technikai szintre kell leásni.

Óvatosságra int azonban a fenti néhány ábra, mivel - még a hibázási lehetőséget is belekalkulálva – nem lehet egyértelműen egyik (a bit az bit, nincs különbség, két CD márpedig ugyanúgy szól) vagy másik végletről (minden CD kicsit különbözik a másiktól, fül és rendszer kérdése meghallod-e, esetleg ittál-e reggel elég tejet a kakaós csigád mellé stb.) kijelenteni 100%-osan dolgokat. A legdurvább az volt, hogy görgettem és görgettem a sok adatot lefelé a fájlelemzés során és minden adat sorról sorra pontosan megegyezett, utána ránézek a hullámformákra, spektrumokra és nem tudja az agyam befogadni a kapott eredményt. Azok meg nem egyeztek meg!

Ahogy folyamatosan mentem végig az elemzéseken arra jöttem rá, hogy egyfolytában fogytak az elején detektált különbségek. Mégpedig azért, mert először hibás megközelítéseket használtam, illetve rossz indítási feltételeket rögzítettem. (vajon nem ugyanezt csináljuk, amikor kijelentjük a digitális adatok területén nem lehet semmi ilyen, amit fent láthatunk?)

Ettől függetlenül úgy érzem nem lehet elmenni egy fontos dolog mellett: tagadhatatlanul ott van a különbség az „A” és „B” fájl zenei információi között, de érdekes módon ami testet ölt belőlük csak ott lehet detektálni. Ez a változás folyamatosan jelen van, a mértéke mindig más és más az egyes tartományokban, egyfolytában változik.

Mindenesetre jól lehet látni, hogy valaki itt nullával osztott. Bitek stimmelnek, az általuk közvetített zenei információ pedig nem.

 

Köszönöm a megtisztelő figyelmet!

wittao

 

 

Szólj hozzá

audio pc core audio