Kezdőoldal » Számítástechnika » Programok » Audacity 2. 0 - Nem tudok...

Audacity 2. 0 - Nem tudok veszteségmentes exportálást elérni semelyik hanganyagnál sem! Mit tudok ez ellen tenni?

Figyelt kérdés

Üdvözletem!

Lenne egy észrevételem az Audacity hangfelvevő-vágó-effektező alaklmazással kapcsolatosan, illetve a kérdés, hogy hogyan tudnám az alábbiakat kiküszöbölni!

A probléma az, hogy bármilyen zenénél, felvételnél, vagy importált WAV vagy akár RAW hanganyagnál, ha azt pl. ismét lementem, mindennemű változtatás nélkül, akár 16-bites WAV formátumban, vagy akár ha RAW-ként is exportálom, az adatszekvenciát torzítottan írja ki az Audacity exportálója, illetve egy nagyon alacson szintű zajt rákever. Ez a torzítás mondjuk egy fogyasztói zenénél, amit csak szórakozásból hallgatnék, elhanyagolhatónak mondható, szabad füllel képtelenség észrevenni normális körülmények között ; az torzítás csak 5-10 közötti értékű a bájtokat nézve, de ha jól tudom, ez már így egyből nem mondható veszteségmentesnek. PEDIG, ha szintén jól tudom, a WAV zenei formátumnak teljesen veszteségmentesnek kellene lennie. De ráadásul - ahogy mondtam - a fejléc nélküli elvileg teljesen "nyers" RAW formátumnál is ugyanezt csinálja! Pedig engem ez most kivételesen Tényleg zavar, mivel nem csak általánosságba vett zeneszerkesztést kellene csinálnom, hanem olyasmit, aminél lényeges lenne, hogy SEMMIFÉLE zaj, még egy bájtnyi nem kívánt torzulás se kerüljön a zene bináris adatszekvenciájába... Tudom, ez kissé így olvasva bizos zavaros és nem igazán tudnám itt leírni, hogy miért van erre szükségem, de a kérdésem és az észrevételem lényege ettől még nem változik, úgyhogy kérem, aki a magyarázatot és ennek a problémának a kiküszöbölését tudja, SEGÍTSEN!


Megpróbálom leírni és szemléltetni, hogy ezt hogy vettem észre, illetve hogy lehet láthatóvá, vagy akár hallhatóvá tenni az Audacity által oktalanul bekavart nem kívánt zaj:


Az első észrevétel alapja kb. az volt, hogy külső programmal egy bizonyos algoritmus szerint generáltam egy 16 bites elemekből álló adatszekvenciát, ami mondjuk megfelelt egy 44100 Hz-es mintavételi formátumban vett mono 441 Hz-es szinuszhullámnak. Ugye a generálás algoritmusa valami ilyesmi lenne:


const int periódusszám = 441, frekvencia = 441, amplitúdó = 32767;

int periódus = 44100 / frekvencia;

for (int x = 0; x < periódusszám; x++)

for (int y = 0; y < periódus; y++)

file.Write((Int16)(Math.Sin((y * Math.PI) / (periódus / 2)) * (amplitúdó / 2)));

file.Close();


Ezt utána az Audacity-vel importáltam, mint hanghullámot - mivel a könnyebbség kedvéért nem generáltam az adatszekvencia elejére fejlécet, ezért 16-bites Mono, endian nélküli RAW adatként csiáltam az importálást -, viszont amikor meg akár néminemű változtatás után, akár változtatás nélkül kiexportáltam RAW-ba, és az exportált fájlt megnéztem Hexadecimális Szerkesztőben (mondjuk a HxD 1.7.7.-es magyar verziója), mint a kétszer látható volt az eredeti adatszekvencia és az Audacity által kiírt adatszekvencia bájthalmazát összevetve, hogy zajszerű torzítások vannak mindenhol a kiexportált "hang" bináris állományában. Persze ehhez nem feltétlenül kell összehasonlítást csinálni, mivel ha az eredeti szekveinciában voltak egyértelműen és pontosan ismétlődő periódusok - a szinuszhullám pont jó példa erre - akkor az Audacity általi kimentésben már látszik, hogy ezek között az elvileg megegyező elemek között is zajszerű eltérések vannak.

Most személy szerint az én esetemben nem szóról-szóra ez történt, mivel nem csak kifejezetten szinuszhullámmal próbálkoztam, illetve nem direkt a veszteségmentesség meglétét akartam tesztelni, ahogy a leírásból érezhető lenne, de akár így is történetett volna, illetve végeredményét tekintve ez történt. Éppen ezért a hexadecimális szekvenciákat most nem tudom ide beszúrni szemléltetés gyanánt.

Viszont csináltam egy tesztet, ahhol Hexadecimális-Szerkesztő nélkül is - magában az Audacity-ben - láthatóvá lehet tenni ezt a sajnálatos program általi zajosítást ; ehhez képeket is csináltam (képfeltötési-linkekkel írom ki őket ide), illetve hozzájuk beszúrom a bináris szekvenciákat is, hogy jól érthető legyen a dolog:


Először is, szintén külsős algoritmussal generáltam egy szekvenciát, ami egy négyszöghullám-szerű vonulathoz hasonló, maximális amplitúdóval, ellenben "csak a felső pontokat csináltattam meg, az alsókat nem" - majd képpel is illusztrálom az érthetőség kedvéért, ahogy mondtam. Mindenesetre a bináris állomány eleje egy Hexadecimális-Szerkesztőben ez volt:


00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 FF 7F FF 7F FF 7F FF 7F FF 7F FF 7F

FF 7F FF 7F FF 7F FF 7F 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

FF 7F FF 7F FF 7F FF 7F FF 7F FF 7F FF 7F FF 7F

FF 7F FF 7F FF 7F FF 7F FF 7F FF 7F FF 7F FF 7F

FF 7F FF 7F FF 7F FF 7F 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 FF 7F FF 7F

FF 7F FF 7F FF 7F FF 7F FF 7F FF 7F FF 7F FF 7F

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 FF 7F FF 7F FF 7F FF 7F FF 7F FF 7F

FF 7F FF 7F FF 7F FF 7F 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 FF 7F FF 7F

FF 7F FF 7F FF 7F FF 7F FF 7F FF 7F FF 7F FF 7F

FF 7F FF 7F FF 7F FF 7F FF 7F FF 7F FF 7F FF 7F


... és-így-tovább ... Itt a "FF 7F" vonulatok négyszög tetejét adják 5-10-15-stb mintavételi pontig (most 16-bites sztereóként értelmezzük ezt, tehát egy mintavételi pont majd 4 byte lesz), a 0-ás bájtok pedig a nyugalmi pontokat.


Ezek után ezt Audacity-vel beimportáltam az állományt 16-bites sztereóként endian nélkül, ami egy ilyen hanghullámképet adott : [link]

Ezt a hanghullámot a következőkben lényegesen lehalkítottam, de úgy, hogy kicsit ránagyítva még mindig látható, figyelmesen hallgatva pedig még mindig hallható legyen az eredmény (- a függőleges tengelyen látszik a "ránagyítás mértéke" -) : [link]

Aztán ezt exportáltam RAW-ként, mindennemű fejléc nélkül 16 biten, majd rögtön vissza is importáltam RAW-ként ugyan olyan paraméterekkel, természetesen szigorúan az Audacity által exportált változatot : [link]


Itt már ha figyelmesen megnézzük a képet, látszik, hogy a vízszintes egyenesek nem pontosak, majdnem mindenhol vannak kilógó pontok, illetve vannak teljesen elcsúszott egyenesek is. Persze fül szempontjából kis eltérések, de akkor is eltérések és informatikai értelemben véve veszteséget jelentenek ezek is. Ez szemléletesen észrevételezhető a minta bináris állományán Hexadecimális-Szerkesztőből nézve:


01 00 FE FF 02 00 FE FF 02 00 FF FF 01 00 FE FF

03 00 FD FF 6A 00 66 00 68 00 69 00 66 00 69 00

66 00 69 00 67 00 67 00 02 00 FE FF 01 00 00 00

FF FF 01 00 00 00 00 00 FF FF 01 00 00 00 FF FF

03 00 FB FF 05 00 FC FF 03 00 FE FF 02 00 FD FF

6C 00 62 00 6D 00 63 00 6B 00 66 00 69 00 66 00

68 00 68 00 67 00 69 00 66 00 69 00 66 00 69 00

67 00 67 00 6A 00 64 00 03 00 FE FF 01 00 00 00

00 00 00 00 FF FF 02 00 FE FF 01 00 68 00 66 00

6A 00 65 00 6A 00 66 00 69 00 66 00 69 00 67 00

00 00 00 00 00 00 00 00 00 00 00 00 FF FF 01 00

FF FF 02 00 65 00 69 00 67 00 68 00 68 00 67 00

68 00 67 00 69 00 66 00 01 00 01 00 FE FF 03 00

FC FF 04 00 FD FF 03 00 FD FF 03 00 65 00 6A 00

65 00 6A 00 65 00 6A 00 66 00 69 00 66 00 69 00

66 00 69 00 67 00 69 00 66 00 68 00 68 00 67 00 ... stb-stb...


Itt a probléma abból látszik, hogy az eredeti mintaalapban 16-bites blokkokban nézve csak két állapot volt, az "FF 7F" és a "00 00" hexadecimális értékek, itt viszont összevissza fordulnak elő 0xFC - 0xFF és 0x60 - 0x70 körüli hex-értékek.


Végül pedig visszaerősítettem az Audacity által exportált és sajna elzajosított eme változatát, hogy még szembeötlőbb legyen a nem kívánt torzítás : [link]



A torzítás hallható szemléltetésére "kiötlöttem" egy másik, pofon egyszerű módszert, ami talán még egyértelműbb képet nyújt erről a torzításról, illetve hallható bizonyítékot ad róla:


Vegyük a csöndet!

A TELJES, egyértelmű csönd ugye digitálisan kb. annyit tesz, hogy a hangállomány minden egyes mintavételi pontja nyugalmi helyzetben van, egyetlen mintavételi pont sem ugrik el SEMENNYIVEL sem az alaphelyzettől. (Persze ez csak egy most összeeszkábált definíció, de remélem érthető belőle, hogy mire gondolok...)

Az ilyen "digitális" csönd bináris állományban akár 8, akár 16 biten olvasva csupa-csupa nulla.

Szóval akkor példakép töltsünk be az Audacity-be "hang"adatként valamennyi szakaszként ilyen "teljes" csöndet, egy csupa 0-ás értékű bájtból álló KÜLSŐ állományból olvasva, hogy biztosak legyünk benne, hogy nem a program csendgenerátorának a tökéletlensége miatt fogunk a továbbiakban végeredményben zajhoz jutni : [link]

Ezt a betöltött csendet utána mentsük, azaz exportáljuk ki akár WAV-ként, akár egyéb tömörítetlennek mondott formátumba. Az eredeti csöndet tartsuk meg a helyén, és ez alá importáljuk be azt, amit az előbb lementettünk (függően attól, hogy hogyan mentettük Audio-ként, vagy ha fejléc nélkül exportáltunk akkor RAW-ként) : [link]


Hoppá! Ha valaki figyelmesen megnézi az exportált, majd visszaimportált "csöndről" a fotómat, egy pontján láthatja is a nagyításnak köszönhetően, hogy kiugrás van.


...Ezután mind a kettőt erősítés "próbája" alá vettem, hogy egyértelműen látszódjon a turpisság, azaz hogy melyik a valódi és melyik az "ál"csend, vagy netán kiderüljön hogy mind a kettő az, hogyha én hibáztam volna valahol:

Az eredeti csöndnél az erősítés felugró paneljénél már a paraméterek alapján kikövetkeztethető, hogy akármekkora erősítés sem fog tudni változtatni a "hangmintán", mivel az "Új amplitúdó csúcsérték"-et az mintán történő előreszámolás alapján egyből mínusz végtelennek jelöli meg (bármekkora DB mértékű erősítésnél is), szóval az valódi csendnek mondható : [link]

Ellenben az exportált, majd visszaimportált mintának az erősítésének esetében már az előzetes erősítési mérték beállításánál a dialógusdoboz "új amplitúdó csúcsérték" számolása sejtetheti, hogy valami belekerült a kezdetben amplitúdó nélküli csöndbe : [link]

Egyszeri felerősítve is pedig e mintánál már megkérdőjelezhetetlenül látszik a bekeveredett zaj : [link]

Ugyanez nyilvánvaló a bináris állományának hexadecimális felírásában (erősítés nélkül):


FF FF 01 00 00 00 FF FF 01 00 FF FF 00 00 02 00

FC FF 04 00 FD FF 02 00 FF FF 01 00 FE FF 03 00

FD FF 02 00 FF FF 00 00 01 00 FF FF 00 00 00 00

00 00 00 00 01 00 FE FF 02 00 FE FF 02 00 FF FF

00 00 00 00 00 00 00 00 00 00 01 00 FE FF 02 00

FF FF 00 00 00 00 01 00 FF FF 01 00 00 00 FF FF

01 00 FF FF 02 00 FE FF 02 00 FE FF 01 00 00 00

00 00 FF FF 02 00 FD FF 03 00 FE FF 00 00 02 00

FD FF 03 00 FE FF 01 00 FF FF 02 00 FE FF 02 00

FE FF 01 00 01 00 FE FF 02 00 FE FF 01 00 01 00

FE FF 02 00 FE FF 02 00 FF FF 00 00 01 00 FF FF

00 00 01 00 FF FF 00 00 02 00 FC FF 04 00 FE FF

FF FF 03 00 FC FF 04 00 FD FF 02 00 FF FF 00 00

01 00 FF FF 00 00 02 00 FD FF 03 00 FE FF 01 00

FF FF 01 00 00 00 FF FF 02 00 FD FF 03 00 FE FF

00 00 02 00 FE FF 01 00 00 00 FF FF 01 00 00 00 ... stb-stb ...


...holott kezdetben csak 0-ás értékek voltak, amiken direkt és tudatos módon nem manipuláltunk, az itteni értékek pedig ismeretlen eredetűek...



Remélem érthető és követhető voltam a probléma leírásában!

Szóval egyáltalán nem tudom, hogy mi miatt kerül be nálam >minden< esetben az Audacity-nél ez a zajosítás, holott itt nem analóg felvételekről van szó, ahhol meg lehetne magyarázni a mikrofon, vagy akár a hangkártya hibátlanságából eredően ezt a zajt.

Vagy valamit külön be kell állítani az Audacity-ben a beállításoknál ehhez, hogy szigorú értelemben véve veszteségmentesen kezelje a hanghullám-adatokat?


szóval KÉREM, aki tud, SEGÍTSEN !!! Előre is köszönöm!



A kérdésemben, és CSAK itt a kérdésem leírásában hivatkozásként megjelölt " [link] kezdetű linkjei, címkéi és T7-pont-hu linkrövíditési sorszáma itt van jegyzékben utólag:


Eredeti.png : /Eredeti_www.kepfeltoltes.hu_.png : /03gi

Gyengített.png : /Gyeng_tett_www.kepfeltoltes.hu_.png : /03gj

Zajos.png : /Zajos_www.kepfeltoltes.hu_.png : /03gk

FelerősítettZajos.png : /Feler_s_tettZajos_www.kepfeltoltes.hu_.png : /03gl

ValódiCsönd.png : /Val_diCs_nd_www.kepfeltoltes.hu_.png : /03gm

ValódiCsöndErősítése.png : /Val_diCs_ndEr_s_t_se_www.kepfeltoltes.hu_.png : /03gn

ÁlCsöndErősítve.png : /_lCs_ndEr_s_tve_www.kepfeltoltes.hu_.png : /03go

ÁlCsöndErősítése.png : /_lCs_ndEr_s_t_se_www.kepfeltoltes.hu_.png : /03gp

ÁlCsöndTávolról.png : /_lCs_ndT_volr_l_www.kepfeltoltes.hu_.png : /03gq


És arra az esetre, ha nem megfelelő, illetve nehezen olvasható formában jelenítené meg az oldal a kérdés leírását, felrakom a "data-pont-hu"-ra TXT formátumban, ahonnét néhány hétig elérhető (a link eleje értelemszerű) : /get/5712549/Level.txt



2012. okt. 22. 18:15
 1/2 xrcxrc válasza:

Kedves Arnold,

ez egy tipikus dither jelenség (nem mondanám hibának), az exportálás során az eredetileg 32 bites hangmintát a program 16 bitesre alakítja, és hozzárakja ezt az érdekes zajt.

Ezt akkor is hozzáteszi, ha 16 bitesről 16 bitesre "konvertál" (no comment).

Ajánlom háttérforrás gyanánt a vikipédiát, [link] címen írnak a dither haszná(latá)ról.


Jó hír Önnek viszont, hogy ki lehet kapcsolni, a program beállításai között talál egy olyat, hogy


Minőség / Quality doboz, azon belül érdemes átállítani a

default sample format-ot 16 bitesre (márcsak a szükségtelen konvertálások minimalizálása végett), de ez még önmagában nem elég, az alatta lévő real-time conversion és high-quality conversion menüiben is be kell állítani a Dither-hez azt, hogy "nincs" :)

Remélem sikerülni fog, további kérdések esetén állok rendelkezésre.


A kérdésfeltevésének módszeréhez és kidolgozottságához mindamellett csak gratulálni tudok!


üdv

Balázs

2012. okt. 23. 10:09
Hasznos számodra ez a válasz?
 2/2 A kérdező kommentje:

Nagyon szépen köszönöm a válaszát, ez most lényeges segítség volt nekem!

A bitmélységi beállításokat én magam is próbáltam, csak ugye ez amint most meg lett válaszolva, nem elég! A minőségi-beállítások menüpontban is volt egy nagyon halvány sejtésem, hogy >talán< a 'dither' beállítása is benne lehet, de mivel egyrészt angolul nem tudtam értelmezni a kifejezést, másrészt meg már a próbálkozások lényeges részét felemésztették a merevlemezem tárhelykapacitásának, valamint a RAM-nak, ezért nem akartam újabb elhúzódó próbálkozásokba bocsátkozni, így feltettem eme internetes fórumra a kérdésemet, hátha próbálkozott vagy foglalkozott már ezzel más is.


Minden esetre érdekes jelenség volt számomra. A megoldást pedig még egyszer köszönöm!

2012. okt. 23. 10:31

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!