whisper這是openai公開的語音辨識模型

作者: siediyer 分类: linux 发布时间: 2024-02-03 10:54

whisper這是openai公開的語音辨識模型

非常強大相信不少人已經聽過或使用過了

沒聽過也沒關係這邊做個使用介紹

 

這裡主要要介紹的是

whisper與faster-whisper

還有whisper-webui(網頁版本)

openai/whisper

https://github.com/openai/whisper

guillaumekln/faster-whisper

https://github.com/guillaumekln/faster-whisper

aadnk/whisper-webui

https://huggingface.co/spaces/aadnk/whisper-webui

___________________________

一. whisper OpenAI相信大家都知道

他是開發ChatGPT的組織

除了GPT外也有推出其他公開的模型

whisper是在2022年9月首次發佈的

是一種通用的語音辨識模型

 

目前提供六種級距的模型(視GPU等級選擇)

越大的模型效果越好但也較耗資源

https://i.imgur.com/UWXod1R.png

https://i.imgur.com/S6AYJE8.png

large-v2模型是在2022年底才推出的

參數與原本的large模型一樣

但是效果更好了,詳細可參考底下討論說明

https://github.com/openai/whisper/discussions/661

下圖是whisper以large-v2模型

驗證的單詞錯誤率(Word Error Rate)

越上面的語言錯誤率越低

我自己常使用英文、日文、中文

辨識的都還不錯

https://i.imgur.com/hKKn2mm.png

在github上面還有介紹Python呼叫使用方式

有興趣的可以看看,這裡就先略過了

___________________________

 

二. faster-whisper

guillaumekln使用CTranslate2重新實作出OpenAI的Whisper模型

github上說明同精度下速度比openai/whisper 快 4 倍,

並且使用更少的記憶體,在CPU和GPU上使用8-bit量化可以進一步提高效率。

https://i.imgur.com/r9Uf0Fj.png

這使得large-v2模型在低VRAM上也能使用

在github上面也有介紹Python呼叫使用方式

有興趣的可以看看,這裡同樣略過

___________________________

 

三. whisper-webui

再來是讓所有人都能輕易使用的webui介面版本

這是aadnk在2022年10月於whisper的discussions中

發文說明製作了whisper的WebUI版本

支援使用VAD 加強英語以外的語言

 

而且最厲害的是還整合了yt-dlp套件

支援貼上youtube連結自動語音辨識

我測試時發現nicovideo也支援(不過載入的很慢)

 

Whisper WebUI with a VAD for more accurate non-English transcripts (Japanese)

帶有 VAD 的 Whisper WebUI 可獲取更準確的非英語成績單(日語)#397

https://github.com/openai/whisper/discussions/397

作者也有在Hugging Face中公開直接可以使用的版本

有兩種,原版whisper-webui與faster-whisper-webui

https://huggingface.co/spaces/aadnk/whisper-webui

https://huggingface.co/spaces/aadnk/faster-whisper-webui

 

因為huggingface免費版本是用CPU跑的

所以作者有限制影片長度

原版whisper僅能10分鐘(600s)

faster-whisper放寬至30分鐘(1800s)

若是在自己電腦上跑就能設置不限長度

啟動app.py時要加上[–input_audio_max_duration -1]

 

下圖是webui執行時的畫面

有沒有發現與stable-diffusion-webui風格很相似呢?

因為webui其實是python的公開套件gradio

很多AI模型都可以搭配gradio來製作出易於使用的版本

https://i.imgur.com/KaizWqr.png

作者也有製作Win10/11的whisper-webui安裝步驟

https://reurl.cc/DAL32E

___________________________

 

四. 安裝步驟說明

底下是我自己安裝webui時

紀錄的粗略步驟

推薦使用faster-whisper-webui

另外我只知道N卡的安裝方式…

 

1. CUDA Toolkit 12.2

CUDA Toolkit 12.2

Download Installer for Windows 10 x86_64

https://developer.nvidia.com/cuda-downloads

這是N卡的CUDA開發套件,不少模型都會需要用到這個

如果系統已經有安裝了,可以略過

2. git clone faster-whisper-webui & 建立python虛擬環境

要先安裝git版本控管工具

然後找個你喜好的位置安裝 faster-whisper-webui

用git相關工具或cmd命令提示字元都可以

git clone “https://huggingface.co/spaces/aadnk/faster-whisper-webui”

PS.

檢視程式後會發現whisper-webui與faster-whisper-webui都一致

主要差別在於requirements.txt需求套件不同

能在執行app.py時,使用[–whisper_implementation]來決定whisper實作方式

–whisper_implementation faster-whisper

另外也都有附上兩種版本的套件相依管理檔案

requirements-whisper.txt

requirements-fasterWhisper.txt

 

3. 建立python虛擬環境

先安裝Python 3.10.12

(或是系統已有安裝的直接使用)

python從3.4版本開始支援建立虛擬環境

好處是每個專案之間不會版本干擾

壞處是每個專案檔案都超大

這邊為whisper建立venv的虛擬環境

cd path\faster-whisper-webui\

python -m venv venv venv\Scripts\activate

執行activate後,才會進入虛擬環境,前面會加上venv名稱(如下)

(venv) path\faster-whisper-webui>

4. 安裝pytorch

在windows上主要有兩種安裝方式: Conda與pip

我習慣使用pip,這個安裝完python後就有

Conda除了python外還要再安裝Conda管理系統

如果是使用Conda,前一步驟就會在Conda中做掉

這邊僅說明pip方式,我選擇安裝CUDA 11.8

pip3 install torch torchvision torchaudio –index-url

https://download.pytorch.org/whl/cu118

5. 用pip 安裝fasterWhisper 需要的套件

pip install -r requirements.txt

 

6. 執行app.py

在cmd命令提示字元中 cd path\faster-whisper-webui\

set COMMANDLINE_ARGS=

–whisper_implementation faster-whisper –input_audio_max_duration -1

python app.py %COMMANDLINE_ARGS%

上面[COMMANDLINE_ARGS=]後面不能斷行,這邊因為太長了才斷行顯示

 

7. 自製修改版本

其實我自己也有從aadnk作者

那邊fork一份做了些修改

 

*首先我加入了webui.bat

這是參考stable-diffusion-webui的程式修改的

我只要執行webui.bat就能啟動app.py了

*Chinese自動繁體中文

whisper的一個缺點就是辨識的中文幾乎是簡體的

要使用prompt提示他要使用繁體中文

如果每次使用都要手動調整也是很煩人

我就加入了判斷,選擇Chinese時

自動將initial_prompt 加上 “繁體: ”

* 變更yt-dlp的youtube預設下載格式

原版本輸入youtube影片連結時

僅會下載聲音檔案【bestaudio】

我修改為【bestvideo[ext=mp4]+bestaudio[ext=m4a]】

這樣就會下載完整影片檔案

*再來是我加入了一些新arguments:

–vad_max_merge_size:

啟動時可以自動帶入自訂的Max Merge Size (s).

–language:

啟動時可以自動帶入自訂的語言

–save_downloaded_files:

原版本貼上的影片url,在辨識完畢後,會自動移除,

加上這個後會將影片移動至指定的輸出位置(–output_dir XXX)

–merge_subtitle_with_sources:

設定這個後,在影片語音辨識完成後,會將產生的字幕srt檔案

使用ffmpeg自動與影片檔案合併,並且移動至指定的輸出位置(–output_dir XXX)

設置後會取代save_downloaded_files功能

–autolaunch:

這個就是執行後,會自動在瀏覽器開啟[http://127.0.0.1:7860/]

avans06/whisper-webui

https://huggingface.co/spaces/avans06/whisper-webui

tts確實有不少

因為我僅有聽日文小說的需求

前陣子我有在huggingface搜尋後

找到RinneVoiceSet聲音模型

這個是使用COEIROINK-GPU這個軟體來發音的

不過因為只能說日文

用途非常有限呢 COEIROINK-GPU

https://coeiroink.com/download

RinneAi/RinneVoiceSet

https://huggingface.co/RinneAi/RinneVoiceSet

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

Title - Artist
0:00