如何在矩池云上安裝語音識別模型 Whisper
Whisper 是 OpenAI 近期開源的一個語音識別的模型,研究人員基于 680,000 小時的標記音頻數(shù)據(jù)進行訓練,它同時也是一個多任務模型,可以進行多語言語音識別以及語音翻譯任務,可以將語音音頻轉錄為所講語言的文本,以及翻譯成英語文本。
查看論文:https://cdn.openai.com/papers/whisper.pdf
開源代碼:https://github.com/openai/whisper
Whisper 的訓練數(shù)據(jù)中65%為英語音頻和相匹配的轉錄文本,大約18%為非英語音頻和英語轉錄文本,17% 為非英語音頻和相應語言的轉錄文本。非英語的數(shù)據(jù)中包含了98種不同的語言,而某一特定語言中的性能與所采用這一語言的訓練的數(shù)據(jù)量直接相關,如在英語語音的識別中,模型已接近人類水平的魯棒性和準確性。
矩池云安裝 Whisper 過程
環(huán)境配置&租用機器
在 Whisper 的 Setup 中,我們可以看到所需要的都是Python 3.9.9
和PyTorch1.10.1
,同時也兼容更新的版本。
打開矩池云-主機市場,在此我們選中 K80 進行嘗試,根據(jù) Setup 可以選擇Pytorch 1.12
系統(tǒng)鏡像,點擊下單。
運行后,點擊 JupyterLab,進而“點擊打開”。
下載代碼&模型
進入頁面后,點擊 Terminal
打開 Terminal 后,輸入以下代碼
pip install git+https://github.com/openai/whisper.git
如下
安裝成功后,頁面提示 successfully installed…
如果系統(tǒng)中沒有安裝過 ffmpeg,還需輸入以下內容進行安裝
sudo apt update && sudo apt install ffmpeg
安裝過程中會提示 是否繼續(xù),輸入 y ,回車即可
安裝完成后,狀態(tài)如下
使用 Whisper 進行轉錄
準備文件
方法1: 通過矩池云網(wǎng)盤客戶端上傳文件
打開網(wǎng)盤客戶端,可以點擊上傳,選擇文件,或者直接將文件拖拽到客戶端界面。
方法2:通過 JupyterLab 上傳文件
在頁面上點擊,進入到/mnt,可以直接將音頻文件在此進行上傳。(此處我們自建了一個文件夾,大家可以根據(jù)需要來進行操作)
進行轉錄/翻譯
Whisper 在默認條件下,輸入音頻是進行轉錄的
我們以轉錄為例子,在左側文件夾,復制文件路徑,
輸入 whisper 路徑如下
whisper mnt/int/QA2.wav
在不對其他項目進行設定的情況下,系統(tǒng)會自動檢測語言,進而進行轉錄,
以吳恩達 Andrew Ng 和 AI 科學家Christine Payne 的一次訪談 的音頻轉錄為例,系統(tǒng)將自動生成時間軸和文字內容,如下。
同時,在默認文件夾還會生成 srt txt vtt三種格式的文件,以方便使用者在不同情境下調用,指定文件夾也可以通過指令 --output_dir 進行指定。
針對于多個文件,處理方式為直接將多個文件路徑放置于 whisper 之后,即可逐個進行處理。
參數(shù)解析
Whisper 指定運行參數(shù)方式為:whisper 音頻路徑 --具體任務。
在 whisper 中,更多可運行參數(shù)如下:
參數(shù)名 | 描述 | 默認值 |
---|---|---|
[–model {tiny.en,tiny,base.en,base,small.en,small,medium.en,medium,large}] | –model 模型類型 從小到大的不同模型,分別為tiny.en,tiny,base.en,base,small.en,small,medium.en,medium,large | |
[–model_dir MODEL_DIR] | 存儲模型文件的路徑 | ~/.cache/whisper |
[–device DEVICE] | 使用Pytorch的設備(CPU or GPU) | CUDA |
[–output_dir OUTPUT_DIR] | – output_dir 保存輸出的路徑 | None |
[–verbose VERBOSE] | 是否打印過程和debug信息 | True |
[–task {transcribe,translate}] | [–task {transcribe,translate}] --task 任務:是否執(zhí)行 X->X 語音識別 (‘transcribe’) 或 X->英文翻譯 (‘translate’) | transcribe |
[–language {af,am,ar,as,az,ba,be,bg,bn,bo,br,bs,ca,cs,cy,da,de,el,en,es,et,eu,fa,fi,fo,fr,gl,gu,ha,haw,hi,hr,ht,hu,hy,id,is,it,iw,ja,jw,ka,kk,km,kn,ko,la,lb,ln,lo,lt,lv,mg,mi,mk,ml,mn,mr,ms,mt,my,ne,nl,nn,no,oc,pa,pl,ps,pt,ro,ru,sa,sd,si,sk,sl,sn,so,sq,sr,su,sv,sw,ta,te,tg,th,tk,tl,tr,tt,uk,ur,uz,vi,yi,yo,zh,Afrikaans,Albanian,Amharic,Arabic,Armenian,Assamese,Azerbaijani,Bashkir,Basque,Belarusian,Bengali,Bosnian,Breton,Bulgarian,Burmese,Castilian,Catalan,Chinese,Croatian,Czech,Danish,Dutch,English,Estonian,Faroese,Finnish,Flemish,French,Galician,Georgian,German,Greek,Gujarati,Haitian,Haitian Creole,Hausa,Hawaiian,Hebrew,Hindi,Hungarian,Icelandic,Indonesian,Italian,Japanese,Javanese,Kannada,Kazakh,Khmer,Korean,Lao,Latin,Latvian,Letzeburgesch,Lingala,Lithuanian,Luxembourgish,Macedonian,Malagasy,Malay,Malayalam,Maltese,Maori,Marathi,Moldavian,Moldovan,Mongolian,Myanmar,Nepali,Norwegian,Nynorsk,Occitan,Panjabi,Pashto,Persian,Polish,Portuguese,Punjabi,Pushto,Romanian,Russian,Sanskrit,Serbian,Shona,Sindhi,Sinhala,Sinhalese,Slovak,Slovenian,Somali,Spanish,Sundanese,Swahili,Swedish,Tagalog,Tajik,Tamil,Tatar,Telugu,Thai,Tibetan,Turkish,Turkmen,Ukrainian,Urdu,Uzbek,Valencian,Vietnamese,Welsh,Yiddish,Yoruba}]
|
–language 語言:原音頻中使用的語言 | |
[–temperature TEMPERATURE] | –temperature 溫度參數(shù):文章使用的是基于溫度系數(shù)的采樣,這個參數(shù)就是采樣的溫度系數(shù) | |
[–best_of BEST_OF] | 在溫度非0時的抽樣使用的候選詞數(shù) | 5 |
[–beam_size BEAM_SIZE] | beam搜索中的beam數(shù)據(jù)的數(shù)目,僅在溫度為0時可用 | 5 |
[–patience PATIENCE] | beam解碼是使用的可選耐性系數(shù) optional patience value to use in beam decoding, as in https://arxiv.org/abs/2204.05424, the default (1.0) is equivalent to conventional beam search (default: None) |
None |
[–length_penalty LENGTH_PENALTY] | – length_penalty 懲罰系數(shù):用于正則化的 optional token length penalty coefficient (alpha) as in https://arxiv.org/abs/1609.08144, uses simple length normalization by default (default: None) 可選的懲罰系數(shù) α \alpha α |
None |
[–suppress_tokens SUPPRESS_TOKENS] | 采樣期間要抑制的token ID的逗號分隔列表;“-1”時將抑制大多數(shù)特殊字符(常用標點符號除外) | -1 |
[–initial_prompt INITIAL_PROMPT] | 可選文本,作為第一個窗口的提示。 | None |
[–condition_on_previous_text CONDITION_ON_PREVIOUS_TEXT] | –condition_on_previous_text 先前文本使用狀況:如果為 True,則提供模型的先前輸出作為下一個窗口的提示; 禁用可能會使文本跨窗口不一致,但模型變得不太容易陷入故障 | |
[–fp16 FP16] | 在fp16中進行推理 | True |
[–temperature_increment_on_fallback TEMPERATURE_INCREMENT_ON_FALLBACK] | –temperature_increment_on_fallback 回退溫度系數(shù):當解碼未能滿足以下任一閾值時的回退增加的溫度 | 0.2 |
[–compression_ratio_threshold COMPRESSION_RATIO_THRESHOLD] | compression_ratio_threshold 壓縮率閾值:如果gzip壓縮比高于這個值,則認為解碼失敗 | 2.4 |
[–logprob_threshold LOGPROB_THRESHOLD] | 如果平均對數(shù)概率低于此值,則將解碼視為失敗 | -1.0 |
[–no_speech_threshold NO_SPEECH_THRESHOLD] | –no_speech_threshold 靜音閾值:如果 <|nospeech|> 標記的概率高于此值,并且解碼由于“l(fā)ogprob_threshold”而失敗,則將該段視為靜音 | 0.6 |
[–threads THREADS] | 使用Pytorch CPU做推理時,使用的CPU線程數(shù) | 0 |
保存環(huán)境,下次直接調用鏡像
如果使用比較順利,希望下次可以直接啟動已經(jīng)安裝好的 Whisper 的鏡像,可以在此處“保存到個人環(huán)境”,如果是團隊共享,則可以“保存到團隊環(huán)境”
如果已經(jīng)矩池云微信公眾號上綁定過賬戶,則在手機上同時會收到保存環(huán)境成功的提醒。
保存環(huán)境后,下次使用該環(huán)境,可以直接在“我的環(huán)境”中迅速打開,無需再重復進行上一次的設置
優(yōu)勢和局限性
我們針對一段在 CVPR 2022 會議上一段技術音頻同時使用 Youtube 生成的字幕與 Whisper 生成的字幕進行了比對。
句子完整性更好
Whisper 能按照speaker語氣停頓斷句,斷句后有的甚至影響了精準性 vs 不破壞句子完整性,保持原話輪、原語義群;
精準度更高
Whisper 在精準度上確實比較高,比如如下這個例子。
這種精準度,同時體現(xiàn)在弱語氣/低語調的插入語/狀語的處理結果更優(yōu),如下。
在數(shù)字方面,精準度似乎也更勝一籌。
更重要的是,我們發(fā)現(xiàn)一些專業(yè)術語的轉錄方面,Whisper 也呈現(xiàn)出更精準的狀態(tài)。
當然,以上并具有統(tǒng)計學意義,只是我們在做嘗試的時候發(fā)現(xiàn)的一些 Whisper 優(yōu)秀之處。
局限性
當然,Whisper 也有其局限性,我們也匯集了一些如下情形。
1、目前 Whisper 模型只能對語音識別后,轉換為對應語言的文本,或將其翻譯為英語,則意味著在翻譯這一層面,最終無法實現(xiàn)由英語轉換為其他語言,在這一方面,其他模型在多語言方面可能去的了更多的進展;文章來源:http://www.zghlxwxcb.cn/news/detail-507556.html
2、在實時性方面,Whisper 模型本身不支持即使轉錄的功能,但是官方認為其速度和規(guī)??梢灾С謱崟r轉譯,但仍需在此基礎上進行二次開發(fā);
3、如輸入的音頻中為多語言混合,Whisper 對于這種情景也暫無解決方案;
4、此外,對于環(huán)境音比較嘈雜的情況(比如有噪音,或者有背景音樂),如不設定具體的 temperature ,有一定可能轉錄結果會有所不同,所以如有這種情況可以進行設置,關于 Temperature 的一些信息可以參考https://algowriting.medium.com/gpt-3-temperature-setting-101-41200ff0d0be。文章來源地址http://www.zghlxwxcb.cn/news/detail-507556.html
到了這里,關于如何在矩池云上安裝語音識別模型 Whisper的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!