為什麼這篇中文語音辨識github鄉民發文收入到精華區:因為在中文語音辨識github這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者avans (阿緯)看板AI_Art標題[分享] openai_whisper / faster...
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
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.71.20.228 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/AI_Art/M.1689866228.A.CBA.html
因為我僅有聽日文小說的需求
前陣子我有在huggingface搜尋後
找到RinneVoiceSet聲音模型
這個是使用COEIROINK-GPU這個軟體來發音的
不過因為只能說日文
用途非常有限呢
COEIROINK-GPU
https://coeiroink.com/download
RinneAi/RinneVoiceSet
https://huggingface.co/RinneAi/RinneVoiceSet
※ 編輯: avans (111.71.20.228 臺灣), 07/21/2023 00:52:17
還有一個比較新的
支援多國語系的tts
雖然我沒用過
youtube上有不少介紹
也可參考看看
https://github.com/suno-ai/bark
https://huggingface.co/spaces/suno/bark
※ 編輯: avans (111.71.20.228 臺灣), 07/21/2023 01:06:24