文章目錄
前言
一、whisper是什么?
二、使用步驟
1.安裝
2.python調用
3.識別效果評估
4.一點封裝
5.參考鏈接
總結
前言
隨著AI大模型的不斷發展,語音識別等周邊內容也再次引發關注,通過語音轉文字再與大模型交互,從而實現語音與大模型交互。
今天我們介紹下語音識別領域的頂級選手whisper。
一、whisper是什么?
whisper是openai開源的語音識別模型,也是使用了Transformer架構。
openai宣稱whisper的語音識別能力已經到了人類的水平。
接下來我們參考Github結合其他技術博客內容,實操下whisper的使用。
二、使用步驟
1.安裝
1)pip安裝whisper
pip install -U openai-whisper
2)安裝ffmpeg
下載地址:ffmpeg下載地址https://github.com/BtbN/FFmpeg-Builds/releases
選擇對應操作系統的安裝包即可
Linux系統也可以直接命令方式安裝。
對于Windows系統,下載到本地后解壓縮即可,但是需要設置環境變量,路徑bin(就是在這個路徑下有ffmpeg.exe)
特意說明:whisper內部其實調用了ffmpeg,使用的就是cmd形式,應該是將音頻文件轉為流式以及按時間段分成小段音頻(最終識別結果就是按時間段分開的)
2.python調用
import whispermodel = whisper.load_model("base")
result = model.transcribe("audio.mp3")
print(result["text"])
第一次運行的時候,首先需要下載模型文件,base屬于比較小尺寸的模型,還有small、large等。
另外如果可能報錯,可以嘗試重啟下開發工具再試,可能就好了(我就遇到這種問題,可能沒有重啟開發工具,找不到ffmpeg)
3.識別效果評估
我使用了一個11分鐘的會議錄音文件測試。CPU環境。
使用base模型,用時約2分鐘,質量還行
使用small模型,用時約4分鐘,質量比base模型的好一些,但是有些反而不如base模型的。
整體上,還行吧。
4.一點封裝
由于不同大小的模型識別速度上還是差不少,因此還要結合實際情況選擇使用哪個模型,基于這個基礎對調用做了一點封裝
import whisper
from datetime import datetime# 模型根路徑
model_root="E:\Models\whisper"class whisper_utils:# model_name="base"# model_name="small"def __init__(self,model_name="base"):self.model = whisper.load_model(name=model_name,download_root=model_root)def audio_to_txt(self,audio_file: str):now = datetime.now().strftime("%Y-%m-%d %H:%M:%S")print(f"{now} 開始識別…")result = self.model.transcribe(audio_file)now = datetime.now().strftime("%Y-%m-%d %H:%M:%S")print(f"{now} 識別完成")return result
這里我把模型路徑自己設置了下。
和多數模型文件一樣,默認情況下,whisper模型也會下載到C盤Users下當前用戶文件夾的.cache下,很容易導致C盤塞滿。?
5.參考鏈接
openai/whisper: Robust Speech Recognition via Large-Scale Weak Supervision (github.com)https://github.com/openai/whisper
總結
本篇主要介紹了whisper的安裝、調用、識別效果評估以及一點調用封裝。希望可以幫助正好有需要的小伙伴。