亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于多線程技術(shù)的ONNX音頻分離模型并發(fā)推理的設(shè)計與優(yōu)化

        2022-10-15 13:17:12陳家樂董雪蓮方慧檜譚靜元
        現(xiàn)代信息科技 2022年14期
        關(guān)鍵詞:進程模型

        陳家樂,董雪蓮,方慧檜,譚靜元

        (南華大學(xué),湖南 衡陽 421001)

        0 引 言

        線程則離不開進程。首先進程是一個正在執(zhí)行中的程序,每一個進程執(zhí)行都有一個執(zhí)行順序,該順序是一個執(zhí)行路徑,或者叫一個控制單元;線程就是進程中的一個獨立控制單元,線程在控制著進程的執(zhí)行。一個進程中至少有一個進程。多線程:一個進程中不只有一個線程。

        使用多線程,可以更好的利用CPU 的資源,如果只有一個線程,則第二個任務(wù)必須等到第一個任務(wù)結(jié)束后才能進行,如果使用多線程則在主線程執(zhí)行任務(wù)的同時可以執(zhí)行其他任務(wù),而不需要等待;進程之間不能共享數(shù)據(jù),線程可以;系統(tǒng)創(chuàng)建進程需要為該進程重新分配系統(tǒng)資源,創(chuàng)建線程代價比較小;Java 語言內(nèi)置了多線程功能支持,簡化了java 多線程編程。

        傳統(tǒng)的C++(C++98)中并沒有引入線程這個概念。Linux和Unix 操作系統(tǒng)的設(shè)計采用的是多進程,進程間的通信十分方便,同時進程之間互相有著獨立的空間,不會污染其他進程的數(shù)據(jù),天然的隔離性給程序的穩(wěn)定性帶來了很大的保障。而線程一直都不是Linux 和Unix 推崇的技術(shù),為了使得C++更符合現(xiàn)代語言的特性,在C++11 中引入了多線程與并發(fā)技術(shù)。

        1 問題描述

        隨著深度學(xué)習(xí)的發(fā)展,近些年來音頻算法在智能醫(yī)療、語音識別、聲源定位等領(lǐng)域的應(yīng)用非常火熱,其效能和速度也不斷得到精進。從過去的云端服務(wù),逐步脫離并發(fā)展到PC 端邊緣運算,到這幾年再往移動端運算發(fā)展。盡管硬件的運算能力越來越強大,但是模型輕量化仍是算法設(shè)計所追求的核心之一。唯有如此,AI 算法才可以隨時隨地調(diào)用,發(fā)揮它們強大的作用。

        語音識別是音頻深度學(xué)習(xí)的重要研究課題,被廣泛應(yīng)用到各個領(lǐng)域,比如語音文字轉(zhuǎn)換,可以快速把說話人的信息以文字的形式保存下來,又比如人聲背景聲分離,可以減弱背景聲對人聲的干擾,加強語音識別能力。

        語音識別中的音頻多人聲分離算法,主要針對多人發(fā)聲的場景下,可以把分離之后的音軌和特定的說話人物對應(yīng)起來。此種方式為其后的語音識別領(lǐng)域提供了許多的可能性。譬如,音頻多人聲分離算法未來可能會應(yīng)用于視頻通話降噪、提升波束成形的質(zhì)量和目標(biāo)人識別等領(lǐng)域,并為傳統(tǒng)的語音識別帶來一個比較大的突破。

        其中算法性能指標(biāo)為在 interli7CPU 處理一個時長2 分鐘的音頻 時間不超過10 秒。

        2 方案設(shè)計

        通過對wav 進行數(shù)據(jù)讀取以后,使用需要上下采樣的參數(shù)(如16 000,8 000)構(gòu)造好Kaiser Window,此后將wav數(shù)據(jù)數(shù)組傳入到Kaiser Window 的FIR 濾波器中,通過位移糾偏,即可得到下采樣以后的符合模型推理的8 kHz 的音頻數(shù)組。此外,當(dāng)模型推理完成后,將所得的數(shù)據(jù)再次輸入Kaiser窗口的FIR 濾波器中進行上采樣,即8 kHz 上采樣到16 kHz。而后將上采樣結(jié)果輸出到wav 文件中。過程如圖1所示。

        圖1 Kaiserwindow 運行過程

        由于目前大部分的電腦設(shè)備已經(jīng)達到了6 核、8 核甚至10 核,因此在本項目中使用多線程并行化模型推理可以極大地加速推理,壓縮推理時間。具體流程如圖2所示。

        圖2 并行推理流程

        首先核心程序?qū)av 音頻數(shù)據(jù)載入到verctor(內(nèi)存)中,而后對wav 數(shù)據(jù)進行分割,使之大小符合模型的輸入的規(guī)定。而后對分割出來的每組小音頻數(shù)據(jù)數(shù)組進行偏移標(biāo)記,如第一組標(biāo)記偏移量為0,第二組標(biāo)記偏移量為16 000。對每組數(shù)據(jù),分別送入不同的線程進行推理。各線程完成推理后,按照偏移量將推理完成數(shù)據(jù)存放至所對應(yīng)的位置。最終程序再將所有的數(shù)據(jù)加載到新建的三個wav 文件中一同輸出到指定的位置。最終實現(xiàn)在10 s 的長音頻中推理時間僅需0.48 s。

        使用Microsoft Visual Studio 2019 進行開發(fā),主要使用了Microsoft 所自研開發(fā)的ONNX 模型推理框架ONNXRunTime,并且使用C++多線程進行并行化推理優(yōu)化、FIR 低通濾波進行上下采樣、最終實現(xiàn)推理加速,VS 編程界面如圖3所示。

        圖3 VS 編程界面

        3 詳細代碼

        下文給出詳細代碼:

        4 實驗結(jié)果

        面對整個模型推理的程序工程化問題,我們使用了分而治之的思路。根據(jù)所要達到的目標(biāo)(模型大小、性能、以及推理速度),我們分成了兩個主要的工程進行問題的解決,分別是算法的實現(xiàn)以及模型工程優(yōu)化。在本項目中,我們總共使用了3對模型進行訓(xùn)練、3個技術(shù)點對模型推理進行優(yōu)化,從而提升整個模型的泛化能力以及推理的速度。最終項目實現(xiàn)了模型大小僅19.2 MB(FP32),推理速度0.48 s,參數(shù)量4.9 M,計算量(flops)為32.9 G,整個程序運行的思路為:

        首先對wav 文件進行讀取,產(chǎn)生一個verctor數(shù)組裝載wav 數(shù)據(jù),并獲取wav 文件的sample rate。

        根據(jù)sample rate,創(chuàng)建好Kaiser Window,而后將wav數(shù)據(jù)傳入其中進行上下采樣。

        根據(jù)模型需要的大小,將音頻進行切割成合適的片段,并傳入到ONNXRunTime 框架中使用訓(xùn)練好的onnx 模型進行推理。每一個片段進行推理時都使用并行化的方法,最終10s 的音頻分離速度可達0.48 s。

        對推理完成的wav 數(shù)據(jù)數(shù)組,根據(jù)步驟2 的進行反向操作,構(gòu)建Kaiser Window,并重新傳入Kaiser Windows 進行上采樣。使用原音頻對分離出來的兩條音軌進行濾波,產(chǎn)生最后的噪音音軌。將所得的三條wav 數(shù)據(jù)進行輸出wav。整個過程的流程圖如圖4所示。

        圖4 軟件執(zhí)行邏輯圖

        最終可以實現(xiàn)在Windows 平臺上面運行,提供了cmd命令行的方式對音頻進行分離,其cmd 命令程序無需安裝,僅需解壓即可使用。真正做到了隨解壓隨用,程序運行效果如圖5、圖6所示。

        圖5 核心推理程序運行壓縮包內(nèi)容

        圖6 核心推理程序使用界面

        5 結(jié) 論

        本系統(tǒng)在音頻多人聲分離功能的模型訓(xùn)練中處理了114 000 個(約合424 小時)Libri-mix,wsj0 和wham 噪音音頻數(shù)據(jù)集,使用Libri-mix 噪聲訓(xùn)練集以及wsj0 純聲訓(xùn)練集交替訓(xùn)練,在純?nèi)寺暦蛛x環(huán)境中達到17.5 dB SI-SDRi 的測試集性能指標(biāo),噪音環(huán)境中達到13.5 dB SI-SDRi 的測試集性能指標(biāo)。最終獲得模型大小僅為19.2 MB,訓(xùn)練時長約合1個月20 天,執(zhí)行24 小時不間斷訓(xùn)練。

        此外,本項目結(jié)合數(shù)字信號處理課程以及綜合軟件工程思想,使用KaiserWindow 對音頻進行上下采樣,并且對推理過程進行了并行化優(yōu)化,使得核心推理程序每推理10 s 的音頻最快僅需0.48 s(i7-11800H 平臺)。同時結(jié)合QT 進行開發(fā)的圖形化界面,可以使得音頻工作者處理音頻更方便快捷,更好地解決了其需求。

        猜你喜歡
        進程模型
        一半模型
        重要模型『一線三等角』
        重尾非線性自回歸模型自加權(quán)M-估計的漸近分布
        債券市場對外開放的進程與展望
        中國外匯(2019年20期)2019-11-25 09:54:58
        3D打印中的模型分割與打包
        FLUKA幾何模型到CAD幾何模型轉(zhuǎn)換方法初步研究
        我國高等教育改革進程與反思
        Linux僵死進程的產(chǎn)生與避免
        男女平等進程中出現(xiàn)的新矛盾和新問題
        俄羅斯現(xiàn)代化進程的阻礙
        99精品国产综合久久久久五月天| 亚洲视频一区二区免费看| 精品激情成人影院在线播放| 久久视频在线| 亚洲依依成人综合在线网址| 视频女同久久久一区二区三区| 一级内射免费观看视频| 后入内射国产一区二区| 免费无码黄动漫在线观看| 日韩AV无码一区二区三| 极品视频一区二区三区在线观看 | 在线观看亚洲第一黄片| 亚洲成在人网站av天堂| 一国产区在线观看| 中文字幕乱码亚洲美女精品一区| 精品国产a一区二区三区v| 爽爽精品dvd蜜桃成熟时电影院 | 亚洲粉嫩视频在线观看| 高h小月被几个老头调教| 亚洲熟伦熟女新五十路熟妇| 欧美日本视频一区| 精品亚洲av乱码一区二区三区| 成年女人vr免费视频| 最新亚洲人成无码网www电影| 国产熟女av一区二区三区四季| 亚洲一区二区三区av资源| 色婷婷五月综合久久| 午夜片无码区在线| 一本久久a久久精品综合| 视频在线观看一区二区三区| 女人被爽到呻吟gif动态图视看| 日韩欧美在线观看成人| 美腿丝袜视频在线观看| 美女不带套日出白浆免费视频 | 国产精品v片在线观看不卡| 午夜性刺激免费视频| 狼人综合干伊人网在线观看| 日本一区二区三区在线| 亚洲最大在线视频一区二区| 人妻丝袜av中文系列先锋影音| 青青国产成人久久91|