您的位置:首頁(yè) > 軟件教程 > 教程 > 從零在win10上測(cè)試whisper、faster-whisper、whisperx在CPU和GPU的各自表現(xiàn)情況

從零在win10上測(cè)試whisper、faster-whisper、whisperx在CPU和GPU的各自表現(xiàn)情況

來(lái)源:好特整理 | 時(shí)間:2024-05-10 11:58:55 | 閱讀:160 |  標(biāo)簽: T 測(cè)試 N1 S C in Win10   | 分享到:

Anaconda是什么? Anaconda 是一個(gè)開(kāi)源的 Python 發(fā)行版本,主要面向數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)和數(shù)據(jù)分析等領(lǐng)域。它不僅包含了 Python 解釋器本身,更重要的是集成了大量的用于科學(xué)計(jì)算、數(shù)據(jù)分析和機(jī)器學(xué)習(xí)相關(guān)的第三方庫(kù),并且提供了一個(gè)強(qiáng)大的包管理和環(huán)境管理工具——Conda。 通過(guò)C

Anaconda是什么?

Anaconda 是一個(gè)開(kāi)源的 Python 發(fā)行版本,主要面向數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)和數(shù)據(jù)分析等領(lǐng)域。它不僅包含了 Python 解釋器本身,更重要的是集成了大量的用于科學(xué)計(jì)算、數(shù)據(jù)分析和機(jī)器學(xué)習(xí)相關(guān)的第三方庫(kù),并且提供了一個(gè)強(qiáng)大的包管理和環(huán)境管理工具——Conda。
通過(guò)Conda可以在一臺(tái)電腦上,創(chuàng)建多個(gè)python的環(huán)境,非常自由的進(jìn)行切換。
以下是 Anaconda 的主要特點(diǎn)和功能:

  • 便捷的環(huán)境管理:Anaconda 通過(guò)其內(nèi)置的包管理器 Conda,使得創(chuàng)建、管理和切換不同的 Python 環(huán)境變得極為簡(jiǎn)單。用戶可以在不同項(xiàng)目之間輕松配置獨(dú)立的環(huán)境,每個(gè)環(huán)境中可以安裝特定版本的 Python 和其他庫(kù),避免了不同項(xiàng)目依賴之間的沖突。

  • 豐富的數(shù)據(jù)科學(xué)工具:安裝 Anaconda 時(shí)會(huì)附帶一系列常用的數(shù)據(jù)科學(xué)庫(kù),如 NumPy、Pandas、Matplotlib、Scikit-learn 等,以及 Jupyter Notebook 這樣的交互式開(kāi)發(fā)環(huán)境。還包括其他有用的工具,例如 Spyder IDE(集成開(kāi)發(fā)環(huán)境)和 IPython 終端等,這些都為數(shù)據(jù)科學(xué)家提供了開(kāi)箱即用的一站式解決方案。

  • 高效的包管理:Conda 不僅可以管理 Python 包,還能管理非 Python 軟件包,如R語(yǔ)言相關(guān)包或 C/C++ 編譯器等。Conda 能夠智能地解決復(fù)雜的軟件依賴關(guān)系,確保所有庫(kù)和組件都能正確安裝和協(xié)同工作,極大地提高了開(kāi)發(fā)效率。

  • 跨平臺(tái)支持:Anaconda 支持 Windows、Linux 和 MacOS 等多種操作系統(tǒng),便于在不同的開(kāi)發(fā)平臺(tái)上統(tǒng)一使用和部署。

下載anaconda并在window上安裝

https://www.anaconda.com/download/success

這是anaconda的官網(wǎng)下載地址

從零在win10上測(cè)試whisper、faster-whisper、whisperx在CPU和GPU的各自表現(xiàn)情況

這里要注意python的版本,盡量跟它保持一致,點(diǎn)擊下載之后,如果網(wǎng)絡(luò)好的話等待一會(huì)兒就下載完畢了。

從零在win10上測(cè)試whisper、faster-whisper、whisperx在CPU和GPU的各自表現(xiàn)情況

下載完畢后,打開(kāi)exe進(jìn)行安裝

從零在win10上測(cè)試whisper、faster-whisper、whisperx在CPU和GPU的各自表現(xiàn)情況

這里安裝時(shí)間可能會(huì)久一些,請(qǐng)多耐心等待一會(huì)兒吧。

從零在win10上測(cè)試whisper、faster-whisper、whisperx在CPU和GPU的各自表現(xiàn)情況

確實(shí)等了蠻久的時(shí)間的,但具體忘記了,可能大致在15-20分鐘左右吧,千等萬(wàn)等終于安裝成功了

從零在win10上測(cè)試whisper、faster-whisper、whisperx在CPU和GPU的各自表現(xiàn)情況

此時(shí)用命令行來(lái)查看還是不行的,因?yàn)闆](méi)有配置環(huán)境變量

以此點(diǎn)擊:我的電腦=> 右鍵屬性=>高級(jí)系統(tǒng)設(shè)置=>環(huán)境變量=> Path =>編輯
將下面的五個(gè)路徑添加到 Path中去

注意替換成你的安裝路徑

D:\ProgramData\anaconda3
D:\ProgramData\anaconda3\Scripts 
D:\ProgramData\anaconda3\Library\mingw-w64\bin
D:\ProgramData\anaconda3\Library\usr\bin 
D:\ProgramData\anaconda3\Library\bin

從零在win10上測(cè)試whisper、faster-whisper、whisperx在CPU和GPU的各自表現(xiàn)情況

點(diǎn)擊三次確定之后,再在命令行中運(yùn)行

從零在win10上測(cè)試whisper、faster-whisper、whisperx在CPU和GPU的各自表現(xiàn)情況

這樣說(shuō)明真正的安裝成功了,下面再來(lái)看看如何使用

conda如何來(lái)使用呢

  • 基礎(chǔ)命令
// 查看版本
conda -V

// 查看安裝了那些包
conda list

//查看當(dāng)前存在哪些虛擬環(huán)境
conda env list 或 conda info -e

//檢查更新當(dāng)前conda
conda update conda 

// 使用conda安裝python依賴
conda install xxxx
  • 創(chuàng)建一個(gè)虛擬環(huán)境

因?yàn)槲抑半娔X上安裝的就是3.11.2的版本,所以在這里直接繼續(xù)指定python版本為3.11.2

conda create -n python3112 python=3.11.2

此時(shí)可以查看window電腦上擁有那些虛擬環(huán)境

conda env list

從零在win10上測(cè)試whisper、faster-whisper、whisperx在CPU和GPU的各自表現(xiàn)情況

激活環(huán)境

conda activate python3112

首次執(zhí)行上面的命令可能需要使用 conda init ,執(zhí)行完畢后關(guān)閉當(dāng)前shell腳本命令,再重新打開(kāi)執(zhí)行激活環(huán)境的命令

從零在win10上測(cè)試whisper、faster-whisper、whisperx在CPU和GPU的各自表現(xiàn)情況

退出虛擬環(huán)境

conda deactivate

注意:看上面我是直接在CMD下使用的命令,比如如果你想在git bash下運(yùn)行conda的話

從零在win10上測(cè)試whisper、faster-whisper、whisperx在CPU和GPU的各自表現(xiàn)情況

echo ". /d/ProgramData/anaconda3/etc/profile.d/conda.sh" >>~/.profile

上面替換成自己的安裝目錄,執(zhí)行完畢之后,關(guān)閉命令窗口,重新打開(kāi)一個(gè)新的便可以執(zhí)行 conda命令了

conda安裝成功之后,安裝依賴盡量使用conda 來(lái),就不要使用pip了

初始使用了幾天的conda,感覺(jué)還不錯(cuò)

如何在window上開(kāi)啟GPU

首先使用 cmd 命令行輸入 nvidia-smi ,在第一行最右邊可以看到CUDA的版本號(hào),我的版本是12.3

從零在win10上測(cè)試whisper、faster-whisper、whisperx在CPU和GPU的各自表現(xiàn)情況

https://pytorch.org/get-started/locally/
打開(kāi)網(wǎng)址選擇一個(gè)比較靠近的版本

從零在win10上測(cè)試whisper、faster-whisper、whisperx在CPU和GPU的各自表現(xiàn)情況

最終選擇完生成命令為

conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia

如果有卡住的可能就是網(wǎng)絡(luò)有問(wèn)題了,可以直接到鏡像源進(jìn)行下載安裝 https://download.pytorch.org/whl/torch_stable.html

從零在win10上測(cè)試whisper、faster-whisper、whisperx在CPU和GPU的各自表現(xiàn)情況
這里也需要你的耐心等待喲,因?yàn)镻ytorch 的安裝包還是不小的。

從零在win10上測(cè)試whisper、faster-whisper、whisperx在CPU和GPU的各自表現(xiàn)情況

多等一會(huì)兒,出現(xiàn)done則代表安裝成功了,然后在命令行中輸入pip list則可以看到torch相關(guān)的包都安裝了

從零在win10上測(cè)試whisper、faster-whisper、whisperx在CPU和GPU的各自表現(xiàn)情況

CUDA是什么:CUDA是NVIDIA推出的一種編程技術(shù)。它允許開(kāi)發(fā)者使用C語(yǔ)言來(lái)編寫(xiě)能在NVIDIA的圖形處理器上運(yùn)行的代碼。通過(guò)CUDA,開(kāi)發(fā)者可以將GPU用于通用的并行計(jì)算,大大提高了計(jì)算效率。
CUDA的一個(gè)重要特點(diǎn)是,它允許軟件開(kāi)發(fā)者直接使用NVIDIA的GPU來(lái)執(zhí)行某些計(jì)算密集型的任務(wù)。這是因?yàn)镚PU內(nèi)部有許多并行處理單元,可以同時(shí)執(zhí)行許多計(jì)算任務(wù),從而大大提高了計(jì)算速度。
另外,CUDA還提供了一套完整的開(kāi)發(fā)工具鏈,包括編譯器、調(diào)試器和性能分析器,使得開(kāi)發(fā)者可以更方便地開(kāi)發(fā)和優(yōu)化CUDA程序。

接下來(lái)直接驗(yàn)證CUDA是否可用,直接繼續(xù)命令行中輸入 python

import torch
torch.cuda.is_available()

如果輸出為true則代表可以使用GPU顯卡了

從零在win10上測(cè)試whisper、faster-whisper、whisperx在CPU和GPU的各自表現(xiàn)情況

準(zhǔn)備whisper、faster-whisper、whisperX的測(cè)試代碼

import whisper
from whisper.utils import get_writer
import os
import time
import torch
import os   #引用OS
from faster_whisper import WhisperModel
import whisperx
import gc 

def whisperx_test():
    device = "cpu" 
    model_size = "large-v3"
    audio_file = "test.mp4"
    batch_size = 16
    compute_type = "int8" 

    # widnow CPU
    model = whisperx.load_model("large-v3", device, compute_type=compute_type)

    # window GPU
    # model = whisperx.load_model("large-v3", "cuda", compute_type="float16")

    audio = whisperx.load_audio(audio_file)
    result = model.transcribe(audio, batch_size=batch_size)

    print(result["segments"])

def faster_whisper_test(): 
    model_size = "large-v3"

    ## window cpu
    model = WhisperModel(model_size, device="cpu", compute_type="int8", cpu_threads=16)
    
    # window gpu
    # model = WhisperModel(model_size, device="cuda", compute_type="float16")
    segments, info = model.transcribe("test.mp4", beam_size = 5)

    print("Detected language '%s' with probability %f" % (info.language, info.language_probability))

    for segment in segments:
        print("[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text))

def whisper_test():

    os.environ['KMP_DUPLICATE_LIB_OK'] = 'TRUE'

    filename = "test.mp4"   

    ## window GPU  cuda
    ## window CPU  cpu
    ## mac CPU cpu
    ## mac GPU
    model = whisper.load_model("large-v3",device="cuda")
    result = model.transcribe(audio=filename, fp16 =False)
    output_directory = "."

    word_options = {
    "highlight_words": True,
    "max_line_count": 50,
    "max_line_width": 3
    }

    srt_writer = get_writer("srt", output_directory)
    srt_writer(result, filename, word_options)

if __name__ == "__main__":
    # print(torch.cuda.is_available())
    start_time = time.time()  # 開(kāi)始時(shí)間
    print("start time:", start_time)
    # whisper_test()
    # faster_whisper_test()
    whisperx_test()
    end_time = time.time()  # 結(jié)束時(shí)間
    print("Execution time: ", end_time - start_time, "seconds")

三個(gè)開(kāi)源項(xiàng)目的地址分別是:

根據(jù)代碼要進(jìn)行安裝依賴,也是我從三個(gè)開(kāi)源項(xiàng)目的readme中可以找到安裝依賴的命令

// 安裝openai-whisper
pip install -U openai-whisper --user
//或者
pip install --upgrade --no-deps --force-reinstall git+https://github.com/openai/whisper.git

// 安裝faster-whisper
pip install faster-whisper
//或者
pip install git+https://github.com/openai/whisper.git 


//安裝whisperx
pip install git+https://github.com/m-bain/whisperx.git

//如果運(yùn)行后,看到ffmpeg not found 
要記得安裝一下ffmpeg

當(dāng)然上面的pip也可以換成conda

準(zhǔn)備了三個(gè)方法

  • whisper_test 來(lái)測(cè)試openai官網(wǎng)發(fā)布的whisper
  • faster_whisper_test來(lái)測(cè)試改進(jìn)版的faster_whisper
  • whisperx來(lái)測(cè)試基于faster_whisper再次改進(jìn)的版本
    測(cè)試的時(shí)候,我是準(zhǔn)備了一個(gè)30秒的小視頻 test.mp4。
    然后分為CPU和GPU進(jìn)行分別測(cè)試。

根據(jù)測(cè)試情況進(jìn)行注釋上述方法即可,運(yùn)行如下命令即開(kāi)啟測(cè)試

python main.py

在這里先附上我的電腦配置,其實(shí)是比較一般的

從零在win10上測(cè)試whisper、faster-whisper、whisperx在CPU和GPU的各自表現(xiàn)情況

window上測(cè)試openai的whisper

  • 先來(lái)看GPU測(cè)試情況
    我先打開(kāi)任務(wù)管理器 => 性能 => GPU

從零在win10上測(cè)試whisper、faster-whisper、whisperx在CPU和GPU的各自表現(xiàn)情況

沒(méi)進(jìn)行測(cè)試的時(shí)候GPU的占用其實(shí)很少的,如果一旦開(kāi)啟了GPU測(cè)試就可以看到下圖所示的GPU內(nèi)存占用

從零在win10上測(cè)試whisper、faster-whisper、whisperx在CPU和GPU的各自表現(xiàn)情況

最終在GPU運(yùn)行的情況下,我測(cè)試了三次

從零在win10上測(cè)試whisper、faster-whisper、whisperx在CPU和GPU的各自表現(xiàn)情況

window-whisper-GPU:大致平均150秒

  • 再來(lái)測(cè)試CPU的情況
    運(yùn)行之后我的CPU直接100%,直接拉滿了

從零在win10上測(cè)試whisper、faster-whisper、whisperx在CPU和GPU的各自表現(xiàn)情況

同樣,再使用CPU的情況下,測(cè)試了三次

從零在win10上測(cè)試whisper、faster-whisper、whisperx在CPU和GPU的各自表現(xiàn)情況

看來(lái)我這個(gè)GPU顯卡還是非常一般的,竟然沒(méi)有CPU的快

window-whisper-CPU:大致平均100秒

window上測(cè)試faster-whisper

  • 先來(lái)看GPU測(cè)試情況

從零在win10上測(cè)試whisper、faster-whisper、whisperx在CPU和GPU的各自表現(xiàn)情況

同樣分三次進(jìn)行測(cè)試大致也就是50秒左右,在GPU的情況下,內(nèi)存占用居然比whisper的少了近一半,難道速度也能提升一半嗎?

從零在win10上測(cè)試whisper、faster-whisper、whisperx在CPU和GPU的各自表現(xiàn)情況

window-faster-whisper-GPU: 大致平均50秒左右
沒(méi)想到真的提升了速度,而且不止一半,真不錯(cuò)

  • 再來(lái)測(cè)試CPU的情況

從零在win10上測(cè)試whisper、faster-whisper、whisperx在CPU和GPU的各自表現(xiàn)情況

同樣的CPU接近100%了,但是內(nèi)存好像比原來(lái)少了差不多一半

從零在win10上測(cè)試whisper、faster-whisper、whisperx在CPU和GPU的各自表現(xiàn)情況

window-faster-whisper-CPU: 大致平均50秒左右

window上測(cè)試whisperX

GPU 測(cè)試三次

從零在win10上測(cè)試whisper、faster-whisper、whisperx在CPU和GPU的各自表現(xiàn)情況

window-whisperX-GPU: 大致平均36秒左右
CPU 測(cè)試三次

從零在win10上測(cè)試whisper、faster-whisper、whisperx在CPU和GPU的各自表現(xiàn)情況

window-faster-whisperX-CPU: 大致平均43秒左右

沒(méi)想到的是whisperx在faster-whisper的基礎(chǔ)上還有提升

mac上運(yùn)行whisper

本來(lái)還想繼續(xù)在mac上測(cè)試,發(fā)現(xiàn)除了openai的whisper能在CPU下運(yùn)行,其他的跑起來(lái)都有問(wèn)題,可能也是我自己的問(wèn)題吧

從零在win10上測(cè)試whisper、faster-whisper、whisperx在CPU和GPU的各自表現(xiàn)情況

mac-openai-whisper-CPU:大致50秒左右
這是自Mac M1 Pro上做的測(cè)試

總結(jié)一下

從零在win10上測(cè)試whisper、faster-whisper、whisperx在CPU和GPU的各自表現(xiàn)情況

我只是進(jìn)行簡(jiǎn)單的測(cè)試做了一個(gè)對(duì)比。mac的CPU還是非常強(qiáng)大的,當(dāng)然了價(jià)格也擺在了那里。

我這里測(cè)試的時(shí)候也沒(méi)有進(jìn)行過(guò)多的參數(shù)調(diào)整,有時(shí)間的話可以進(jìn)行比如 int8、float16、float32等等其他的多組測(cè)試數(shù)據(jù)。

接下來(lái)看看有機(jī)會(huì)再來(lái)試試另外兩個(gè)開(kāi)源模型

小編推薦閱讀

好特網(wǎng)發(fā)布此文僅為傳遞信息,不代表好特網(wǎng)認(rèn)同期限觀點(diǎn)或證實(shí)其描述。

相關(guān)視頻攻略

更多

掃二維碼進(jìn)入好特網(wǎng)手機(jī)版本!

掃二維碼進(jìn)入好特網(wǎng)微信公眾號(hào)!

本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權(quán),請(qǐng)發(fā)郵件[email protected]

湘ICP備2022002427號(hào)-10 湘公網(wǎng)安備:43070202000427號(hào)© 2013~2025 haote.com 好特網(wǎng)