• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    聲音的圖形量化探討

    2014-04-29 00:00:00許含坤

    摘 要:本文通過(guò)對(duì)聲音文件及音頻和音調(diào)音量的量化分析,傅立葉變換,對(duì)聲音、音頻、音調(diào)、音量的量化處理,編程實(shí)現(xiàn)了一種聲音文件圖形化過(guò)程。

    關(guān)鍵詞:音頻;音調(diào);圖形

    中圖分類號(hào):TP391.41

    現(xiàn)實(shí)世界中,聲音是看不見(jiàn)摸不到的。它是一種在空氣中傳播的無(wú)形波,對(duì)聲波波形進(jìn)行采樣后,利用模擬數(shù)字的轉(zhuǎn)換技術(shù),對(duì)形成的聲音文件進(jìn)行分析量化,就可以在屏幕上實(shí)時(shí)地畫(huà)出其形狀。這個(gè)完整的過(guò)程是一個(gè)復(fù)雜的過(guò)程,本文就這種過(guò)程的實(shí)現(xiàn)中的一個(gè)環(huán)節(jié)進(jìn)行分析,闡述一個(gè)簡(jiǎn)單的聲音的圖形化描述,并利用編程語(yǔ)言給出了示例的計(jì)算機(jī)程序?qū)崿F(xiàn)。

    聲音文件的圖形化描述,其本質(zhì)上是以圖形化的方式來(lái)還原聲音文件所記錄的原始采集信號(hào)。而圖形化波形顯示卻是以圖形化的方式還原聲音文件所記錄的聲音信號(hào)。

    聲音文件一般分為:音頻、音調(diào)和音量等。如何對(duì)這些進(jìn)行量化描述,是一個(gè)要解決的問(wèn)題。

    1 聲音文件的結(jié)構(gòu)及音頻音調(diào)分析

    聲音文件中記錄聲音原始信息,因此,理論上任何可以還原聲音的文件都可以作為圖形顯示的信息源。聲音的記錄方式有多種形式,最簡(jiǎn)單而又最能保持聲音本色的方法是直接記錄波形。

    1.1 音調(diào)

    基頻(fundamental frequency),指當(dāng)發(fā)聲體由于震動(dòng)而發(fā)出聲音時(shí),聲音一般可以分解為許多單純的正弦波,也就是說(shuō)所有的自然聲音基本都是由許多頻率不同的正弦波組成的,其中頻率最低的正弦波即為基音,而其他頻率較高的正弦波則為泛音。

    音調(diào)(pitch)在音樂(lè)領(lǐng)域里指的是人類心理對(duì)音符基本頻率的感受。

    基頻與音調(diào)存在一個(gè)轉(zhuǎn)換關(guān)系:

    1.2 聲音的量化PCM(PulseCode Modulation)

    在數(shù)字信號(hào)處理中,量化是指將信號(hào)的連續(xù)取值(或者大量可能的離散取值)近似為有限多個(gè)(或較少的)離散值的過(guò)程。量化主要應(yīng)用于從連續(xù)信號(hào)到數(shù)字信號(hào)的轉(zhuǎn)換中。連續(xù)信號(hào)經(jīng)過(guò)采樣成為離散信號(hào),離散信號(hào)經(jīng)過(guò)量化即成為數(shù)字信號(hào)。注意離散信號(hào)并不需要經(jīng)過(guò)量化的過(guò)程。信號(hào)的采樣和量化通常都是由ADC實(shí)現(xiàn)的。

    CD音頻信號(hào)就是按照44110Hz的頻率采樣,按16位元量化為有著65536(=2^{16})個(gè)可能取值的數(shù)字信號(hào)。

    聲音的量化就是將模擬聲音的波形轉(zhuǎn)換為數(shù)字,采樣值的二進(jìn)制位數(shù)決定了量化的精度。量化的過(guò)程就是先將整個(gè)幅度劃分成有限個(gè)小幅度(量化階距)的集合,把落入某個(gè)階距內(nèi)的樣值歸為一類,并賦予相同的量化值。

    音頻文件中存儲(chǔ)的一般都是壓縮過(guò)的PCM數(shù)據(jù),經(jīng)過(guò)解碼后就變成了可處理的PCM數(shù)據(jù)。

    1.3 傅立葉變換

    傅里葉變換是一種線性的積分變換,通常在將信號(hào)在時(shí)域和頻域之間變換時(shí)使用。就聲音音調(diào)識(shí)別來(lái)說(shuō),傅立葉變換可以將以時(shí)間為自變量的振幅函數(shù)vol(t)變換到以頻率為自變量的振幅函數(shù)vol(f)。

    1.4 音調(diào)的識(shí)別流程

    規(guī)定一個(gè)Δt,假設(shè)在Δt時(shí)間段內(nèi),音調(diào)是不變的.對(duì)vol(t)進(jìn)行分割,分成[0,Δt],[Δt,2Δt] … [t-Δt,t]多個(gè)區(qū)間.分別對(duì)vol(t)的多個(gè)區(qū)間進(jìn)行傅立葉變換,得出頻率分布譜,找到最大振幅對(duì)應(yīng)的頻率(一般情況下音量最大的頻率即為基本頻率)。更好的方法則是利用基本頻率與音調(diào)變換關(guān)系,對(duì)得出來(lái)的頻率進(jìn)行變換,得到的pitch(t),即為聲音的音調(diào)在變化譜線。

    這種變形的傅立葉變換即為短時(shí)傅立葉變換能夠觀察出信號(hào)瞬時(shí)頻率的信息。

    2 編程實(shí)現(xiàn)圖形化過(guò)程

    function pitch()

    //讀取音頻文件

    [stream, sample_rate] = audioread('test.wma');

    // 處理左邊聲道

    stream_left = stream(1:length(stream),1);

    //假定4096個(gè)取樣點(diǎn)內(nèi),音調(diào)不變。大約0.1s

    frame_size = 4096;

    //獲取音頻幀數(shù)

    frame_count = floor(length(stream_left) / frame_size);

    pitch = zeros(1, frame_count);

    for i = 1 : frame_count

    //區(qū)間

    pbeg = (i - 1) * frame_size + 1;

    pend = i * frame_size;

    stream_sub = stream_left(pbeg : pend);

    fft_result = fft(stream_sub, frame_size);

    [~, frequency] = max(abs(fft_result));

    pitch(i) = ceil(69 + 12 * log(frequency * sample_rate /frame_size / 440) / log(2));

    end

    pitch = medfilt1(pitch, 8);

    plot(1 : frame_count, pitch);

    end

    其中,test.wma是用系統(tǒng)自帶錄音工具錄的一段do re mi fa so la xi do的哼唱。

    運(yùn)行結(jié)果如下圖1:

    圖1

    參考文獻(xiàn):

    [1]趙文博,張生,孫國(guó)強(qiáng),等.WAV音頻分句的算法設(shè)計(jì)[J].微計(jì)算機(jī)信,2011(27):204-205.

    [2]李敏.音頻文件格式wave的轉(zhuǎn)換[J].電腦知識(shí)與技術(shù),2005(08):73-75.

    [3]鄭宇軍.C#面向?qū)ο蟪绦蛟O(shè)計(jì)教程[M].北京:人民郵電出版社,2009:316-319.

    作者簡(jiǎn)介:許含坤(1970.08-),福建霞浦人,工程師,現(xiàn)主要從事計(jì)算機(jī)軟件教學(xué)及科研工作,研究方向:面向?qū)ο?、?shù)據(jù)庫(kù)、NET平臺(tái)應(yīng)用開(kāi)發(fā)等計(jì)算機(jī)相關(guān)技術(shù)。

    作者單位:福建信息職業(yè)技術(shù)學(xué)院計(jì)算機(jī)工程系,福州 350003

    澄江县| 陇川县| 哈密市| 仪陇县| 项城市| 五家渠市| 美姑县| 无极县| 宿州市| 宝应县| 乐昌市| 越西县| 曲水县| 阆中市| 南陵县| 抚远县| 福清市| 四平市| 黑山县| 泽州县| 察哈| 贡觉县| 潼南县| 蒲江县| 邵武市| 土默特左旗| 四平市| 武陟县| 林口县| 夏河县| 荥阳市| 涡阳县| 乐清市| 伊吾县| 平阳县| 平顶山市| 马山县| 扬州市| 南靖县| 岚皋县| 梨树县|