一、語音轉(zhuǎn)字幕操作步驟
1、下載安裝包Assets\WhisperDesktop.zip1
2、加載模型
運(yùn)行WhisperDesktop.exe
,
啟動后加載模型“l(fā)oad model,please wait…”,等待其將模型加載到內(nèi)存。
2.1 下載模型
剛開始是沒有模型的,需要到Hugging Face2的倉庫里面下載模型并配置相關(guān)路徑
2.1.1 進(jìn)入Hugging Face2的倉庫
點(diǎn)擊ggerganov/whisper.cpp進(jìn)入Hugging Face倉庫
2.1.2 選擇需要下載的模型
在Hugging Face倉庫,選擇Files and versions,選擇以下兩種模型:
- ggml-large.bin
- ggml-medium.bin
2.1.3 配置模型路徑
在Load Whisper Model 頁,Model Path選擇好模型的路徑D:\WhisperDestop\ggml-whisper.bin,點(diǎn)擊OK,等待其將模型加載到內(nèi)存。
3、語音轉(zhuǎn)字幕
在Transcribe Audio File頁面:
- Language:Chinese(視頻或語音說話使用的語種)
- Translate: √(把識別出來的文本給翻譯成英文輸出)
- Transcribe File:C:\xxx.mp4(選擇你要提取字幕的視頻、音頻等)
- Output Format:SubRip subtitles(輸出格式)
- None:
- Text file:純文本
- Text with timestamps
- SubRip subtitles:字幕(標(biāo)準(zhǔn)的字幕格式 時段+文字)
可以將后綴改為.srt格式,這樣的文件可以直接拖放到剪輯軟件里面,他會自動給你排列好,像這樣的字幕是不需要咱們來對時間的 - WebVTT subtitles
4、實(shí)時語言轉(zhuǎn)錄功能
開啟實(shí)時語言轉(zhuǎn)錄之后,你對它說話的話,他會自動把你說的話轉(zhuǎn)換成文字并記錄下來
二、相關(guān)簡介3
特點(diǎn)
-
基于
DirectCompute
的供應(yīng)商無關(guān)GPGPU
;該技術(shù)的另一個名稱是“Direct3D 11
中的計算著色器” -
簡單的
C++
實(shí)現(xiàn),除了基本的操作系統(tǒng)組件之外沒有運(yùn)行時依賴項 -
比
OpenAI
的實(shí)現(xiàn)快得多。
在我的臺式電腦上,使用GeForce 1080Ti GPU
,中等型號,用PyTorch
和CUDA
轉(zhuǎn)錄3:24
分鐘的語音需要45
秒,但我的實(shí)現(xiàn)和DirectCompute
只需要19
秒。
有趣的是:這是9.63 GB
的運(yùn)行時依賴項,而Whisper.dll
是431 KB
-
混合
F16/F32
精度:自D3D v10.0
版本起,Windows需要支持R16_FLOAT
緩沖區(qū) -
內(nèi)置性能探查器,用于測量單個計算著色器的執(zhí)行時間
-
內(nèi)存使用率低
-
用于音頻處理的
Media Foundation
支持大多數(shù)音頻和視頻格式(Ogg Vorbis
除外),以及大多數(shù)在Windows
上工作的音頻捕獲設(shè)備(一些專業(yè)設(shè)備除外,它們只實(shí)現(xiàn)ASIO API
)。 -
用于音頻捕獲的語音活動檢測。
該實(shí)現(xiàn)基于Mohammad Moattar
和Mahdi Homayoonpoor 2009
年的文章“一種簡單但高效的實(shí)時語音活動檢測算法”。 -
易于使用的
COM型API
。nuget
上提供了慣用的C#
包裝。1.10
版引入了對PowerShell 5.1
的腳本支持,這是Windows
上預(yù)裝的舊版本“Windows PowerShell”
。 -
可用的預(yù)構(gòu)建二進(jìn)制文件
唯一支持的平臺是64位 Windows
。
應(yīng)該在Windows 8.1
或更新版本上工作,但我只在Windows 10
上測試過。
該庫需要一個支持Direct3D 11.0
的GPU
,在2023
年,它的意思只是“任何硬件GPU”
。最新的不支持D3D 11.0
的GPU
是2011
年的Intel Sandy Bridge
。
在CPU
方面,庫需要AVX1
和F16C
支持。
開發(fā)人員指南
構(gòu)建說明
-
克隆此存儲庫
-
在
Visual Studio 2022
中打開WhisperCpp.sln
。我使用的是免費(fèi)軟件社區(qū)版,版本17.4.4
。 -
切換到
Release
配置 -
在解決方案的
Tools
子文件夾中生成并運(yùn)行CompressShaders
C#
項目。要運(yùn)行該項目,請在visual studio
中右鍵單擊“設(shè)置為啟動項目”,然后在VS
的主菜單中單擊“調(diào)試/啟動而不調(diào)試”。成功完成后,您應(yīng)該會看到一個控制臺窗口,其中有一行如下所示:壓縮的46個計算著色器,123.5 kb->18.0 kb
5.構(gòu)建Whisper
項目以獲得本機(jī)DLL
,或用于C#
包裝器和nuget
包的WhisperNet
或示例。
其他注意事項
如果你要在使用Visual C++2022
或更新版本構(gòu)建的軟件中使用該庫,你可能會以.msm
合并模塊或vc_redist.x64.exe
二進(jìn)制文件的形式重新分發(fā)Visual C++
運(yùn)行時DLL
。
如果你這樣做,右鍵單擊Whisper
項目、屬性、C/C++
、代碼生成,將“Runtime Library”
設(shè)置從Multi-threaded (/MT)
切換到Multi-threaded DLL (/MD)
,然后重建:二進(jìn)制文件將變得更小。
該庫包括RenderDoc GPU
調(diào)試器集成。
從RenderDoc
啟動程序時,按住F12鍵以捕獲計算調(diào)用。
如果要調(diào)試HLSL
著色器,請使用DLL
的調(diào)試構(gòu)建,其中包括著色器的調(diào)試構(gòu)建。您將在調(diào)試器中獲得更好的用戶體驗。
該存儲庫包括許多僅用于開發(fā)的代碼:耦合替代模型實(shí)現(xiàn)、一些計算著色器的兼容FP64
版本、調(diào)試跟蹤和比較跟蹤的工具等。
這些東西被預(yù)處理器宏
或constexpr
標(biāo)志禁用了,我希望保留在這里沒問題。
績效說明
我在辦公地點(diǎn)選擇了幾款GPU進(jìn)行有限的測試。
具體來說,我已經(jīng)為英偉達(dá) 1080Ti
、Ryzen 7 5700G
內(nèi)部的Radeon Vega 8
和Ryzen 5 5600U
內(nèi)部的Radeon Vega 7
進(jìn)行了優(yōu)化。
總結(jié)如下。
英偉達(dá)
為大型型號提供了5.8
的相對速度,為中型型號提供了10.6
的相對速度。
AMD Ryzen 5 5600U APU
為中型型號提供了約2.2的相對速度。不太好,但仍然比實(shí)時快得多。
我也在英偉達(dá) 1650
上測試過:比1080Ti
慢,但很好,比實(shí)時快得多。
我還測試了酷睿i7-3612QM
內(nèi)部的Intel HD Graphics 4000
,中等型號的相對速度為0.14
,小型型號為0.44
。這比實(shí)時慢得多,但我很高興發(fā)現(xiàn)我的軟件即使在2012
年推出的集成移動GPU上也能工作。
我不確定離散AMD GPU或集成Intel GPU的性能是否理想,它們沒有專門針對它們進(jìn)行優(yōu)化。
理想情況下,它們可能需要兩個最昂貴的計算著色器(mulMatTiled.hlsl
和mulMatByRowTiled.hlsl
)的稍微不同的構(gòu)建。
也許還有其他調(diào)整,比如Whisper/D3D/device.h
頭文件中的useReshapedMatMul()
值。
我不知道如何衡量,但我有一種感覺,瓶頸是內(nèi)存,而不是計算。
黑客新聞上有人測試了3060Ti
,即帶有GDDR6內(nèi)存的版本。與1080Ti相比,該GPU具有1.3倍FP32 FLOPS,但具有0.92倍VRAM帶寬。該應(yīng)用程序在3060Ti上慢了約10%。
進(jìn)一步優(yōu)化
我只花了幾天時間優(yōu)化這些著色器的性能。
也許可以做得更好,以下是一些想法。
-
與FP32相比,Radeon Vega或nVidia 1650等較新的GPU具有更高的FP16性能,但我的計算著色器僅使用FP32數(shù)據(jù)類型。
一半的細(xì)致,兩倍的樂趣 -
在當(dāng)前版本中,F(xiàn)P16張量使用著色器資源視圖向上轉(zhuǎn)換加載的值,使用無序訪問視圖向下轉(zhuǎn)換存儲的值。
切換到字節(jié)地址緩沖區(qū),加載/存儲完整的4字節(jié)值,并使用f16t32/f32-tof16
內(nèi)部函數(shù)在HLSL中進(jìn)行上變頻/下變頻可能是個好主意。 -
在當(dāng)前版本中,所有著色器都是脫機(jī)編譯的,
Whisper.dll
包含DXBC字節(jié)碼。
HLSL編譯器D3DCompiler_47.dll
是一個操作系統(tǒng)組件,速度非??臁τ诎嘿F的計算著色器,最好提供HLSL而不是DXBC,并在啟動時使用宏的特定于環(huán)境的值進(jìn)行編譯。 -
將整個東西從D3D11升級到D3D12可能是個好主意。
較新的API更難使用,但它包含了D3D11沒有的潛在有用功能:wave intrinsic和explicit FP16.。
缺少的功能
未實(shí)現(xiàn)自動語言檢測。
在當(dāng)前版本中,實(shí)時音頻捕獲的延遲很高。
具體而言,根據(jù)語音檢測,該數(shù)字約為5-10秒。
至少在我的測試中,當(dāng)我提供的音頻片段太短時,模型并不滿意。
我已經(jīng)增加了延遲并結(jié)束了這一天,但理想情況下,這需要一個更好的解決方案來優(yōu)化用戶體驗。
結(jié)尾語
在我看來,這是一個無償?shù)臉I(yè)余項目,我在2022-23年的寒假里完成了。
代碼可能有一些bug。
軟件是“原封不動”提供的,沒有任何形式的擔(dān)保。
感謝Georgi Gerganov實(shí)現(xiàn)了whisper.cpp以及GGML二進(jìn)制格式的模型。
我不會編寫Python程序,也對ML生態(tài)系統(tǒng)一無所知。
如果沒有一個好的C++參考實(shí)現(xiàn)來測試我的版本,我甚至不會啟動這個項目。
whisper.cpp項目有一個例子,它使用相同的GGML實(shí)現(xiàn)來運(yùn)行另一個OpenAI的模型GPT-2。
用這個項目中已經(jīng)實(shí)現(xiàn)的計算著色器和相關(guān)基礎(chǔ)設(shè)施來支持ML模型應(yīng)該不難。
如果你覺得這很有用,如果你考慮向“Come Back Alive”基金會捐款,我將不勝感激。
-
http://github.xiaoc.cn/Const-me/Whisper/releases/tag/1.11.0 ??
-
https://www.huggingface.co/ggerganov/whisper.cpp ?? ??文章來源:http://www.zghlxwxcb.cn/news/detail-483177.html
-
http://github.xiaoc.cn/Const-me/Whisper ??文章來源地址http://www.zghlxwxcb.cn/news/detail-483177.html
到了這里,關(guān)于【開源工具】使用Whisper將提取視頻、語音的字幕的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!