日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

混響音效解釋

 中山電子城 2022-04-03

1.1混響的作用與基本原理

混響器即是人為地給聲音加上混響的效果。這樣通過改變場景的混響時(shí)間,可以對比較“干”的信號進(jìn)行再加工,增加空間感,提高聲音的豐滿度,同時(shí)可以制造一些特殊的聲音效果,如回聲等,通過改變混響聲和直達(dá)聲的比例,還可以體現(xiàn)聲音的遠(yuǎn)近感和空間感。

下圖一直觀的解釋了混響的簡單原理。為了研究的方便,聲學(xué)上把混響分為幾個(gè)部份,規(guī)定了一些習(xí)慣用語?;祉懙牡谝粋€(gè)聲音也就是直達(dá)聲(Direct sound),也就是源聲音,在效果器里叫做 dry out (干聲輸出),隨后的幾個(gè)明顯的相隔比較開的聲音叫做“早反射聲”(Early reflectedsounds),它們都是只經(jīng)過幾次反射就到達(dá)了的聲音,聲音比較大,比較明顯,它們特別能夠反映空間中的源聲音、耳朵及墻壁之間的距離關(guān)系。后面的一堆連綿不絕的聲音叫做 reverberation。圖五中,老師在講臺上講課,學(xué)生在座位上聽到的聲音除了直接到達(dá)的聲音(DIRETO)外,還有R1.R2.R3.R4等等這些反射聲??梢钥匆姴煌姆瓷渎曔_(dá)到人耳的時(shí)間有著不同的延遲。所有這些聲音的疊加才是人耳聽到的最終聲音。然而實(shí)際上,這些反射聲是無窮盡的,這樣我們似乎就沒辦法得到混響聲了。

然而如果我們假定源聲音是一個(gè)脈沖,得到結(jié)果如圖二。

 

圖一

 

圖二

得到的是一串簡單的脈沖序列。這個(gè)混響特征是用脈沖得到的,聲學(xué)上我們叫做Impulse Response脈沖反應(yīng),簡稱IR。經(jīng)過混響的聲音即可看作源聲音與IR的卷積得到的結(jié)果。

依據(jù)IR的來源不同,混響效果器,象合成器一樣分為三種類型:采樣混響、“算法”混響、模擬合成混響。

1.2 混響分類

(一)采樣 IR 混響

Sony ,Yamaha 都出過采樣混響,價(jià)格不菲。軟件的采樣混響效果器有著名的 SonicFoundry 的 Acoustic Mirror ,還有Samplitude 的 Room Simulator 。 采樣混響的 IR ,全部是真實(shí)采樣得來的 wave 文件。可以存放于任何存儲器,例如硬盤、光盤、軟盤等等。Sony ,Yamaha 的硬件采樣混響器,里面也帶有容量較大的存儲器。 采樣混響的 IR 都是錄音采樣得來的,最簡單的獲取 IR 的方式是:在圖一教師的位置放置一個(gè)音箱,學(xué)生的位置放置一個(gè)話筒。音箱播放一個(gè)脈沖,話筒進(jìn)行錄音。錄到的聲音就是 IR ,也就是這個(gè)房間的從講臺到學(xué)生座位的混響特征曲線。目前 Sony 、Samplitude 等所采用的具體方式是: 在想要獲得混響特征的地方,例如音樂廳,舞臺上安置音箱(當(dāng)然會是極好的音箱),座位席中安置立體聲話筒(極好的話筒)。然后播放一系列測試信號,這些信號以脈沖為主,各種速度的全頻段正弦波連續(xù)掃描為輔,錄得聲音,然后經(jīng)過一些計(jì)算得到 IR 。用這種采樣方法得到的 IR ,極為真實(shí)。 采樣混響的 IR ,不但廠家可以預(yù)置給你,你自己也可以根據(jù)廠家提供的工具進(jìn)行制作。因此從數(shù)量上來說是無限的。下圖三就是一個(gè)真實(shí)的采樣混響IR。

                            

圖三

(二)“算法”混響

這是最常見的混響效果器。目前大多數(shù)的數(shù)字混響效果器以及軟件混響都是此類。這類效果器的本質(zhì)是跟采樣混響一樣的,只是采樣混響的 IR 可以自由更換,而“算法”混響其實(shí)也帶有 IR ,但這些個(gè) IR是廠家固定好的,是一組組簡易的脈沖序列,通過對這些脈沖序列進(jìn)行調(diào)制和編輯控制,從而得到最終的混響效果。例如Waves 的 Renaissance Reberberator 帶有幾十個(gè)簡易的脈沖序列 ,這些脈沖序列都產(chǎn)品自帶的,不能更改。很多廠家把這些的脈沖序列稱之為“算法”,它們其實(shí)可以算作一種簡化過后的IR 。 許多硬件混響器也是如此,例如 Lexicon 和TC 的,原理都一樣。而采樣混響內(nèi)帶有可擦寫存儲器,可以自由更換 IR 。 這類混響器雖然不帶有真實(shí) IR ,但是卻提供了很多方法可以讓你對它自帶的原始的脈沖序列進(jìn)行修改,例如可以讓你拉長或者縮短這組脈沖序列(也就是拉大或者縮短脈沖之間的距離),這樣可以模擬墻壁漫反射的效果,還提供了濾波器和 EQ ,前反射時(shí)間,等等,很多控制。這些實(shí)際上都是對原始 IR 進(jìn)行修改,以達(dá)到控制混響效果的目的。因此雖然它不帶有真實(shí) IR ,但通過對 IR 進(jìn)行編輯,可以獲得無數(shù)種混響效果。 為了容量上的考慮,“算法”混響所帶有的原始脈沖序列都作了很大的簡化,不會象采樣混響的 IR 里那樣無數(shù)個(gè)脈沖有如滔滔江水連綿不絕。下圖四是“算法”混響經(jīng)過調(diào)節(jié)后最終得到的 IR 。將之與上面采樣 IR 對比一下就可以知道區(qū)別了。

 

圖四

(三)模擬合成 IR 混響

這類混響效果器并不帶有IR 曲線,而是用模擬合成方法“臨時(shí)”生成 IR 。 幾乎所有的非數(shù)字混響器都是這一類(包括所有的傳統(tǒng)電子管混響效果器、調(diào)音臺上的非數(shù)字混響等),還有少數(shù)軟件混響效果器也是,例如 Spin Audio 的 RoomVerb M2 ,Samplitude 的 Track Reverb 等等。 它會根據(jù)你提出的要求,比如空間大小,墻壁的吸音程度,等等,用它自己的計(jì)算方法(例如 Spin Audio 的“虛擬房間聲學(xué)建模技術(shù)”),生成一個(gè) IR ,并且有許多方法對IR 進(jìn)行編輯控制,例如濾波,EQ 等。因此雖然 SpinAudio 的 RoomVerb M2 不帶有任何 IR ,卻也能模擬出無數(shù)種混響效果。 

1.3混響的特征參數(shù)

下面以Waves的“文藝復(fù)興混響器”來說明混響器的特征參數(shù),如圖五所示:

                                圖五

大多數(shù)的混響效果器會有一些參數(shù)選項(xiàng)給你調(diào)節(jié),現(xiàn)在就來講講這些參數(shù)具體是什么意思。

(1)衰減時(shí)間(Decay time)

也就是整個(gè)混響的總長度。不同的環(huán)境會有不同的長度,有以下幾個(gè)特點(diǎn):空間越大,decay 越長;反之越短??臻g越空曠,decay 越長;反之越短。空間中家具或別的物體(比如柱子之類)越少,decay 越長;反之越短??臻g表面越光滑平整,decay 越長,反之越短。因此,大廳的混響比辦公室的混響長;無家具的房間的混響比有家具的房間長;荒山山谷的混響比森林山谷的混響長;水泥墻壁的空間的混響比布制墻壁的空間的混響長 …… 一般很多人喜歡把混響時(shí)間設(shè)得很長。其實(shí)真正的一些劇院、音樂廳的混響時(shí)間并沒有我們想象得那么長。例如波士頓音樂廳的混響時(shí)間是 1.8 秒,紐約卡內(nèi)基音樂廳是 1.7 秒,維也納音樂廳是 2.05 秒。

(2)前反射的延遲時(shí)間(Predelay)

 就是直達(dá)聲與前反射聲的時(shí)間距離。有以下幾個(gè)特點(diǎn): 空間越大,Predelay 越長;反之越短??臻g越寬廣,Predelay 越長;反之越短。因此,大廳的 Predelay 比辦公室的長;而隧道的空間雖然大,但是它很窄,所以 Predelay就很短。 想要表現(xiàn)很寬大空曠的空間,就把 Predelay 設(shè)大一點(diǎn)。

(3)wet out

也就是混響效果聲的大小。有以下幾個(gè)特點(diǎn): wet out 與空間大小無關(guān),而只與空間內(nèi)雜物的多少以及墻壁及物體的材質(zhì)有關(guān)。 墻壁及室內(nèi)物體的表面材質(zhì)越松軟,wet out 越??;反之越大 空間內(nèi)物體越多,wet out 越??;反之越大墻壁越不光滑,wet out 越小,反之越大 墻壁上越多坑坑凹凹,wetout 越小,反之越大 因此,擠滿了人的車廂的混響就比空車要小得多;放滿了家具的房間的混響就比空房間要?。挥械靥旱姆块g的混響比無地毯的?。簧稚焦鹊幕祉懕然纳缴焦鹊幕祉懸?。

(4)高低頻截止(low cut / high cut)

這個(gè)參數(shù)在有些效果器里是以 EQ 的形式來表現(xiàn)的,例如 Waves 的 RVerb 。這項(xiàng)內(nèi)容實(shí)際上跟現(xiàn)實(shí)情況沒有太直接的聯(lián)系,它只是為了我們做混響處理時(shí)聲音好聽而設(shè)計(jì)的。不過它也能表現(xiàn)高頻聲音在傳播中損失比較厲害的現(xiàn)象。一般在做處理的時(shí)候,為了混響聲的清晰和溫暖,都會把低頻和高頻去掉一部份。只有在表現(xiàn)一些諸如“宇宙聲”等科幻環(huán)境時(shí),才把高低頻保留。 另外有些效果器也把這個(gè)叫做“color”(色彩)。例如 TC 的效果器就是 color 。color 也就是“冷”和“暖”的感覺,高頻就是冷,低頻就是暖。所以這些效果器用顏色來表示高低頻截止,暖色(紅)表示混響聲偏向低頻,冷色(藍(lán))表示混響聲偏向高頻。補(bǔ)充:高低頻截止實(shí)際上在現(xiàn)實(shí)中是不存在的,現(xiàn)實(shí)中的普遍現(xiàn)象是:低頻聲音的混響無論是聲音大小還是衰減時(shí)間,都要比高頻聲音大。這是因?yàn)椴煌l率的聲音由于波長不同,因此繞過障礙的能力不同,高頻聲音波長短,不容易繞過障礙,低頻聲音波長長,容易繞過障礙。加上它們在空氣中傳播時(shí)的衰弱程度不同(頻率越高越容易衰弱),被墻壁吸收的程度不同(頻率越高越容易損失),所以不同頻率的聲音的混響時(shí)間和大小是不相同的。在真實(shí)世界中,在大多數(shù)中小空間里,越低的聲音具有越長的混響時(shí)間,越高的聲音具有越短的混響時(shí)間,而不可能做到反過來。如何做到降低低頻混響是任何一個(gè)錄音棚頭疼的難題。唯獨(dú)有一種情況,是低頻混響小于高頻混響的,那就是很大的空間,并且里面布滿了由硬質(zhì)材料制成的障礙和表面,比如采用硬塑料凳子和水泥墻壁地板的室內(nèi)體育館。

(5)衰減形狀(Decay Shape)

 有的混響器里提供了這個(gè)參數(shù),用來控制混響的衰減形狀。如下圖六所示是幾種常見衰減形狀:

                             圖六

上圖中第一個(gè)是我們最常用的線性衰減,第二個(gè)和第三個(gè)是EXP型衰減,其中第三個(gè)可以成為門式混響(Gate Reverb),第四和第五個(gè)是Reverse型衰減,通常用來制造一些特殊聲音效果。

(6)散射度(Diffusion)

一般也稱作Early Reflections Diffusion(早反射的散射度)。這些早反射是比較明顯的反射聲,它們之間的相互接近程度就是散射度。一般來說,墻壁越不光滑,反射聲越多,相互之間越接近,散射度越大,混響聲連成一片;墻壁越不光滑,反射聲越小,相互之間分得越開,散射度越小,混響聲聽起來比較接近回聲,比較清晰。

然而對于用戶來講,這些參數(shù)既繁多又難以確定,調(diào)節(jié)得不好反而不如不加混響。這時(shí)最好的選擇是套用軟件中得預(yù)置參數(shù),比如“Large Hall”就可以實(shí)現(xiàn)大廳的混響效果。對于UItrafunkfxReverbR3效果器,可以給出下面一組參數(shù):Input 0.0 Low cut 145 Highcut 4.5 Predelay 160 Room size 100 Diffusiin 100 Bass Multiplier 2.6 Crossover116 Decay Time 1.8 High Damping 2.2 Dry 1.0 E.R. -3.5 Reverb -7

這里筆者認(rèn)為在音效處理要求不高的時(shí)候Gold Wave軟件以其小巧玲瓏和調(diào)節(jié)簡便的特點(diǎn),有著很大的借鑒意義。其做出的混響效果基本令人滿意,最重要的是它只有三個(gè)最重要的參數(shù)需要調(diào)節(jié)。然而其不足之處在于添加的可選場景混響效果較少。

1.4 混響算法

混響的算法實(shí)現(xiàn)通常通過聽覺逼近方式實(shí)現(xiàn),這種方式產(chǎn)生與人耳聽覺無差異的混響效果,著重重建混響的重點(diǎn)部分。最著名的混響算法是由貝爾實(shí)驗(yàn)室的Schroeder提出的,他提出的混響算法包含兩個(gè)IIR濾波器:梳狀濾波器和全通濾波器。其中梳狀濾波器是一個(gè)帶后向反饋的延時(shí)電路,而全通濾波器則是一個(gè)帶前向反饋支路的梳狀濾波器。原理圖如下:

圖七

通過并聯(lián)的梳狀濾波器模擬延時(shí)較大的回聲,串聯(lián)的全通濾波器模擬延時(shí)較小的回聲。然而這種方法的缺點(diǎn)則是它模擬的混響中回聲密度不夠,對此可以通過增加濾波器個(gè)數(shù)等方法進(jìn)行改進(jìn)。

1.5混響的實(shí)現(xiàn)代碼

參考

  1. #define dsound_allpass_process(_allpass, _input) \  
  2. { \  
  3.     dsound_real_t output; \  
  4.     dsound_real_t bufout; \  
  5.     bufout = _allpass.buffer[_allpass.bufidx]; \  
  6.     output = bufout-_input; \  
  7.     _allpass.buffer[_allpass.bufidx] = _input + (bufout * _allpass.feedback); \  
  8.     if (++_allpass.bufidx >= _allpass.bufsize) { \  
  9.     _allpass.bufidx = 0; \  
  10.     } \  
  11.     _input = output; \  
  12. }  
  1. #define dsound_comb_process(_comb, _input, _output) \  
  2. { \  
  3.     dsound_real_t _tmp = _comb.buffer[_comb.bufidx]; \  
  4.     _comb.filterstore = (_tmp * _comb.damp2) + (_comb.filterstore * _comb.damp1); \  
  5.     _comb.buffer[_comb.bufidx] = _input + (_comb.filterstore * _comb.feedback); \  
  6.     if (++_comb.bufidx >= _comb.bufsize) { \  
  7.     _comb.bufidx = 0; \  
  8.     } \  
  9.     _output += _tmp; \  
  10. }  
    1. void dsound_revmodel_processreplace(dsound_revmodel_t * rev, dsound_real_t * in, dsound_real_t * left_out, dsound_real_t * right_out)  
    2. {  
    3.     int i, k = 0;  
    4.     dsound_real_t outL, outR, input;  
    5.       
    6.     for (k = 0; k < FLUID_BUFSIZE; ++k){  
    7.   
    8.         outL = outR = 0;  
    9.       
    10.         /* The original Freeverb code expects a stereo signal and \'input\' 
    11.          * is set to the sum of the left and right input sample. Since 
    12.          * this code works on a mono signal, \'input\' is set to twice the 
    13.          * input sample. */  
    14.         input = (2.0f * in[k] + DC_OFFSET) * rev->gain;  
    15.   
    16.         /* Accumulate comb filters in parallel */  
    17.         for (i = 0; i < numcombs; i++) {  
    18.           dsound_comb_process(rev->combL[i], input, outL);  
    19.           dsound_comb_process(rev->combR[i], input, outR);  
    20.         }  
    21.         /* Feed through allpasses in series */  
    22.         for (i = 0; i < numallpasses; i++) {  
    23.           dsound_allpass_process(rev->allpassL[i], outL);  
    24.           dsound_allpass_process(rev->allpassR[i], outR);  
    25.         }  
    26.   
    27.         /* Remove the DC offset */  
    28.         outL -= DC_OFFSET;  
    29.         outR -= DC_OFFSET;  
    30.   
    31.         /* Calculate output REPLACING anything already there */  
    32.         left_out[k] = outL * rev->wet1 + outR * rev->wet2;  
    33.         right_out[k] = outR * rev->wet1 + outL * rev->wet2;  
    34.     }  
    35.           
    36. }  

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多