3D- LJUD Binaural syntes med hjälp av HRTF- filter och duplexteorin DT1174 Ljud som informationsbärare Sandra Liljeqvist sanlil@kth.se 2012-11- 14
Inledning Mitt mål är att illustrera binaural syntes med två olika metoder, nämligen HRTF-filter och duplexteorin. Binaural syntes innebär att efterlikna hur vi, med våra två öron, lokaliserar ljudkällor och skapa illusionen av att ett ljud kommer ifrån olika platser i rummet. Detta med en stereo-ljudfil som lyssnas på genom ett par hörlurar. För båda metoderna har jag endast fokuserat på horisontalplanet då vi är extra känsliga för individuella skillnader i ytterörats form och huvudets storlek när det gäller att lokalisera ljud i höjdled. Bakgrund Koordinatsystem Eftersom vi i det här fallet endast rör oss i horisontalplanet krävs bara ett tvådimensionellt koordinatsystem. Vinkeln som används för att bestämma riktningen i horisontalplanet (för det annars sfäriska koordinatsystemet) kallas azimuth och brukar ofta gå från 0 till 180 på höger sida om huvudet och från 0 till -180 på vänster sida. HRTF En metod för att återskapa de ledtrådar som behövs för att lokalisera en ljudkälla är att undersöka impulssvaret från ljudkällan på trumhinnan. Dess utseende beror på hur ljudet har interagerat med överkroppen, huvudet och öronmusslorna och bidrar till att vissa frekvenser förstärks och andra dämpas. Detta kallas Head Related Impulse Response (HRIR) och det som i praktiken används för att falta ljudet är dess fouriertransform som kallas Head Related Transfer Function (HRTF). HRTF är en funktion av fyra variabler, frekvensen och tre koordinatvariabler, och räcker för att positionera en ljudkälla i både sidled, höjdled och avstånd. En stor del i hur vi uppfattar ett ljuds positionering beror på individuella detaljer som exempelvis hur öronmusslan är utformad och huvudets storlek. Detta skapar självklart problem då ett filter kommer att fungera olika bra för olika människor. Dessa skillnader blir, som tidigare nämnt, extra påtagliga i höjdled, men är mindre uppenbara i sidled. På grund av detta brukar HRTF-databaser ofta innehålla flera olika uppsättningar filter med vissa variationer, för att passa så många som möjligt. Duplexteorin En metod för modellering är den så kallade duplexteorin. Denna beskriver de starkast bidragande faktorerna till det binaurala hörandet, nämligen skillnaden i ankomsttid och intensitet mellan de båda öronen. Dessa beräknas för ett sfäriskt huvud utan ytteröron och kallas Interaural Time Difference (ITD) och Interaural Level Difference (ILD). 2
Så länge ljudet inte kommer rakt framifrån eller bakifrån kommer ljudvågsfronten att anlända till respektive öra vid olika tidpunkter. Denna tidsskillnad utnyttjar hjärna för att kunna lokalisera ljudkällan. Även skillnader i ljudstyrka är en viktig ledtråd för positioneringen. I första hand höga frekvenser dämpas och upplevs som svagare vid det bortre örat. Detta beror på att diffraktion inträffar för våglängder större än huvudets diameter. Dessa böjs alltså runt huvudet och ljudet upplevs som ungefär lika starkt för båda öronen. När våglängden är kortare än huvuddiametern kan däremot huvudet betraktas som akustiskt stort och det skapas en så kallad ljudskugga. Reproduktion Filer binauralsyntes_hrtf.m raw_synthesis.m IRC_1003_R_HRIR.mat binauralsyntes_itd_ild.m ITD.m Beskrivning De tre första filerna ovan utgör ett exempel på binaural syntes med hjälp av HRIR/HRTF. Värdena för impulssvaret återfinns i filen IRC_1003_R_HRIR.mat och matlab-filen raw_synthesis.m sätter ihop ljudet, med hjälp av dessa värden, längs en given bana. Båda dessa kommer från Listen HRTF Database skapad av Institut de Recherche et Coordination Acoustique/Musique. För att lyssna på ljudet har jag satt ihop den körbara filen binauralsyntes_hrtf.m som, i stort sett, anger banan, anropar raw_synthesis för att skapa ljudet och spelar upp det. Tanken är att få känslan av att ljudkällan snurrar runt huvudet, men glöm inte att ljudet måste lyssnas på genom ett par hörlurar för att effekten ska kunna upplevas. De två nedre filerna är helt egenskapade och ska illustrera binaural syntes med hjälp av approximativa beräkningar enligt duplexteorin. ITD (tidsskillnaden) beräknas i funktionen ITD.m (för beräkningsmetod se bilaga 1) och för att efterlikna ILD har jag använt mig av lågpassfilter med olika brytfrekvenser för olika vinklar. Detta stämmer inte helt överens med hur det fungerar i verkligheten, som självklart är mycket mer komplicerad, men ger en acceptabel illustration. För att lyssna på ljudet används filen binauralsyntes_itd_ild.m och även denna måste lyssnas på genom hörlurar. Förhoppningen är att skapa illusionen av att ljudkällan är framför och bakom ett par gånger för att sedan snurra runt huvudet. 3
Bilaga 1 - Beräkningar ITD För beräkning av ITD har jag använt mig av en metod där skillnaden i ankomsttid endast är beroende av skillnaden i direkt sträcka mellan ljudkällan och de båda öronen. Jag har således gjort en grov approximation och inte tagit hänsyn till den ytterligare sträckan runt huvudet. cosθ = sinθ = r + a r + L b r + L a = r + L cosθ r b = r + L sinθ L! = a + 2r! + b! L! = a! + b! ITD = L! L! c ILD Beräkning av för vilken frekvens ett huvud, med given radie, räknas som akustiskt stort och därmed kommer skapa en ljudskugga. Jag har använt mig av radien r = 0.07 m och ljudhastigheten c = 344 m/s vilket ger akustiskt stort kr 1 k 1 r = 1 0,07 k = 2πf c f = kc 1 2π = 0,07 344 782 Hz 2π Jag har utefter denna beräkning använt mig av brytfrekvensen 800 Hz för lågpassfiltret vid θ = ± 90 (rakt till höger och rakt till vänster) för att sedan höja brytfrekvensen för mindre vinklar och öka för större. 4
Källförteckning Duda, Richard. 1996-2000. 3-D Audio for HCI, Department of Electrical Engineering, San Jose State University, http://interface.cipic.ucdavis.edu/sound/tutorial/index.html (Hämtad 2012-11-12) Kästel, David. 2005. Analys av teknik för implementering av 3D-ljud i Gizmo3D, Department of Science and Technology, Linköpings Universitet 5