中國(guó)電子科技集團(tuán)公司第三十六研究所 周欣 李洋銳 馬國(guó)峰
通信接收機(jī)的語(yǔ)音信號(hào)解調(diào)結(jié)果為時(shí)域數(shù)據(jù),反映了語(yǔ)音的時(shí)域特性,而要對(duì)語(yǔ)音信號(hào)進(jìn)行深度處理需獲取語(yǔ)音頻域特征信息。聲譜圖體現(xiàn)了語(yǔ)音信號(hào)的頻域特征,本文研究了語(yǔ)音聲譜圖生成的相關(guān)技術(shù),首先介紹了語(yǔ)音WAVE文件格式,以及通過(guò)短時(shí)傅里葉變換從時(shí)域數(shù)據(jù)獲取頻域數(shù)據(jù)的原理,最后依據(jù)時(shí)間、頻率、幅度信息實(shí)現(xiàn)了聲譜圖生成。
語(yǔ)音是由大部分穩(wěn)定以及部分動(dòng)態(tài)變化的狀態(tài)構(gòu)成的連續(xù)音頻流。聲譜圖是依賴于傅里葉變換的顯示圖形,實(shí)際上是一種動(dòng)態(tài)的頻譜圖,能夠直觀的顯示出語(yǔ)音中包含的各種頻率信號(hào)隨時(shí)間的能量強(qiáng)弱變化情況。聲譜圖縱軸為頻率,橫軸為時(shí)間,任意一個(gè)給定頻率成分在給定時(shí)刻的能量強(qiáng)弱用點(diǎn)的顏色來(lái)表示。語(yǔ)音特征向量可以從聲譜圖中提取出來(lái)[1]。語(yǔ)音音素的屬性可以從聲譜圖里觀察出來(lái),通過(guò)觀察聲譜圖共振峰和它們的轉(zhuǎn)變可以更好地識(shí)別聲音,隱馬爾科夫模型就是對(duì)聲譜圖進(jìn)行建模以達(dá)到好的識(shí)別性能。聲譜圖可以直觀地評(píng)估TTS(Text to Speech)系統(tǒng)的好壞,直接對(duì)比合成的語(yǔ)音和自然的語(yǔ)音聲譜圖的匹配度。由此,將語(yǔ)音時(shí)域數(shù)據(jù)轉(zhuǎn)化為聲譜圖是非常重要的一步。
WAVE文件格式是符合RIFF(Resource Interchange File Format,資源交互式文件格式)規(guī)范的一種數(shù)據(jù)編碼。對(duì)于音頻流的編碼,WAVE沒(méi)有嚴(yán)格的規(guī)則,幾乎任何支持ACM(Audio Codec Manager,音頻編解碼器管理器)規(guī)范的編碼都可以用來(lái)對(duì)音頻數(shù)據(jù)流進(jìn)行編碼。最基本的WAVE文件格式是PCM(Pulse Code Modulation,脈沖編碼調(diào)制)格式。PCM是沒(méi)有經(jīng)過(guò)任何壓縮的聲音采樣數(shù)據(jù)格式,聲卡能夠直接播放。而其他采用壓縮編碼的聲音數(shù)據(jù),需要把壓縮的數(shù)據(jù)按照編解碼格式解碼成PCM格式,再送到聲卡才能正常播放。WAVE文件包括RIFF文件頭(File Header)和一系列數(shù)據(jù)塊(Data Chunk),而其中最主要的“WAVE”數(shù)據(jù)塊由“fmt”子數(shù)據(jù)塊和“data”子數(shù)據(jù)塊組成?!癴mt”數(shù)據(jù)塊用于詳細(xì)說(shuō)明數(shù)據(jù)格式,“data”數(shù)據(jù)塊包含實(shí)際的采樣數(shù)據(jù)。數(shù)據(jù)塊是WAVE文件最基本的組成單元,數(shù)據(jù)塊中包含的字段有“類型塊標(biāo)識(shí)”(該字段為可選字段)“標(biāo)識(shí)符”“數(shù)據(jù)大小”和“數(shù)據(jù)”。其中“類型塊標(biāo)識(shí)”只在部分?jǐn)?shù)據(jù)塊中用到,如“WAVE”數(shù)據(jù)塊就使用了“類型塊標(biāo)識(shí)”,當(dāng)使用了“類型塊標(biāo)識(shí)”時(shí),該數(shù)據(jù)塊就沒(méi)有“標(biāo)志符”“數(shù)據(jù)大小”及“數(shù)據(jù)”字段項(xiàng)?!邦愋蛪K標(biāo)識(shí)”表示下面嵌套有別的數(shù)據(jù)塊,只作為文件讀取解析時(shí)的一個(gè)標(biāo)志,通常先找到這個(gè)類型塊標(biāo)識(shí),再以它為起點(diǎn)讀取后面嵌套的其他數(shù)據(jù)塊。WAVE文件的具體格式如表1所示:
表1 WAVE文件的具體格式Tab.1 The specific format of the WAVE file
描述PCM數(shù)據(jù)的基本單元是“Sample”(采樣),一個(gè)Sample代表采樣一次得到的數(shù)據(jù)。如果用44kHz采樣,將在一秒中得到44000個(gè)Sample。每個(gè)Sample可以用8位、16位表示,位數(shù)越高,音頻質(zhì)量越好。如果是單聲道文件,采樣數(shù)據(jù)按時(shí)間順序存儲(chǔ),它的基本組織單位是一個(gè)字節(jié)(8位)或字。如果是雙聲道的文件,采樣數(shù)據(jù)按時(shí)間先后順序交叉存入,左右聲道數(shù)據(jù)交叉存儲(chǔ)在一起,先存儲(chǔ)第一個(gè)Sample的左聲道數(shù)據(jù),然后存儲(chǔ)第一個(gè)Sample的右聲道數(shù)據(jù)。
傅里葉變換是一種分析信號(hào)的方法,它可分析信號(hào)的成分,也可用這些成分合成信號(hào),在信號(hào)分析中,主要用于平穩(wěn)信號(hào)的處理[2]。歐拉公式可以將任意函數(shù)轉(zhuǎn)化為一系列正(余)弦函數(shù)之和,任意函數(shù)在這里指我們的時(shí)域信號(hào),而正(余)弦函數(shù)包含信號(hào)的頻率和對(duì)應(yīng)振幅信息。傅里葉變換可以將0~t時(shí)間信號(hào)(時(shí)域、水平軸時(shí)間、垂直軸大小)分解到不同的頻率分量(頻域、水平軸頻率、垂直軸大小),通過(guò)傅里葉變換可以獲取一段信號(hào)總體上包含哪些頻率的成分,但是對(duì)各成分出現(xiàn)的時(shí)刻無(wú)法得知[3]。因此對(duì)于非平穩(wěn)信號(hào),傅里葉變換就顯示出了它的局限性,而我們?nèi)粘I钪械慕^大多數(shù)音頻都是非平穩(wěn)信號(hào)的。解決這個(gè)問(wèn)題的方法是使用短時(shí)傅里葉變換來(lái)處理語(yǔ)音信號(hào)。短時(shí)傅里葉變換的思想是將全部時(shí)域過(guò)程分解為很多等長(zhǎng)的小進(jìn)程,每一個(gè)小過(guò)程近似平穩(wěn),然后對(duì)每一個(gè)小過(guò)程舉行傅里葉變換。短時(shí)傅立葉變換采用滑動(dòng)窗口機(jī)制,設(shè)定窗口大小和步長(zhǎng),讓窗口在時(shí)域信號(hào)上滑動(dòng),分別計(jì)算每個(gè)窗口的傅立葉變換。把函數(shù)和窗口函數(shù)相乘,然后通過(guò)滑動(dòng)窗口函數(shù)做傅里葉變換,得到一系列的傅里葉變換結(jié)果,形成不同時(shí)間窗口對(duì)應(yīng)的頻域信號(hào),然后將結(jié)果進(jìn)行排列,通過(guò)時(shí)間疊加累積得到一個(gè)隨時(shí)間變化的二維時(shí)頻信號(hào)聲譜數(shù)據(jù)矩陣[4]。
生成聲譜圖時(shí),語(yǔ)音被分成許多幀,每一幀對(duì)應(yīng)一個(gè)代表頻率和能量之間的關(guān)系的頻譜。在實(shí)際應(yīng)用中,有三種頻譜,即線性振幅譜、對(duì)數(shù)振幅譜和自功率譜,本文采用對(duì)數(shù)振幅譜。對(duì)數(shù)振幅譜中需對(duì)振幅做對(duì)數(shù)運(yùn)算,其縱坐標(biāo)的單位是分貝。對(duì)數(shù)振幅譜中振幅較低的成份相對(duì)高振幅成份得以拉高,從而可以觀察到掩蓋在低幅噪聲中的周期信號(hào)。從音頻文件生成聲譜圖的過(guò)程描述如下:
(1)讀取音頻文件,處理得到一個(gè)保存音頻數(shù)據(jù)的數(shù)組、采樣頻率和時(shí)長(zhǎng)等信息;
(2)確定所需要用到的窗函數(shù)、窗長(zhǎng)度、重疊長(zhǎng)度、傅立葉點(diǎn)數(shù)等相關(guān)參數(shù),在傅里葉變換計(jì)算過(guò)程中需加窗進(jìn)行平滑處理,以減弱非同步采樣造成的柵欄效應(yīng)和頻譜泄漏[5],常用的窗函數(shù)有矩形窗、漢寧窗、平頂窗、指數(shù)窗等,本文使用的是漢寧窗;
(3)將輸入數(shù)據(jù)做短時(shí)傅里葉變換處理,得到其中一幀語(yǔ)音的頻譜圖(頻率-幅度),對(duì)連續(xù)多幀語(yǔ)音進(jìn)行相同處理,得到含時(shí)間、頻率序列的二維數(shù)組數(shù)據(jù);
(4)根據(jù)處理后的時(shí)頻矩陣?yán)L制聲譜圖,以幀號(hào)(時(shí)間)為x軸,頻率為y軸,以顏色表示幅度。通過(guò)增加時(shí)間這個(gè)維度,就可以顯示一段語(yǔ)音而不是一幀語(yǔ)音的頻譜。聲譜圖生成的流程圖如圖1所示。
圖1 短時(shí)傅里葉變換生成聲譜圖的流程圖Fig.1 The flow chart of short-time Fourier transform to generate a spectrogram
聲譜圖生成結(jié)果示意如圖2所示。
圖2 聲譜圖生成結(jié)果示意圖Fig.2 Schematic diagram of the result of spectrogram generation
本文介紹了如何通過(guò)語(yǔ)音信號(hào)解調(diào)結(jié)果數(shù)據(jù)生成聲譜圖的方法,通過(guò)分析WAVE格式,解析WAVE文件,采用短時(shí)傅里葉變換實(shí)現(xiàn)時(shí)域數(shù)據(jù)到頻域數(shù)據(jù)的生成,然后根據(jù)時(shí)間-頻率-幅度信息得到了語(yǔ)音信號(hào)的語(yǔ)譜,為后續(xù)語(yǔ)音信號(hào)深度處理如降噪增強(qiáng)、端點(diǎn)檢測(cè)、語(yǔ)音識(shí)別等提供基礎(chǔ)支撐。
引用
[1] 孔旭,關(guān)佶紅.以聲譜圖相似度為度量的波形音樂(lè)檢索[J].計(jì)算機(jī)工程與應(yīng)用,2009,45(13):136-141.
[2] 孫端.短時(shí)傅里葉變換在工業(yè)測(cè)量中的應(yīng)用[J].機(jī)電信息,2020(26):14-15.
[3] 張子濤.基于小波和PNCC特征參數(shù)的語(yǔ)音識(shí)別技術(shù)研究[D].重慶:重慶大學(xué),2018.
[4] 胡航.現(xiàn)代語(yǔ)音信號(hào)處理[M].北京:電子工業(yè)出版社,2014.
[5] 劉會(huì)衡,王正強(qiáng),宋立新.數(shù)字信號(hào)處理課程中利用DFT分析模擬信號(hào)頻譜的幾個(gè)問(wèn)題[J].計(jì)算機(jī)時(shí)代,2020(06):13-16.