比原版快 4 倍的語音轉(zhuǎn)文字)
faster-whisper 快速上手教程免費實現(xiàn)比原版快 4 倍的語音轉(zhuǎn)文字【免費下載鏈接】faster-whisperFaster Whisper transcription with CTranslate2項目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisperfaster-whisper 是一個用 CTranslate2 推理引擎重寫的 OpenAI Whisper 語音轉(zhuǎn)文字工具同樣的識別準確率下速度最高可達原版的 4 倍占用的內(nèi)存反而更少。它是免費開源的一條命令安裝幾行 Python 代碼就能把一段錄音變成帶時間戳的文字。它能幫你做什么你手里有一段 13 分鐘的會議錄音想 1 分鐘內(nèi)拿到逐字稿它能做。你正在剪輯視頻需要詞級時間戳來對齊字幕它能做。你攢了一堆語音備忘錄想批量轉(zhuǎn)成可搜索的文字它也能做。按項目自帶的基準測試用 large-v2 模型在 GPU 上處理 13 分鐘音頻原版 Whisper 要 2 分 23 秒faster-whisper 只要 1 分 03 秒開啟 int8 量化后 59 秒出結(jié)果。3 分鐘完成 faster-whisper 安裝先確認環(huán)境Python 3.9 及以上即可。不用裝 FFmpeg音頻解碼由 PyAV 庫自帶完成比原版少一個麻煩。安裝只有一條命令pip install faster-whisper有 NVIDIA 顯卡的話還需要裝 cuBLASCUDA 12和 cuDNN 9 這兩個庫才能啟用 GPU具體說明見 README.md。沒有顯卡也完全沒問題CPU 模式一樣能跑。第一次運行3 行代碼轉(zhuǎn)出文字先跑通再說。下面這個例子選 base 模型 CPU int8是新手最不容易出錯的組合from faster_whisper import WhisperModel model WhisperModel(base, devicecpu, compute_typeint8) segments, info model.transcribe(audio.mp3) for segment in segments: print(f[{segment.start:.2f}s - {segment.end:.2f}s] {segment.text})它做了三件事加載 base 模型首次運行會自動下載并緩存、轉(zhuǎn)錄audio.mp3并自動檢測語言、按句子打印每段文字和起止時間。把模型名換成 small、medium、large-v3 就能在速度和精度之間取舍。跟著做一遍時間戳 靜音過濾字幕制作最有用的是詞級時間戳加一個word_timestampsTrue參數(shù)就行segments, _ model.transcribe(audio.mp3, word_timestampsTrue) for segment in segments: for word in segment.words: print(f[{word.start:.2f}s - {word.end:.2f}s] {word.word})segment.words里每個詞都帶獨立的 start/end直接就能導出成 SRT 或逐字稿對齊文件。第二個高頻參數(shù)是靜音過濾。長音頻里大量靜音段落其實不用送進模型加vad_filterTrue會自動跳過沒有說話聲的部分底層是 Silero VAD參數(shù)細節(jié)見 faster_whisper/vad.pysegments, _ model.transcribe( audio.mp3, vad_filterTrue, vad_parametersdict(min_silence_duration_ms500), )默認規(guī)則偏保守只剔除超過 2 秒的靜音min_silence_duration_ms500表示超過半秒的靜音就切掉處理背景音樂多的音頻時速度提升很明顯。讓識別速度再翻倍的設置模型和計算類型是速度、精度、內(nèi)存三者的調(diào)節(jié)旋鈕模型tiny 最快、small 均衡、medium 偏質(zhì)量、large-v3 精度最高另有 turbo 和 distil-large-v3 可選distil 模型記得傳languageen。計算類型GPU 推薦compute_typefloat16顯存緊張換int8_float16純 CPU 用int8。批量推理顯存夠的話用BatchedInferencePipeline加batch_size16同一份 13 分鐘音頻從 63 秒壓到 17 秒這是 README 實測數(shù)據(jù)。int8 量化對速度的幫助同樣可觀CPU 上 small 模型從 1 分 42 秒int8對比原版的 6 分 58 秒快了一大截。所有參數(shù)都在 faster_whisper/transcribe.py 的transcribe方法里可以逐個試。常見問題與避坑Q調(diào)用了 transcribe 但打印不出來segments是個生成器轉(zhuǎn)錄只在遍歷它時才開始執(zhí)行。用for循環(huán)或list(segments)收一遍文字才會真正產(chǎn)出。這是新手最常踩的坑。QGPU 報 CUDA 相關(guān)錯誤最新版 ctranslate2 只支持 CUDA 12 cuDNN 9。如果是 CUDA 11 環(huán)境降級pip install ctranslate23.24.0CUDA 12 但 cuDNN 8 則用ctranslate24.4.0。Q需要單獨裝 FFmpeg 嗎不需要。PyAV 已經(jīng)把 FFmpeg 庫打進了 pip 包里直接轉(zhuǎn) mp3、wav、m4a 都沒問題。Q顯存不夠怎么辦先換int8_float16計算類型large-v2 的顯存占用從 4525MB 降到 2926MB再不行就降級模型或調(diào)小chunk_length。Q能用自己的微調(diào)模型嗎能。用ct2-transformers-converter把 Transformers 格式的 Whisper 模型轉(zhuǎn)成 CTranslate2 格式后把WhisperModel(本地目錄)指向該目錄即可方法見 README.md 的 Model conversion 一節(jié)。適合哪些場景會議記錄長錄音一鍵轉(zhuǎn)逐字稿分段帶時間戳方便回查誰在什么時候說了什么。視頻字幕word_timestamps輸出可直接喂給字幕工具中英混錄也能自動識別語言。語音備忘錄把零散的語音筆記批量轉(zhuǎn)成文字之后可以搜索、歸檔。播客與課程長音頻配 VAD 靜音過濾轉(zhuǎn)寫完還能順手做內(nèi)容索引。倉庫里還帶了現(xiàn)成測試音頻如 tests/data/jfk.flac和 benchmark/ 下的速度、內(nèi)存、WER 基準腳本想驗證自己機器上的真實表現(xiàn)可以直接跑。寫在最后faster-whisper 的價值一句話概括不犧牲準確率的 Whisper 加速版裝完三行代碼就能用。下一步建議用batch_size試試批量推理能快多少跑一遍 benchmark/speed_benchmark.py 看看自己機器的實測數(shù)據(jù)最后嘗試轉(zhuǎn)換一個自己微調(diào)過的模型把這套流程接到真實業(yè)務里?!久赓M下載鏈接】faster-whisperFaster Whisper transcription with CTranslate2項目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考