[爆卦]中文語音辨識github是什麼?優點缺點精華區懶人包

為什麼這篇中文語音辨識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
v86861062: 推推 07/20 23:37
Vulpix: 看起來很棒,之後來用~ 07/21 00:32
Vulpix: 另外想問一下關於tts有沒有類似的,嗯,可以自己訓練模型 07/21 00:38
Vulpix: 並拿來用的專案?類似的東西網路上好像很多,但看不懂。 07/21 00:39
tts確實有不少
因為我僅有聽日文小說的需求
前陣子我有在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
Vulpix: bark聽起來好可愛(重點誤)可是好像都沒看到自己訓練的。 07/21 14:22
Vulpix: 因為也不想用其他人的聲音,想歌聲或說話都用自己的聲線。 07/21 14:23
andersonhaha: 推 感謝分享 07/26 06:09

你可能也想看看

搜尋相關網站