日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

持续进化,快速转录,Faster-Whisper对视频进行双语字幕转录实践(Python3.10)

發(fā)布時(shí)間:2023/11/3 654 coder
生活随笔 收集整理的這篇文章主要介紹了 持续进化,快速转录,Faster-Whisper对视频进行双语字幕转录实践(Python3.10) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Faster-Whisper是Whisper開源后的第三方進(jìn)化版本,它對(duì)原始的 Whisper 模型結(jié)構(gòu)進(jìn)行了改進(jìn)和優(yōu)化。這包括減少模型的層數(shù)、減少參數(shù)量、簡(jiǎn)化模型結(jié)構(gòu)等,從而減少了計(jì)算量和內(nèi)存消耗,提高了推理速度,與此同時(shí),F(xiàn)aster-Whisper也改進(jìn)了推理算法、優(yōu)化計(jì)算過程、減少冗余計(jì)算等,用以提高模型的運(yùn)行效率。

本次我們利用Faster-Whisper對(duì)日語視頻進(jìn)行雙語(日語/國(guó)語)轉(zhuǎn)錄實(shí)踐,看看效率如何。

構(gòu)建Faster-Whisper轉(zhuǎn)錄環(huán)境

首先確保本地已經(jīng)安裝好Python3.10版本以上的開發(fā)環(huán)境,隨后克隆項(xiàng)目:

git clone https://github.com/ycyy/faster-whisper-webui.git

進(jìn)入項(xiàng)目的目錄:

cd faster-whisper-webui

安裝項(xiàng)目依賴:

pip3 install -r requirements.txt

這里需要注意的是,除了基礎(chǔ)依賴,還得再裝一下faster-whisper依賴:

pip3 install -r requirements-fasterWhisper.txt

如此,轉(zhuǎn)錄速度會(huì)更快。

模型的下載和配置

首先在項(xiàng)目的目錄建立模型文件夾:

mkdir Models

faster-whisper項(xiàng)目?jī)?nèi)部已經(jīng)整合了VAD算法,VAD是一種音頻活動(dòng)檢測(cè)的算法,它可以準(zhǔn)確的把音頻中的每一句話分離開來,并且讓whisper更精準(zhǔn)的定位語音開始和結(jié)束的位置。

所有首先需要配置VAD模型:

git clone https://github.com/snakers4/silero-vad

然后將克隆下來的vad模型放入剛剛建立的Models文件夾中即可。

接著下載faster-whisper模型,下載地址:

https://huggingface.co/guillaumekln/faster-whisper-large-v2

這里建議只下載faster-whisper-large-v2模型,也就是大模型的第二版,因?yàn)閒aster-whisper本來就比whisper快,所以使用large模型優(yōu)勢(shì)就會(huì)更加的明顯。

模型放入models文件夾的faster-whisper目錄,最終目錄結(jié)構(gòu)如下:

models  
├─faster-whisper  
│  ├─large-v2  
└─silero-vad  
    ├─examples  
    │  ├─cpp  
    │  ├─microphone_and_webRTC_integration  
    │  └─pyaudio-streaming  
    ├─files  
    └─__pycache__

至此,模型就配置好了。

本地推理進(jìn)行轉(zhuǎn)錄

現(xiàn)在,我們可以試一試faster-whisper的效果了,以「原神」神里綾華日語視頻:《誰能拒絕一只蝴蝶忍呢?》為例子,原視頻地址:

https://www.bilibili.com/video/BV1fG4y1b74e/

項(xiàng)目根目錄運(yùn)行命令:

python cli.py --model large-v2 --vad silero-vad --language Japanese --output_dir d:/whisper_model d:/Downloads/test.mp4

這里--model指定large-v2模型,--vad算法使用silero-vad,--language語言指定日語,輸出目錄為d:/whisper_model,轉(zhuǎn)錄視頻是d:/Downloads/test.mp4。

程序輸出:

D:\work\faster-whisper-webui>python cli.py --model large-v2 --vad silero-vad --language Japanese --output_dir d:/whisper_model d:/Downloads/test.mp4  
Using faster-whisper for Whisper  
[Auto parallel] Using GPU devices ['0'] and 8 CPU cores for VAD/transcription.  
Creating whisper container for faster-whisper  
Using parallel devices: ['0']  
Created Silerio model  
Parallel VAD: Executing chunk from 0 to 74.071224 on CPU device 0  
Loaded Silerio model from cache.  
Getting timestamps from audio file: d:/Downloads/test.mp4, start: 0, duration: 74.071224  
Processing VAD in chunk from 00:00.000 to 01:14.071  
C:\Users\zcxey\AppData\Roaming\Python\Python310\site-packages\torch\nn\modules\module.py:1501: UserWarning: operator () profile_node %669 : int[] = prim::profile_ivalue(%667)  
 does not have profile information (Triggered internally at ..\third_party\nvfuser\csrc\graph_fuser.cpp:108.)  
  return forward_call(*args, **kwargs)  
VAD processing took 2.474104000022635 seconds  
Transcribing non-speech:  
[{'end': 75.071224, 'start': 0.0}]  
Parallel VAD processing took 8.857761900057085 seconds  
Device 0 (index 0) has 1 segments  
Using device 0  
(get_merged_timestamps) Using override timestamps of size 1  
Processing timestamps:  
[{'end': 75.071224, 'start': 0.0}]  
Running whisper from  00:00.000  to  01:15.071 , duration:  75.071224 expanded:  0 prompt:  None language:  None  
Loading faster whisper model large-v2 for device None  
WARNING: fp16 option is ignored by faster-whisper - use compute_type instead.  
[00:00:00.000->00:00:03.200] 稲妻神里流 太刀術(shù)免許開伝  
[00:00:03.200->00:00:04.500] 神里綾香  
[00:00:04.500->00:00:05.500] 參ります!  
[00:00:06.600->00:00:08.200] よろしくお願(yuàn)いします  
[00:00:08.200->00:00:12.600] こののどかな時(shí)間がもっと増えると嬉しいのですが  
[00:00:13.600->00:00:15.900] 私って欲張りですね  
[00:00:15.900->00:00:18.100] 神里家の宿命や  
[00:00:18.100->00:00:19.900] 社部業(yè)の重りは  
[00:00:19.900->00:00:23.600] お兄様が一人で背負(fù)うべきものではありません  
[00:00:23.600->00:00:27.700] 多くの方々が私を継承してくださるのは  
[00:00:27.700->00:00:30.900] 私を白鷺の姫君や  
[00:00:30.900->00:00:34.600] 社部業(yè)神里家の霊嬢として見ているからです  
[00:00:34.600->00:00:38.500] 彼らが継承しているのは私の立場(chǎng)であって  
[00:00:38.500->00:00:41.700] 綾香という一戸人とは関係ございません  
[00:00:41.700->00:00:43.400] 今の私は  
[00:00:43.400->00:00:47.300] 皆さんから信頼される人になりたいと思っています  
[00:00:47.300->00:00:49.700] その気持ちを鼓舞するものは  
[00:00:49.700->00:00:52.300] 肩にのしかかる銃石でも  
[00:00:52.300->00:00:54.800] 他人からの期待でもございません  
[00:00:54.800->00:00:56.700] あなたがすでに  
[00:00:56.800->00:00:58.800] そのようなお方だからです  
[00:00:58.800->00:01:00.500] 今から言うことは  
[00:01:00.500->00:01:03.900] 稲妻幕府社部業(yè)神里家の肩書きに  
[00:01:03.900->00:01:06.200] ふさわしくないものかもしれません  
[00:01:06.200->00:01:11.100] あなたは私のわがままを受け入れてくださる方だと信じています  
[00:01:11.100->00:01:12.500] 神里流  
[00:01:12.500->00:01:14.000] 壯烈  
Whisper took 22.232674299972132 seconds  
Parallel transcription took 31.472856600070372 seconds  
Max line width 80  
Closing parallel contexts  
Closing pool of 1 processes  
Closing pool of 8 processes

可以看到,1分14秒的視頻,vad用了8秒,whisper用了22秒,轉(zhuǎn)錄一共用了31秒。

注意,這里只是用了whisper原版的算法,現(xiàn)在我們添加--whisper_implementation faster-whisper參數(shù)來使用faster-whisper改進(jìn)后的算法:

python cli.py --whisper_implementation faster-whisper --model large-v2 --vad silero-vad --language Japanese --output_dir d:/whisper_model d:/Downloads/test.mp4

程序返回:

Running whisper from  00:00.000  to  01:15.071 , duration:  75.071224 expanded:  0 prompt:  None language:  None  
Loading faster whisper model large-v2 for device None  
WARNING: fp16 option is ignored by faster-whisper - use compute_type instead.  
[00:00:00.000->00:00:03.200] 稲妻神里流 太刀術(shù)免許開伝  
[00:00:03.200->00:00:04.500] 神里綾香  
[00:00:04.500->00:00:05.500] 參ります!  
[00:00:06.600->00:00:08.200] よろしくお願(yuàn)いします  
[00:00:08.200->00:00:12.600] こののどかな時(shí)間がもっと増えると嬉しいのですが  
[00:00:13.600->00:00:15.900] 私って欲張りですね  
[00:00:15.900->00:00:18.100] 神里家の宿命や  
[00:00:18.100->00:00:19.900] 社部業(yè)の重りは  
[00:00:19.900->00:00:23.600] お兄様が一人で背負(fù)うべきものではありません  
[00:00:23.600->00:00:27.700] 多くの方々が私を継承してくださるのは  
[00:00:27.700->00:00:30.900] 私を白鷺の姫君や  
[00:00:30.900->00:00:34.600] 社部業(yè)神里家の霊嬢として見ているからです  
[00:00:34.600->00:00:38.500] 彼らが継承しているのは私の立場(chǎng)であって  
[00:00:38.500->00:00:41.700] 綾香という一戸人とは関係ございません  
[00:00:41.700->00:00:43.400] 今の私は  
[00:00:43.400->00:00:47.300] 皆さんから信頼される人になりたいと思っています  
[00:00:47.300->00:00:49.700] その気持ちを鼓舞するものは  
[00:00:49.700->00:00:52.300] 肩にのしかかる銃石でも  
[00:00:52.300->00:00:54.800] 他人からの期待でもございません  
[00:00:54.800->00:00:56.700] あなたがすでに  
[00:00:56.800->00:00:58.800] そのようなお方だからです  
[00:00:58.800->00:01:00.500] 今から言うことは  
[00:01:00.500->00:01:03.900] 稲妻幕府社部業(yè)神里家の肩書きに  
[00:01:03.900->00:01:06.200] ふさわしくないものかもしれません  
[00:01:06.200->00:01:11.100] あなたは私のわがままを受け入れてくださる方だと信じています  
[00:01:11.100->00:01:12.500] 神里流  
[00:01:12.500->00:01:14.000] 壯烈  
Whisper took 10.779123099986464 seconds  
Parallel transcription took 11.567014200030826 seconds

大模型只用了10秒,這效率,絕了。

中文字幕

在以往的Whisper模型中,如果我們需要中文字幕,需要通過參數(shù)--task translate翻譯成英文,然后再通過第三方的翻譯接口將英文翻譯成中文,再手動(dòng)匹配字幕效果,比較麻煩。

現(xiàn)在,我們只需要將語言直接設(shè)置為中文即可,程序會(huì)進(jìn)行自動(dòng)翻譯:

python cli.py --whisper_implementation faster-whisper --model large-v2 --vad silero-vad --language Chinese --output_dir d:/whisper_model d:/Downloads/test.mp4

這里的--language參數(shù)改為Chinese。

程序返回:

Running whisper from  00:00.000  to  01:15.071 , duration:  75.071224 expanded:  0 prompt:  None language:  None  
Loading faster whisper model large-v2 for device None  
WARNING: fp16 option is ignored by faster-whisper - use compute_type instead.  
[00:00:00.000->00:00:03.200] 稲妻神里流太刀術(shù)免許改練  
[00:00:03.200->00:00:04.400] 神里綾香  
[00:00:04.400->00:00:05.400] 來吧  
[00:00:06.600->00:00:08.200] 請(qǐng)多多指教  
[00:00:08.200->00:00:12.600] 希望能有更多的這段寂靜的時(shí)間  
[00:00:13.600->00:00:15.800] 我真是太有興趣了  
[00:00:15.800->00:00:20.000] 神里家的宿命和社部行的重量  
[00:00:20.000->00:00:23.600] 不應(yīng)該由哥哥一個(gè)人承擔(dān)  
[00:00:23.600->00:00:27.400] 很多人都敬重我  
[00:00:27.600->00:00:28.800] 是因?yàn)樗麄儼盐乙暈? 
[00:00:28.800->00:00:34.600] 神里家的宿命和社部行的重量  
[00:00:34.600->00:00:38.600] 他們敬重的是我的立場(chǎng)  
[00:00:38.600->00:00:41.800] 與我自己的身分無關(guān)  
[00:00:41.800->00:00:43.400] 現(xiàn)在的我  
[00:00:43.400->00:00:47.400] 是想成為大家信任的一個(gè)人  
[00:00:47.400->00:00:49.800] 那些敬重我的人  
[00:00:49.800->00:00:52.400] 無論是肩上的重石  
[00:00:52.400->00:00:54.800] 或是別人的機(jī)器  
[00:00:54.800->00:00:58.800] 都是因?yàn)槟阋呀?jīng)是這樣的一個(gè)人  
[00:00:58.800->00:01:00.400] 我現(xiàn)在要說的話  
[00:01:00.400->00:01:03.800] 可能不適合  
[00:01:03.800->00:01:06.200] 神里家的宿命和社部行  
[00:01:06.200->00:01:11.000] 但我相信你能接受我的自私  
[00:01:11.000->00:01:12.400] 神里流  
[00:01:12.400->00:01:14.000] 消滅  
Whisper took 18.85215839999728 seconds

字幕就已經(jīng)是中文了,注意轉(zhuǎn)錄+翻譯一共花了18秒,時(shí)間成本比直接轉(zhuǎn)錄要高。

雙語字幕效果:

結(jié)語

由于 Faster-Whisper 的速度更快,它可以擴(kuò)展到更多的應(yīng)用領(lǐng)域,包括實(shí)時(shí)場(chǎng)景和大規(guī)模的數(shù)據(jù)處理任務(wù)。這使得 Faster-Whisper 在語音識(shí)別、自然語言處理、機(jī)器翻譯、智能對(duì)話等領(lǐng)域中具有更廣泛的應(yīng)用潛力,當(dāng)然了,更重要的是,當(dāng)您的電腦里D盤中的愛情片還沒有中文字幕時(shí),您當(dāng)然知道現(xiàn)在該做些什么了。

總結(jié)

以上是生活随笔為你收集整理的持续进化,快速转录,Faster-Whisper对视频进行双语字幕转录实践(Python3.10)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。