国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

音頻處理庫性能對比:計(jì)算mel頻譜的速度哪個(gè)更快?

這篇具有很好參考價(jià)值的文章主要介紹了音頻處理庫性能對比:計(jì)算mel頻譜的速度哪個(gè)更快?。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

介紹

音頻信號處理在各種應(yīng)用中都發(fā)揮著重要的作用,如語音識別、音樂信息檢索、語音合成等。其中,Mel頻譜是一種常用的頻域特征表示方法,用于描述人類聽覺系統(tǒng)對頻率的敏感程度。

在深度學(xué)習(xí)音頻領(lǐng)域,mel頻譜是最常用的音頻特征。在本文中,我們將對四個(gè)常用的音頻處理庫——audioflux、torchaudio、librosa和essentia——進(jìn)行性能測試,以評估它們在計(jì)算Mel頻譜時(shí)的效率。

Library Language Version About
audioFlux C/Python 0.1.5 A library for audio and music analysis, feature extraction
torchaudio Python 0.11.0 Data manipulation and transformation for audio signal processing, powered by PyTorch
librosa Python 0.10.0 C++ library for audio and music analysis, description and synthesis, including Python bindings
essentia C++/Python 2.0.1 Python library for audio and music analysis

audioFlux:基于C開發(fā)和python包裝,底層針對不同平臺有不同的橋接處理,支持OpenBLAS,MKL等
TorchAudio: 基于pytorch開發(fā),pytorch基于C++開發(fā)和python包裝,底層使用MKL,pytorch針對CPU是高度優(yōu)化的(本篇評測不涉及到GPU版pytorch);
librosa: 純python開發(fā),主要基于numpy和scipy,numpy底層使用OpenBLAS;
Essentia: 基于C++開發(fā)和python包裝,底層使用Eigen,F(xiàn)FTW;

針對音頻領(lǐng)域最常見的mel特征,涉及到性能主要卡點(diǎn)有FFT計(jì)算,矩陣計(jì)算,多線程并行處理這三部分,其它次要卡點(diǎn)有算法業(yè)務(wù)實(shí)現(xiàn),python包裝等。

針對FFT計(jì)算,librosa使用scipy的fftpack實(shí)現(xiàn)FFT計(jì)算加速,比FFTW3,MKL,Accelerate要慢一些;
針對矩陣計(jì)算,MKL比OpenBLAS要快些,OpenBLAS比其Eigen快一些;
針對多線程并行處理,具體各個(gè)項(xiàng)目內(nèi)部是否有支持。

測試腳本

  1. 測試多個(gè)庫,使用以下方式:
$ python run_benchmark.py -p audioflux,torchaudio,librosa -r 1000 -er 10  -t 1,5,10,100,500,1000,2000,3000
  • -p: The library name, list
  • -r: The number of sample data, number
  • -er: The number of run_xxx.py calls, number
  • -t: The time of each sample data, list
  1. 測試單個(gè)庫,使用以下方式:
$ python run_audioflux.py -r 1000 -t 1,5,10,100,500,1000,2000,3000
  1. 需要更多的命令功能,可以python run_xxx.py --help

注意

在音頻領(lǐng)域,與音頻特征提取相關(guān)的庫具有自己的功能特點(diǎn),并提供不同類型的特征。本次評估并不旨在詳細(xì)測試所有特征提取的性能比較,但是由于梅爾頻譜是最重要和基礎(chǔ)的特征之一,因此所有這些庫都支持它。

許多因素會影響性能評估結(jié)果,如 CPU 架構(gòu)、操作系統(tǒng)、編譯系統(tǒng)、基本線性代數(shù)庫的選擇以及項(xiàng)目 API 的使用,這些因素都會對評估結(jié)果產(chǎn)生一定的影響。為了盡可能公平地反映實(shí)際業(yè)務(wù)需求,本次評估基于以下條件:

  1. macOS/Linux 操作系統(tǒng),三種 CPU:Intel/AMD/M1。
  2. 庫使用最新的官方發(fā)布版本或使用具有高性能支持的最新官方源代碼編譯,并選擇最快的版本。
  3. 在 API 使用方面,遵循官方標(biāo)準(zhǔn),并對每個(gè)庫的相應(yīng)方法進(jìn)行“預(yù)熱”(不計(jì)算第一次執(zhí)行時(shí)間),并不計(jì)算初始化的執(zhí)行時(shí)間。
  4. 在數(shù)據(jù)長度方面,選擇測試數(shù)據(jù)時(shí)考慮各種實(shí)際業(yè)務(wù)需求。

當(dāng)數(shù)據(jù)較短時(shí),大多數(shù)庫的第一次執(zhí)行時(shí)間可能相對較慢。為了反映實(shí)際業(yè)務(wù)需求并保持公平,不計(jì)算第一次執(zhí)行時(shí)間。如果庫的 API 設(shè)計(jì)提供了初始化函數(shù),則在實(shí)際業(yè)務(wù)場景中會創(chuàng)建并重復(fù)調(diào)用它們,初始化的執(zhí)行時(shí)間也不計(jì)入評估結(jié)果。

警告

?? 當(dāng)使用 Conda、PyTorch、TensorFlow、XGBoost、LightGBM 等 Python 科學(xué)計(jì)算相關(guān)的庫時(shí),幾乎所有這些庫都使用 Intel Math Kernel Library (MKL)。MKL 使用 OpenMP 進(jìn)行并行加速,但是在同一進(jìn)程中只能存在一個(gè) OpenMP 實(shí)例。當(dāng)這些庫一起使用時(shí),最好將所有庫鏈接到 libomp 的相同位置,否則會出現(xiàn)錯(cuò)誤。根據(jù)提示修改環(huán)境變量可能會導(dǎo)致程序執(zhí)行變慢并產(chǎn)生不可靠的結(jié)果。相關(guān)工具可以用于重寫相關(guān)庫的 libomp 鏈接路徑。

性能

使用 audioFlux/torchaudio/librosa 庫, 針對 AMD/Intel/M1 CPUs and Linux/macOS 系統(tǒng)。

計(jì)算1000個(gè)樣本數(shù)據(jù)的mel頻譜,針對 1/5/10/100/500/1000/2000/3000每個(gè)樣本尺寸大小。 參數(shù)為 fft_len=2048, slide_len=512, sampling_rate=32000。

Linux - AMD

- OS: Ubuntu 20.04.4 LTS
- CPU: AMD Ryzen Threadripper 3970X 32-Core Processor
TimeStep audioflux torchaudio librosa
1 0.04294s 0.07707s 2.41958s
5 0.14878s 1.05589s 3.52610s
10 0.18374s 0.83975s 3.46499s
100 0.67030s 0.61876s 6.63217s
500 0.94893s 1.29189s 16.45968s
1000 1.43854s 2.23126s 27.78358s
2000 3.08714s 4.10869s 45.12714s
3000 4.90343s 5.86299s 51.62876s

Linux - Intel

- OS: Ubuntu 20.04.4 LTS
- CPU: Intel(R) Core(TM) i7-6850K CPU @ 3.60GHz
TimeStep audioflux torchaudio librosa
1 0.08106s 0.11043s 5.51295s
5 0.11654s 0.16005s 5.77631s
10 0.29173s 0.15352s 6.13656s
100 1.18150s 0.39958s 10.61641s
500 2.23883s 1.58323s 28.99823s
1000 4.42723s 3.98896s 51.97518s
2000 8.73121s 8.28444s 61.13923s
3000 13.07378s 12.14323s 70.06395s

macOS - Intel

- OS: 12.6.1 (21G217)
- CPU: 3.8GHz 8?core 10th-generation Intel Core i7, Turbo Boost up to 5.0GHz
TimeStep audioflux torchaudio librosa
1 0.07605s 0.06451s 1.70139s
5 0.14946s 0.08464s 1.86964s
10 0.16641s 0.10762s 2.00865s
100 0.46902s 0.83551s 3.28890s
500 1.08860s 5.05824s 8.98265s
1000 2.64029s 9.78269s 18.24391s
2000 5.40025s 15.08991s 33.68184s
3000 7.92596s 24.84823s 47.35941s

macOS - M1

- OS: 12.4 (21F79)
- CPU: Apple M1
TimeStep audioflux torchaudio librosa
1 0.06110s 0.06874s 2.22518s
5 0.23444s 0.07922s 2.55907s
10 0.20691s 0.11090s 2.71813s
100 0.68694s 0.63625s 4.74433s
500 1.47420s 3.37597s 13.83887s
1000 3.00926s 6.76275s 25.24646s
2000 5.99781s 12.69573s 47.84029s
3000 8.76306s 19.03391s 69.40428s

詳細(xì)Benchmark和腳本: https://github.com/libAudioFlux/audioFlux/tree/master/benchmark

總結(jié)

總的來說,從三個(gè)庫的性能比較結(jié)果來看,librosa 執(zhí)行時(shí)間最長,這也符合常識。
在 linux/amd 處理器上,audioflux 比 torchaudio 稍快,但在 linux/intel 上稍慢。
在 macOS 系統(tǒng)上,對于大尺寸樣本數(shù)據(jù),audioflux 比 torchaudio 快,intel 比 m1 明顯;對于小尺寸樣本數(shù)據(jù),torchaudio 比 audioflux 更快。

??盡管本次基準(zhǔn)測試的開發(fā)旨在盡可能客觀和公正,但每個(gè)基準(zhǔn)測試都有其缺點(diǎn),并且限于特定的測試程序、數(shù)據(jù)集和平臺。此外,本次基準(zhǔn)測試未比較庫可能支持的其他功能或其他 API、跨平臺等。我們鼓勵用戶使用自己的數(shù)據(jù)集和平臺進(jìn)行基準(zhǔn)測試。文章來源地址http://www.zghlxwxcb.cn/news/detail-424833.html

到了這里,關(guān)于音頻處理庫性能對比:計(jì)算mel頻譜的速度哪個(gè)更快?的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 音頻信號的頻譜分析實(shí)例

    音頻信號的頻譜分析實(shí)例

    在前面的文章 信號頻譜分析與功率譜密度 中,我們初步探討了信號頻譜分析的概念,并介紹了其數(shù)學(xué)工具。本篇文章將結(jié)合實(shí)例,進(jìn)一步探討頻譜分析在音頻信號處理中的應(yīng)用。 音頻信號的頻譜分析是一種將時(shí)域中的音頻信號轉(zhuǎn)換為頻域表示的過程,從而可以觀察信號在不

    2024年04月16日
    瀏覽(23)
  • Vue中如何進(jìn)行音頻可視化與音頻頻譜展示

    Vue中如何進(jìn)行音頻可視化與音頻頻譜展示

    隨著音頻應(yīng)用程序的不斷發(fā)展,音頻可視化和音頻頻譜展示成為了重要的功能。在Vue應(yīng)用程序中實(shí)現(xiàn)音頻可視化和音頻頻譜展示可以幫助用戶更好地了解音頻文件的內(nèi)容和特征。本文將介紹如何在Vue應(yīng)用程序中實(shí)現(xiàn)音頻可視化和音頻頻譜展示功能。 音頻可視化是指將音頻信號

    2024年02月15日
    瀏覽(25)
  • Spark性能優(yōu)化:提高計(jì)算速度與資源利用率的實(shí)用技巧

    Apache Spark是一個(gè)開源的大規(guī)模數(shù)據(jù)處理框架,它可以處理批量數(shù)據(jù)和流式數(shù)據(jù),并提供了一個(gè)易用的編程模型。Spark的核心組件是Spark引擎,它負(fù)責(zé)執(zhí)行用戶的計(jì)算任務(wù)。在大規(guī)模數(shù)據(jù)處理中,Spark性能優(yōu)化是非常重要的,因?yàn)樗梢蕴岣哂?jì)算速度和資源利用率。 在本文中,我

    2024年02月20日
    瀏覽(99)
  • c++矩陣計(jì)算性能對比:Eigen和GPU

    生成隨機(jī)矩陣 生成隨機(jī)矩陣有多種方式,直接了當(dāng)?shù)姆绞绞鞘褂蔑@式循環(huán)的方式為矩陣的每個(gè)元素賦隨機(jī)值。 另一種方式是使用Eigen庫,它提供了矩陣運(yùn)算的庫。 生成隨機(jī)矩陣: 計(jì)算矩陣點(diǎn)積 使用顯式循環(huán)計(jì)算 直接上代碼: 使用Eigen庫 代碼: 使用GPU 代碼片斷: 結(jié)果分析

    2024年02月12日
    瀏覽(18)
  • Android 音頻可視化:頻譜特效的探索與實(shí)踐

    Android 音頻可視化:頻譜特效的探索與實(shí)踐

    音頻可視化,一言以蔽之,就是聲音到圖像的轉(zhuǎn)換。 隨著視覺工業(yè)時(shí)代的到來,用戶逐漸重視產(chǎn)品的極致體驗(yàn),在市場上諸多優(yōu)秀的音樂類APP中, 頻譜動效 是一個(gè)經(jīng)典的應(yīng)用場景: 圖片來源:咪咕音樂 本文以 Android 端為例,從音頻信號 數(shù)據(jù)的獲取 、 數(shù)據(jù)的處理 、 常見問

    2024年02月15日
    瀏覽(21)
  • 解放計(jì)算力:使用并行處理提升python for循環(huán)速度

    解放計(jì)算力:使用并行處理提升python for循環(huán)速度

    Python 是一門功能強(qiáng)大的編程語言,但在處理大規(guī)模數(shù)據(jù)或復(fù)雜計(jì)算任務(wù)時(shí),性能可能成為一個(gè)瓶頸。幸運(yùn)的是,Python 提供了多種方法來提升性能,其中之一是利用并行處理來加速循環(huán)操作。本文將介紹如何使用并行處理技術(shù)來優(yōu)化 for 循環(huán),從而提高 Python 程序的執(zhí)行速度。

    2024年02月10日
    瀏覽(24)
  • 使用python繪制音頻的時(shí)頻圖、頻譜圖和MFCC特征圖

    使用python繪制音頻的時(shí)頻圖、頻譜圖和MFCC特征圖

    時(shí)頻圖如上 頻圖圖 完整的mfcc

    2024年02月13日
    瀏覽(23)
  • 基于STM32&FFT(快速傅里葉變換)音頻頻譜顯示功能實(shí)現(xiàn)

    基于STM32&FFT(快速傅里葉變換)音頻頻譜顯示功能實(shí)現(xiàn)

    + v hezkz17進(jìn)數(shù)字音頻系統(tǒng)研究開發(fā)交流答疑 一實(shí)驗(yàn)效果 ? 二 設(shè)計(jì)過程 要用C語言實(shí)現(xiàn)STM32頻譜顯示功能,可以按照以下步驟進(jìn)行操作: 1 確保已經(jīng)安裝好了適當(dāng)?shù)拈_發(fā)環(huán)境和工具鏈,例如Keil MDK或者GCC工具鏈。 2 創(chuàng)建一個(gè)新的STM32項(xiàng)目,并選擇適合的MCU型號。 3 配置GPIO引腳用

    2024年02月12日
    瀏覽(19)
  • html+css+js本地音樂播放器,實(shí)現(xiàn)可視化音頻頻譜

    html+css+js本地音樂播放器,實(shí)現(xiàn)可視化音頻頻譜

    html+css+js本地音樂播放器,實(shí)現(xiàn)可視化音頻頻譜 之前用swing寫了個(gè)本地音樂播放器(如下圖),但是效果一言難盡,界面丑,功能bug也多,唉 所以后面又重新用html寫了個(gè),界面樣式和功能方面,比swing寫的好看、完善多了。 導(dǎo)入音樂(已完成) 展示列表(已完成) 列表雙擊

    2024年02月09日
    瀏覽(29)
  • [pgrx開發(fā)postgresql數(shù)據(jù)庫擴(kuò)展]4.基本計(jì)算函數(shù)的編寫與性能對比

    [pgrx開發(fā)postgresql數(shù)據(jù)庫擴(kuò)展]4.基本計(jì)算函數(shù)的編寫與性能對比

    再次聲明: 并不是所有場景都需要(或者適合)用rust來寫的,絕大部分操作數(shù)據(jù)庫的功能和計(jì)算,用SQL就已經(jīng)足夠了! 本系列中,所有的案例,僅用于說明pgrx的能力,而并非是說這樣做比用SQL更合適。反之:對于操作數(shù)據(jù)庫本身的部分,大部分能用SQL來實(shí)現(xiàn)的東西,都比做

    2024年02月01日
    瀏覽(32)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包