孟利 沈鄭燕 張?zhí)?/p>
摘要:目的:根據(jù)真實案例中的語音檢材,利用ffmpeg軟件提取犯罪嫌疑人的語音,探究適用ffmpeg軟件提取的目標人物語音特點,同時歸納總結(jié)整個提取過程的具體操作流程,固化經(jīng)驗。方法:利用該軟件包含的先進的音頻編解碼庫開展語音提取實驗,優(yōu)化能夠提高可移植性和編解碼質(zhì)量的細節(jié)操作,提高語音提取質(zhì)量。結(jié)果:ffmpeg可以將案例中犯罪嫌疑人的語音進行提取,并能夠提高語音提取質(zhì)量。結(jié)論:運用ffmpeg可以進行視頻轉(zhuǎn)音頻、音頻截取、音頻轉(zhuǎn)碼等操作,處理時間短、效果顯著;同時將復雜困難的命令行軟件的應用,簡化為具體的操作步驟是切實可行的,有望使公安工作人員在不具備編碼相關專業(yè)背景的情況下進行操作。
關鍵詞:ffmpeg;提取語音;音頻轉(zhuǎn)碼
一、前言
目前,電信詐騙案件已成為公安工作中的重點內(nèi)容。該類案件通過電話、網(wǎng)絡和短信方式,編造虛假信息,設置騙局,對受害人實施遠程、非接觸式詐騙,誘使受害人打款或轉(zhuǎn)賬的犯罪行為。一般具有手段翻新變化快,防范難度大,取證抓捕困難的特點。對于此類不具備現(xiàn)場勘察條件的案件,錄音資料作為直接證據(jù),能夠起到同一認定犯罪嫌疑人、為訴訟提供證據(jù)的重要作用。直接提取可作為證據(jù)使用的音頻往往存在困難,且審判程序?qū)σ纛l證據(jù)要求較高,應在提取的過程中保持音頻的原貌。由于其他軟件收費較高,ffmpeg在提取音頻方面具有重要的研究價值[1]。
由FabriceBellard發(fā)起的ffmpeg是一套能夠?qū)σ纛l和視頻進行記錄、格式轉(zhuǎn)換以及實現(xiàn)視頻加水印等操作的開源計算機程序,具有領先的編解碼技術[2]。ffmpeg所包含的工具有:ffplay簡單的基于ffmpeg庫和SDL庫的多媒體播放器,用于測試ffmpeg中各種API函數(shù)的功能;高效的音視頻轉(zhuǎn)換器ffmpeg,可以從現(xiàn)場獲取音頻/視頻源,還可以在任意采樣率之間轉(zhuǎn)換和調(diào)整視頻動態(tài)與質(zhì)量;ffprobe用于在多媒體流中分析信息;ffserve用于多媒體流實時直播的服務器[3]。ffmpeg被廣泛應用于多種視頻播放器、轉(zhuǎn)碼器的內(nèi)核,如QQ影音、格式工廠等。ffmpeg支持MPEG、DivX、MPEG4等40多種編碼,ALI、MPEG等90多種解碼[4-5]。
二、實驗分析
(一)設置ffmpeg
1.創(chuàng)造路徑——設置環(huán)境變量
環(huán)境變量可以被理解為系統(tǒng)的視線范圍,是可以被添加設置的,也是較多ffmpeg使用者選擇的操作方式。一般電腦中有兩種環(huán)境變量。
(1)系統(tǒng)環(huán)境變量。一旦配置了系統(tǒng)環(huán)境變量后,只要是使用這個操作系統(tǒng)的人,任何用戶都能通過這個環(huán)境變量直接在doc命令窗口找到相應程序;
(2)用戶環(huán)境變量。獨屬于某個用戶的,只有配置這個環(huán)境變量的用戶才能使用它。二者可以依實際情況自由選擇,本文選用第二種。
2.融入原有系統(tǒng)——轉(zhuǎn)移bin文件
將已經(jīng)下載好的ffmpeg的安裝包內(nèi)bin目錄下的3個可執(zhí)行文件解壓到C盤System32文件夾目錄下。這個目錄存在于系統(tǒng)默認環(huán)境變量中,不需要額外設置。任選其一進行操作后,找到bin文件所在位置,鼠標右鍵選擇打開命令行終端,輸入“ffmpeg”即可正常使用。
(二)ffmpeg工具包應用
ffmpeg安裝好后,可以看到內(nèi)含的3個命令行工具,分別為ffmpeg、ffplay、ffprobe。其中ffmpeg是音視頻處理工具、ffplay是音視頻媒體播放器、ffprobe是音視頻文件分析工具。
1.ffmpeg
先在命令行終端輸入“ffmpeg”并回車,將會得基本的編寫命令格式,即“ffmpeg[options][[infileoptions]-iinfile]...{[outfileoptions]outfile}...”。其中,options表示全局參數(shù)選項,-iinfile表示將某個文件導入,[outfileoptions]表示對導入文件進行所需操作,outfile表示在整個命令末尾注明輸出文件最終封裝格式。
2.ffplay
ffplay具有ffmpeg幾乎所有編解碼能力,是支持編碼格式最多的萬能播放器與視頻測試工具,除可以播放音頻、視頻、圖片這些基礎功能之外,還能夠?qū)崟r對音視頻、直播流進行復雜的濾鏡處理,功能齊備。在安裝好ffmpeg后,ffplay也被同時安裝,無須額外下載。
3.ffprobe
ffprobe是一個基于命令行的音視頻分析工具,同樣被內(nèi)置在ffmpeg安裝包內(nèi)。它可以幫助我們快速了解一個音視頻文件的各種信息,例如文件的封裝格式、視頻的編碼格式、幀率、分辨率等。
(三)提取目標人物語音相關處理
1.視頻轉(zhuǎn)音頻
一個視頻往往包含多個流信息,視頻轉(zhuǎn)音頻操作的本質(zhì)是刪去視頻流,保留音頻流。首先,輸入“ffprobevideo.mp4”查看視頻基本信息,關注stream中audio部分中原有的封裝格式,以mp4為例。
(1)當信息中顯示視頻中只有一個音頻流時,可以使用ffmpeg直接將單獨的音頻流提取出來:輸入“ffmpeg-ivideo.mp4-vn-acodeccopyvideo.m4a”其中-vn即表示剔除視頻;-acodeccopy表示保持原有音頻編碼格式;video.m4a表示輸出文件格式。
(2)當信息顯示視頻中包含多個音頻流,此時需分別提取,并重新合并。例如:
Stream#0:2[0x81]:Audio:ac3,48000Hz,5.1,s16,384kb/s
Stream#0:3[0x82]:Audio:ac3,48000Hz,5.1,s16,384kb/s
Stream#0:4[0x80]:Audio:ac3,48000Hz,5.1,s16,448kb/s
2.音頻截取
如需在整段音頻中截取某部分,第一種方法為輸入“ffmpeg-imusic.mp3-ss00:00:30-to00:02:00-acodeccopymusic_cutout.mp3”,其中-ss表示截取起始時間;-to表示截取結(jié)束時間,由于時間的基本單位為秒,所以時間可以表示為00:00:00,分別對應時分秒;第二種截取方法為“ffmpeg-imusic.mp3-ss00:00:30-t10-acodeccopymusic_cutout.mp3”表示從00:00:30起向后截取一個10秒的片段。
需要注意的是“ffmpeg-iin.mp4-ss00:01:00-to0:01:
10-ccopyout.mp4”與“ffmpeg-ss00:01:00-iin.mp4-to00:01:10-ccopyout.mp4”這兩條指令的區(qū)別是:第二條啟用了關鍵幀技術,可以加快操作速度但起始時間與結(jié)束時間可能與所需存在誤差,為了避免這個問題,可以輸入“ffmpeg-ss00:01:00-iin.mp4-to00:01:10-ccopy-copytsout.mp4”其中-copyts為保留時間戳的指令,起到精確輸入時間的作用。
3.音頻轉(zhuǎn)碼
常見的音頻格式有MP3、aac、wav、flac,MP3是最常見的音頻格式;aac常與H264視頻搭配,是現(xiàn)代流媒體的主流;wav是微軟公司專門為windows開發(fā)的標準數(shù)字音頻模式,在ffmpeg中為PCM編碼;flac是一種無損音頻格式,常用于無損音樂。
ffmpeg音頻格式轉(zhuǎn)碼[6]基礎命令格式為“ffmpeg-iINPUT-c:aENCODER-arSAMPLE-acCHANNEL-abBITRATEOUTPUT”,INPUT表示輸入文件,ENCODER表示音頻編碼器,SAMPLE表示音頻采樣率,CHANNEL表示音頻聲道數(shù)量,BITRATE表示音頻碼率,OUTPUT表示輸出文件。使用“ffmpeg-encoders”可以查看ffmpeg所支持的音頻格式列表,以A開頭的表示音頻編碼器;“音頻采樣率”表示音頻采樣精度,一般以HZ為單位,通常采樣率數(shù)字越大,音頻精度越高,質(zhì)量也越好。目前主流采樣率多采用44.1kHZ和48kHz;“聲道”也可以在ffmpeg中進行操作,即單聲道、雙聲道或多聲道;更高的“碼率”通常意味著擁有更好的音質(zhì),更低的“碼率”意味著文件體積更小,常用的碼率為320k。以下將以轉(zhuǎn)成采樣率為44.1kHZ,單聲道,設定碼率為320k為例進行操作。
(1)wav轉(zhuǎn)mp3。輸入“ffmpeg-i1.wav-c:alibmp3lame-ar44100-ac1-ab320k1.mp3”,這里就表示輸入一個名稱為1的wav格式音頻,指定libmp3lame作為音頻編碼器,設定采樣率為44.1kHZ,單聲道,設定碼率為320k,輸出文件格式為mp3。
(2)wav轉(zhuǎn)aac。輸入“ffmpeg-i2.wav-c:aaac-ar44100-ac1-ab320k1.aac”表示輸入一個名稱為2的wav格式音頻,指定aac作為音頻編碼器,輸出文件格式為aac。
(3)flac轉(zhuǎn)mp3。輸入“ffmpeg-i3.flac-c:alibmp3lame-ar44100-ac1-ab320k1.mp3”表示輸入一個名稱為3的flac格式音頻,指定libmp3lame作為音頻編碼器,輸出文件格式為mp3。
三、提取目標人物語音流程
提取目標人物語音的具體流程,以獲取檢材1.mp4文件中目標任務語音為例。
(1)首先輸入“ffprobe1.mp4”按下回車獲得該視頻基礎信息;
(2)分別輸入“ffmpeg-i1.mp4-vn-map0:2-acodeccopy2.m4a”;“ffmpeg-i1.mp4-vn-map0:3-acodeccopy3.m4a”;“ffmpeg-i1.mp4-vn-map0:4-acodeccopy4.m4a”,獲取原視頻中3個音頻流,分別聽取,選擇包含目標人物語音的2.m4a;
(3)輸入“ffplay-2.m4a”按下回車開始播放該音頻文件,此時輸入“ffplay-i2.m4a-afatempo=2”可以實現(xiàn)變速播放;對比原視頻中目標人物說話的時間,選定音質(zhì)較好的某段記錄起止時間00:00:48-00:02:30;
(4)輸入“ffmpeg-i2.m4a-ss00:00:48-to00:02:30-acodeccopymusiccutout.mp3”即可獲得僅包含目標人物語音的片段,且為mp3格式。
后期根據(jù)語音比對所需格式可對該片段進行轉(zhuǎn)碼。
四、總結(jié)
本文所述僅僅是ffmpeg眾多使用方法中的一部分,且重在闡述單獨使用ffmpeg即可完成的內(nèi)容。而ffmpeg與其他工具相互配合才能真正發(fā)揮該工具巨大潛能。例如,目前公安聲紋鑒定領域已經(jīng)研究出了人聲分離算法,但是該算法的弊端在于對音頻清晰度要求較高,在嘈雜環(huán)境中的語音截取效率低。此時將ffmpeg和SoX相結(jié)合運用可以對音頻進行降噪處理,做好對音頻的預處理。
由于ffmpeg工作原理涉及到編解碼這一信息傳輸中的關鍵步驟,所以往往會成為預處理音頻、視頻、圖像的操作步驟,從這個角度而言,ffmpeg軟件可以被稱為音視頻處理工作的基石。同時,也因為該軟件的基礎性,本文中提出基于ffmpeg軟件提取目標人物的語音的方法只較為便于理解與操作的方式,希望能夠?qū)矊崙?zhàn)工作起到幫助。
參考文獻:
[1]郭晶晶,劉光堯,汪磊,等.ffmpeg在視頻圖像處理中的應用[J].刑事技術,2020,45(03):234-237.
[2]程偉倫,唐恒飛.基于ffmpeg的車載嵌入式流媒體終端的研究與實現(xiàn)[J].農(nóng)業(yè)裝備與車輛工程,2021,59(08):120-122.
[3]鄧正良.基于ffmpeg和SDL的視頻流播放存儲研究綜述[J].現(xiàn)代計算機,2019(22):47-50.
[4]郝朝,劉升護.基于ffmpeg和SDL的遙測視頻解析技術[J].計算機技術與發(fā)展,2019,29(04):191-194.
[5]吳張順,張珣.基于ffmpeg的視頻編碼存儲研究與實現(xiàn)[J].杭州電子科技大學學報,2006(03):30-34.DOI:10.13954/j.cnki.hdu.2006.03.008.
[6]覃艷.基于ffmpeg的視頻格式轉(zhuǎn)換技術研究[J].電腦知識與技術,2011,7(12):2912-2913.
基金資助:本文系河南警察學院院級課題資助項目:“基于ffmpeg提取目標人物語音的研究”(項目編號:HNJY202236)階段性成果
作者單位:孟利國,河南警察學院刑事科學技術系;沈鄭燕,河南警察學院教務處;張?zhí)本┏鋈刖尺叿罊z查總站