作者:金立彥
介紹
Whisper 作為一款卓越的自動語音識別(ASR)系統,依托海量且多元的監督數據完成訓練,其數據規模高達 680,000 小時,涵蓋多種語言及豐富多樣的任務類型,廣泛采擷自網絡資源,以此鑄就了堅實的性能根基。
從技術架構層面剖析,Whisper 構建于先進的 Transformer 框架之上,采用經典的編碼器 - 解碼器模型設計,也就是廣為人知的序列到序列模型范式。運作流程上,先是由特征提取器對原始音頻輸入展開精細處理,將其轉換為對數梅爾頻譜圖,以此完成音頻數據的初次 “編碼”,提煉關鍵特征信息。緊接著,Transformer 編碼器發揮強大的編碼效能,深度解析頻譜圖蘊含的信息,進而凝練形成一系列編碼器隱藏狀態,為后續文本生成筑牢信息基石。最終環節,解碼器粉墨登場,以前續已生成的文本標記以及編碼器隱藏狀態作為關鍵參照條件,遵循自回歸原理,按順序逐次預測文本標記,精準高效地實現從音頻到文本的轉換輸出,展現出高水準的語音識別能力。
在本次教程里,我們將聚焦于如何借助 OpenVINO 高效運行 Whisper,解鎖其強大的語音識別功能。為了快速上手、搭建應用,我們選用 Hugging Face Transformers 庫中經過精心預訓練的 Whisper 模型,充分利用其豐富且優質的參數設定與知識沉淀,作為項目開展的有力基石。緊接著,借助 Hugging Face Optimum Intel 庫,能夠輕松達成模型格式的無縫轉換,將原本的模型精準轉化為 OpenVINO IR 格式,這種格式專為 OpenVINO 生態量身定制,在推理速度、資源利用效率等諸多方面優勢盡顯,為后續流暢運行筑牢根基。
尤為值得一提的是,為了全方位簡化用戶在操作過程中的使用體驗,我們引入便捷且高效的 OpenVINO Generate API,依托這一得力工具,去逐一落實 Whisper 自動語音識別的各場景應用,無論是實時語音轉錄,還是音頻文件批量處理等,都能游刃有余,助力開發者以更低門檻、更高效率,駕馭 Whisper 與 OpenVINO 協同帶來的卓越語音識別能力。
準備工作
依賴庫安裝
鑒于教程依托 OpenVINO - GenAI API 來開展各項驗證,相應依賴環境的妥善搭建就成了至關重要的前置環節。為確保整個運行體系的穩定性、獨立性與純凈性,強烈推薦借助 Python 的虛擬環境來執行安裝操作。Python 虛擬環境能夠有效隔離不同項目所需的依賴包及配置信息,避免因版本沖突、庫依賴混淆等常見問題干擾項目推進,讓 OpenVINO - GenAI API 所需的各類依賴組件得以精準、有序且互不干擾地完成部署,為后續流暢、高效運用該 API 筑牢堅實根基,從而保障整個語音識別功能開發與實踐過程順遂無憂。
pip install -q "torch>=2.3" "torchvision>=0.18.1" --extra-index-url https://download.pytorch.org/whl/cpu pip install -q "transformers>=4.45" "git+https://github.com/huggingface/optimum-intel.git" --extra-index-url https://download.pytorch.org/whl/cpu pip install -q -U "openvino>=2024.5.0" "openvino-tokenizers>=2024.5.0" "openvino-genai>=2024.5.0" --extra-index-url https://download.pytorch.org/whl/cpu pip install -q datasets "gradio>=4.0" "soundfile>=0.12" "librosa" "python-ffmpeg<=1.0.16" pip install -q "nncf>=2.14.0" "jiwer" "typing_extensions>=4.9" pip install -q "numpy<2.0"
在安裝 openvino-genai 時需特別留意,務必添加 “--extra-index-urlhttps://download.pytorch.org/whl/cpu” 這一參數,若不添加,后續調用 ov_genai.WhisperPipeline 方法時會出現找不到該方法的問題。此外,若使用的是 Windows 平臺,還需關注 numpy 版本情況。鑒于可能存在的版本兼容性問題,建議將 numpy 版本降至 2.0 以下;要是遇到因版本不兼容而彈出提示的狀況,可直接注釋掉源文件,以此確保 openvino-genai 能夠順利安裝與運行。
模型下載
模型下載具備兩種可選方式。其一,借助 Hugging Face Optimum Intel 平臺執行下載操作。倘若在此過程中遭遇下載受阻的情形,可靈活通過配置國內鏡像站來完成下載路徑的轉換,順利達成下載任務。不過需要注意的是,鑒于相關模型的數據體量頗為龐大,在模型轉換階段對內存容量有著較高要求,一旦設備內存過小,極有可能致使系統運行異常,甚至出現崩潰狀況。
其二,可選擇直接從 Hugging Face 下載由 intel 預先轉換好的模型,這種方式更為便捷直接,免去了自行轉換可能面臨的內存等諸多困擾,可按需擇優選用。
以下為目前所有支持的模型清單,供參考使用。
model_ids = { "Multilingual models": [ "openai/whisper-large-v3-turbo", "openai/whisper-large-v3", "openai/whisper-large-v2", "openai/whisper-large", "openai/whisper-medium", "openai/whisper-small", "openai/whisper-base", "openai/whisper-tiny", ], "English-only models": [ "distil-whisper/distil-large-v2", "distil-whisper/distil-large-v3", "distil-whisper/distil-medium.en", "distil-whisper/distil-small.en", "openai/whisper-medium.en", "openai/whisper-small.en", "openai/whisper-base.en", "openai/whisper-tiny.en", ],}
Hugging Face Optimum Intel
若計劃通過 Hugging Face Optimum Intel 途徑來獲取所需內容,有兩種便捷方式可供選擇。
其一,可前往官方代碼倉庫
https://github.com/huggingface/optimum-intel.git
手動進行下載操作,按照頁面指引與常規代碼拉取流程,便能順利將相關資源保存至本地。其二,更為高效的方式則是借助 pip 工具,在命令行輸入 “pip install optimum-intel”,系統便會自動連接網絡資源,開啟下載與安裝進程,輕松將 optimum-intel 模塊部署到位。
然而,在實際操作過程中,可能會遇到因網絡限制、服務器擁堵等因素導致的下載不暢甚至失敗的狀況。此時,巧妙配置國內鏡像站就能有效破解難題,確保下載順利推進。具體而言,配置國內鏡像站后,下載命令如下(示例以常用的國內知名鏡像站為例,實際可按需靈活選用適配鏡像):在命令行輸入 “pip install -i [鏡像站地址] optimum-intel”,比如使用清華鏡像站時,命令便是 “pip install -i https://pypi.tuna.tsinghua.edu.cn/simpleoptimum-intel”,以此借力國內優質鏡像資源,快速、穩定地完成下載任務。
optimum-cli export openvino --model [模型] --library transformers --task automatic-speech-recognition-with-past --framework pt [保存路徑]
如:
optimum-cli export openvino --model openai/whisper-large-v3-turbo --library transformers --task automatic-speech-recognition-with-past --framework pt models/whisper-large-v3-turbo
Hugging FaceAPI下載
在模型應用場景中,若設備性能與存儲條件理想,達到轉換要求,那我們可自行將模型轉換為 OpenVINO 格式,轉換完成后便能順暢投入使用,盡享 OpenVINO 帶來的高效推理優勢。然而,現實情況復雜多變,部分設備受限于硬件規格,諸如內存容量捉襟見肘、處理器性能差強人意,難以滿足模型轉換所需條件。但這并不意味著與 OpenVINO 格式模型的便捷體驗失之交臂,借助 Hugging Face 的 API,我們得以另辟蹊徑。只需簡單操作,就能直接從 Intel 的資源庫中獲取已完美轉換好的 OpenVINO 格式模型,跳過繁瑣復雜的轉換流程,即便設備性能欠佳,也能初步體驗其魅力,雖說推理速度或許稍慢一些,可也為更多設備、更多使用者推開了一扇通往高效模型應用的大門。
安裝Hugging Faceapi
pip install huggingface_hub
下載模型
import huggingface_hub as hf_hub # 模型id model_id = "Intel/whisper-large-v2-onnx-int4-inc" # 模型保存的位置 model_path = "whisper-large-v2-onnx-int4-inc" hf_hub.snapshot_download(model_id, local_dir=model_path)
具體所支持模型可以查看:
https://huggingface.co/Intel
設置國內鏡像
如果無法下載,可以設置鏡像下載為https://hf-mirror.com,只需要設置環境變量即可。
export HF_ENDPOINT=https://hf-mirror.comCopy
Windows Powershell
$env:HF_ENDPOINT = "https://hf-mirror.com"
推理
mport librosa # 推理設備,可以是CPU,GPU,NPU device = “” en_raw_speech, samplerate = librosa.load(音頻文件, sr=16000) import openvino_genai ov_pipe = openvino_genai.WhisperPipeline(str(model_path), device=device.value) start = time.time() genai_result = ov_pipe.generate(en_raw_speech) print('generate:%.2f seconds' % (time.time() - start)) # 輸出推理時間 print(f"result:{genai_result}")
總結
通過本文,您將學習如何利用OpenVINO框架結合Intel的CPU和GPU硬件,快速高效地實現OpenAI Whisper模型的語音識別。OpenVINO作為一個強大的深度學習推理優化工具,可以顯著提升模型推理的速度和性能,尤其是在Intel的硬件平臺上。在本教程中,我們將詳細介紹如何配置OpenVINO環境,如何將OpenAI Whisper模型轉換為OpenVINO支持的格式,以及如何在Intel的CPU和GPU上運行該模型進行語音識別。
未來,借助OpenVINO框架,您將能夠輕松實現更多語音識別相關的應用案例,例如多語種語音轉文本、語音命令識別以及智能助手等。OpenVINO的跨平臺能力和對多種硬件的支持,使其成為AI開發者進行高效推理加速的理想選擇。
-
語音識別
+關注
關注
38文章
1742瀏覽量
112787 -
ASR
+關注
關注
2文章
43瀏覽量
18765 -
Whisper
+關注
關注
0文章
3瀏覽量
5004
原文標題:開發者實戰|用英特爾CPU及GPU運行OpenAI-whisper模型語音識別
文章出處:【微信號:英特爾物聯網,微信公眾號:英特爾物聯網】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論