• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于時(shí)域特征的語音信號端點(diǎn)檢測

      2022-06-11 06:33:55羅海濤
      電腦知識(shí)與技術(shù) 2022年13期

      摘要:語音由發(fā)音器官發(fā)出,通過聲電傳感器,語音可以轉(zhuǎn)化連續(xù)的模擬電信號;隨著電子技術(shù)和計(jì)算機(jī)技術(shù)的進(jìn)一步發(fā)展,語音信號的處理得到了飛速的發(fā)展;語音信號分析處理包括時(shí)域分析和頻域分析兩大類;語音的時(shí)域分析包括短時(shí)能量分析、短時(shí)過零率分析、短時(shí)相關(guān)分析,時(shí)域分析目的是提取語音時(shí)域特征,據(jù)此進(jìn)行語音端點(diǎn)檢測。

      關(guān)鍵詞:語音信號;時(shí)域分析;幀能量;幀過零率;端點(diǎn)檢測

      中圖分類號:TP391 ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A

      文章編號:1009-3044(2022)13-0096-03

      語言是人類特有的能力,是人們相互交流的重要工具。語音由發(fā)音器官發(fā)出,通過聲電傳感器,語音可以轉(zhuǎn)化連續(xù)的模擬電信號,例如電話機(jī)就屬于這樣一種轉(zhuǎn)換,這就是最早的語音信號處理。通過聲電和電聲的轉(zhuǎn)換,實(shí)現(xiàn)語音和電信號之間的相互轉(zhuǎn)換,達(dá)到遠(yuǎn)距離傳輸?shù)哪康?。隨著電子技術(shù)和計(jì)算機(jī)技術(shù)的進(jìn)一步發(fā)展,語音信號的處理得到了飛速的發(fā)展。

      對語音信號進(jìn)行分析和處理,一直是研究的熱門。通常首先需要對連續(xù)的模擬語音信號進(jìn)行采樣和量化,轉(zhuǎn)換為離散的數(shù)字信號,形成音頻文件,便于計(jì)算機(jī)處理。用計(jì)算機(jī)進(jìn)行語音信號處理,極大地提高了語音信號處理的效率。

      語音信號分析處理包括時(shí)域分析和頻域分析兩大類。分析前通常需要先對語音信號進(jìn)行分幀,即把語音信號分解為很多相對短時(shí)間的、固定時(shí)長的一段信號,稱為幀。每一幀語音信號可以視為短時(shí)平穩(wěn)的隨機(jī)信號。時(shí)域分析用于分析和提取語音的時(shí)域特征,是最簡單、直觀的分析手段。語音的時(shí)域特征包括短時(shí)能量分析、短時(shí)過零率分析、短時(shí)相關(guān)分析等。這里短時(shí)指的是一幀語音。頻域分析用于分析和提取語音的頻域特征,這些特征包括語音的頻譜、倒譜、復(fù)倒譜、功率譜等。分析方法有離散傅里葉變換、帶通濾波器組,以及線性預(yù)測等[1]。

      本文對語音信號進(jìn)行時(shí)域分析,分析其幀能量,幀過零率等時(shí)域特征,并對語音進(jìn)行端點(diǎn)檢測。

      1 語音采樣數(shù)據(jù)的獲取

      目前很多用于語音處理的語音庫文件都采用wav格式,這種文件格式是一種重要的數(shù)字音頻文件格式。wav格式的文件沒有對語音數(shù)據(jù)進(jìn)行壓縮,所以其文件比其他格式如MP3、MP4、RAM等格式的音頻文件更大。但也正因?yàn)闆]有采用壓縮技術(shù),wav文件中聲音的采樣數(shù)據(jù)很容易被讀出來,便于做其他處理。wav格式是微軟公司開發(fā)的一種聲音文件格式,也叫波形文件,是最早的數(shù)字音頻文件格式,它具有RIFF(Resource Interchange File Format)格式。RIFF格式的wav文件由若干個(gè)Chunk(塊)組成,按順序?yàn)镽IFF WAVE Chunk、Format Chunk、Fact Chunk(可選)和Data Chunk。每個(gè)塊都有固定而且類似的格式,第1部分是塊的ID,作為標(biāo)識(shí),4個(gè)字節(jié),緊跟其后的是該塊的大小,也是用4個(gè)字節(jié)表示,低字節(jié)表示低位,高字節(jié)表示高位;第3部分略有差異[2]。

      筆者用C++編程,首先讀取Web語音文件,為此,定義了四種結(jié)構(gòu)體,分別對應(yīng)上述4種塊。再定義文件指針,并打開文件:

      FILE *wav_in;

      wav_in=fopen(filename,"rb");

      wav文件是二進(jìn)制文件,所以用參數(shù)"rb"。再結(jié)合文件位置指針進(jìn)行讀?。?/p>

      file_pos=ftell(wav_in);

      由于wav格式存儲(chǔ)的語音數(shù)據(jù)是整數(shù),因此定義了整型數(shù)組pcm_data來存儲(chǔ)。存儲(chǔ)在wav文件中的每個(gè)音頻數(shù)據(jù)為16位,因此數(shù)組pcm_data是16位。

      2 語音信號的端點(diǎn)檢測

      端點(diǎn)檢測的目的是檢測和確定語音信號的開始和結(jié)束端點(diǎn),進(jìn)而把非語音信號部分舍棄,只保留語音信號部分的數(shù)據(jù),以減少數(shù)據(jù)量,節(jié)約計(jì)算機(jī)處理時(shí)間,從而提高處理速度。如果語音信號沒有噪音,端點(diǎn)檢測比較容易處理??梢院唵瓮ㄟ^語音信號的短時(shí)(幀)過零率,和短時(shí)(幀)能量檢測到端點(diǎn),因?yàn)檎Z音信號都有一定的能量和過零率,而靜音狀態(tài)下的語音信號能量很小,幾乎為0,過零率也沒有。計(jì)算出每幀語音的能量和過零率,并比較相鄰幀的能量和過零率,就這樣可以確定語音的端點(diǎn)。

      如果語音信號混合了噪音,端點(diǎn)檢測過程比較復(fù)雜。除了幀能量和過零率之外,還需要結(jié)合其他的參數(shù),才能確定語音的端點(diǎn)[3]。例如,可以結(jié)合頻譜來分析端點(diǎn),有些噪音的頻率高于正常的語音信號,因此,可以把頻譜中頻率高的部分認(rèn)為是噪音。也可以采取措施先消除噪聲,例如用小波消除噪聲[4]。小波變換是一個(gè)時(shí)間和頻率的局部變換[5]。

      先對語音信號進(jìn)行分幀,幀長統(tǒng)一采用20ms,相鄰兩幀沒有交叉重疊。

      FrmLength=(unsigned short int)20.0*fmt_block.wavFormat.dwSamplesPerSec/1000;

      其中dwSamplesPerSec是每秒采樣點(diǎn)數(shù),即采樣率。上述語句把幀長由20ms時(shí)間轉(zhuǎn)換為離散點(diǎn)數(shù)。

      計(jì)算幀的數(shù)量:

      nFrm=nSamples/FrmLength;

      其中nSamples是采樣點(diǎn)總數(shù)。

      接下來通過一個(gè)循環(huán)計(jì)算每幀能量和過零率,其中,計(jì)算幀能量時(shí),采用歸一化的幅值的平方和。而過零率計(jì)算,則判斷前后兩個(gè)幅值,如果是異號,則過零率加2;如果是同號,則過零率不變。

      (1) 置每幀能量初值為0,每幀過零率初值為0;

      (2) 在一幀內(nèi),循環(huán)計(jì)算每個(gè)點(diǎn)的能量值,累加到本幀的能量中;判斷前后兩個(gè)語音點(diǎn)的幅值,如果是異號,則過零率加2;如果是同號,則過零率不變;

      (3) 判斷是否所有幀都計(jì)算機(jī)完畢,如果沒有,則轉(zhuǎn)(1),計(jì)算下一幀;如果所有幀都已經(jīng)計(jì)算完畢,則循環(huán)結(jié)束,進(jìn)入下面的端點(diǎn)檢測。

      端點(diǎn)檢測就是確定語音信號的開始和結(jié)束端點(diǎn),本文假設(shè)語音信號都是沒有噪音的,因此,在沒有語音的部分,信號幅值幾乎等于零。大致步驟是:先確定端點(diǎn)所在幀,為此,設(shè)定一個(gè)閾值,再按順序檢測每一幀的能量。當(dāng)檢測到某一幀的能量大于等于閾值時(shí),可以確定端點(diǎn)在這一幀。考慮到計(jì)算一幀語音的能量時(shí),用的是歸一化后的幅值的平方和,幀語音能量的絕對值不大,因此,設(shè)定閾值為1。具體步驟如下:

      (1) 置幀號為1;

      (2) 讀取該幀語音能量;

      (3) 判斷其能量值是否大于等于1,若大于等于1,則該幀號就是起始端點(diǎn)所在幀,結(jié)束循環(huán);否則幀號加1,轉(zhuǎn)(2)。

      確定結(jié)束端點(diǎn)所在幀時(shí),從最后一幀語音開始,逆序向前檢測每一幀語音的能量值,判斷其是否大于等于閾值。具體步驟如下:

      (1) 置幀號為幀數(shù)量,即最后一幀;

      (2) 讀取該幀語音能量;

      (3) 判斷其能量值是否大于等于1,若大于等于1,則該幀號就是結(jié)束端點(diǎn)所在幀,結(jié)束循環(huán);否則幀號減1,轉(zhuǎn)(2)。

      確定端點(diǎn)所在幀之后,再在該幀語音內(nèi)進(jìn)一步確定具體哪個(gè)位置,才是語音的開始和結(jié)束端點(diǎn)。為此,也設(shè)定一個(gè)閾值0.05。之所以設(shè)置比較小的一個(gè)數(shù),是因?yàn)橛玫氖菤w一化后的幅值。在該幀范圍內(nèi),從第一個(gè)點(diǎn)按順序檢測。當(dāng)某個(gè)點(diǎn)的幅值歸一化值大于等于0.05時(shí),可以確定該點(diǎn)就是語音的端點(diǎn)。具體步驟如下:

      (1) 置循環(huán)初值j=1;

      (2) 由起始點(diǎn)所在語音幀號spFrm,以及j,由下式計(jì)算得到實(shí)際的語音采樣點(diǎn)順序號k,

      k=(spFrm-1)*FrmLength+j;

      (3) 獲取該采樣點(diǎn)的歸一化幅值;

      (4) 判斷其幅值是否大于等于0.05,若大于等于0.05,則該采樣點(diǎn)編號k就是起始端點(diǎn)的真實(shí)語音采樣點(diǎn)號sp,結(jié)束循環(huán);否則j+1,檢測下一個(gè)采樣點(diǎn),轉(zhuǎn)(2)。

      確定語音結(jié)束端點(diǎn)的過程如下:

      (1) 置循環(huán)初值j為幀長,即從結(jié)束端點(diǎn)所在幀的最后一個(gè)點(diǎn)開始,逆序往前逐個(gè)檢測;

      (2) 由結(jié)束點(diǎn)所在語音幀號epFrm,以及j,由下式計(jì)算得到實(shí)際的語音采樣點(diǎn)順序號k,

      k=(epFrm-1)*FrmLength+j;

      (3) 獲取該采樣點(diǎn)的歸一化幅值;

      (4) 判斷其幅值是否大于等于0.05,若大于等于0.05,則該采樣點(diǎn)編號k就是結(jié)束端點(diǎn)的真實(shí)語音采樣點(diǎn)號ep,結(jié)束循環(huán);否則j+1,檢測下一個(gè)采樣點(diǎn),轉(zhuǎn)(2)。

      3 運(yùn)算結(jié)果

      本文錄制了幾個(gè)英文單詞,音頻文件全部為wav格式,用全面介紹的方法進(jìn)行了預(yù)處理,包括分幀和端點(diǎn)檢測,并且用圖形把結(jié)果顯示出來,如圖1所示為英文單詞“important”的語音波形及短時(shí)能量和短時(shí)過零率波形。

      從圖2可知,英文單詞important的波形文件是雙聲道音頻文件,第5行起是具體的雙聲道的采樣數(shù)據(jù)。

      從圖3可以看出,端點(diǎn)檢測結(jié)果是語音起始端點(diǎn)號為1797,該點(diǎn)采樣數(shù)據(jù)位于第3幀。語音結(jié)束端點(diǎn)號為41453,該點(diǎn)采樣數(shù)據(jù)位于第47幀。端點(diǎn)檢測前采樣點(diǎn)數(shù)為圖2的46739,經(jīng)過端點(diǎn)檢測,去掉起始端點(diǎn)前,和結(jié)束端點(diǎn)后無語音部分采樣點(diǎn)數(shù)據(jù),剩余采樣點(diǎn)數(shù)為圖3的39657,其數(shù)據(jù)量減少為原來的84%,為后續(xù)處理減少了數(shù)據(jù)量。

      圖4所示為英文單詞“dictionary”的語音波形及短時(shí)能量和短時(shí)過零率波形。

      從圖5可知,英文單詞dictionary的波形文件也是雙聲道音頻文件,第5行起是具體的雙聲道的采樣數(shù)據(jù)。

      從圖6可以看出,端點(diǎn)檢測結(jié)果是語音起始端點(diǎn)號為7676,該點(diǎn)采樣數(shù)據(jù)位于第9幀。語音結(jié)束端點(diǎn)號為41222,該點(diǎn)采樣數(shù)據(jù)位于第47幀。端點(diǎn)檢測前采樣點(diǎn)數(shù)為圖5的47184,經(jīng)過端點(diǎn)檢測,去掉起始端點(diǎn)前,和結(jié)束端點(diǎn)后無語音部分采樣點(diǎn)數(shù)據(jù),剩余采樣點(diǎn)數(shù)為圖6的33547,其數(shù)據(jù)量減少為原來的71%。

      其余計(jì)算結(jié)果也說明,端點(diǎn)檢測是減少語音采樣數(shù)據(jù)量的很有效的方法。

      4 結(jié)語

      隨著計(jì)算機(jī)技術(shù)的發(fā)展,計(jì)算機(jī)語音處理技術(shù)獲得了廣泛的應(yīng)用。其應(yīng)用領(lǐng)域包括人工智能、虛擬現(xiàn)實(shí)、智能服務(wù)、智能家居等。語音信號處理實(shí)際上涉及多個(gè)學(xué)科領(lǐng)域,包括語音學(xué)、語言學(xué)、認(rèn)知科學(xué),以及心理學(xué)等多個(gè)學(xué)科。語音端點(diǎn)檢測是檢測和確定語音的實(shí)際起始端點(diǎn)和結(jié)束端點(diǎn)。明確了端點(diǎn),就可以把端點(diǎn)以外的采樣點(diǎn)數(shù)據(jù)舍棄,進(jìn)而減少數(shù)據(jù)量,為后續(xù)處理提高效率。

      參考文獻(xiàn):

      [1] 趙力.語音信號處理[M].3版北京:機(jī)械工業(yè)出版社,2016.

      [2] 羅海濤.wav格式與數(shù)據(jù)獲取[J].電腦知識(shí)與技術(shù),2016,12(27):211-213.

      [3] 羅海濤.含噪語音信號端點(diǎn)檢測[J].計(jì)算機(jī)時(shí)代,2017(10):8-10.

      [4] Luo H T.Local thresholding de-noise speech signal[C]//SPIE Proceedings,F(xiàn)ifth International Conference on Digital Image Processing (ICDIP 2013).Beijing,China.SPIE,2013.

      [5] 羅海濤.用小波消除語音噪聲[J].福建電腦,2017,33(8):119-120.

      【通聯(lián)編輯:梁書】

      逊克县| 嘉祥县| 福州市| 九龙城区| 梧州市| 武安市| 禹州市| 延津县| 蒙城县| 电白县| 临沧市| 白河县| 郸城县| 建湖县| 莱州市| 揭西县| 遵义县| 江永县| 龙海市| 英德市| 金寨县| 亚东县| 乌兰浩特市| 江口县| 阳新县| 横峰县| 连平县| 沅陵县| 东城区| 托克托县| 墨江| 吉隆县| 黄骅市| 盐亭县| 娄底市| 威海市| 汝阳县| 巢湖市| 闻喜县| 永济市| 绥棱县|