1 whisper介紹
????????擁有ChatGPT語言模型的OpenAI公司,開源了 Whisper 自動語音識別系統(tǒng),OpenAI 強調 Whisper 的語音識別能力已達到人類水準。
????????Whisper是一個通用的語音識別模型,它使用了大量的多語言和多任務的監(jiān)督數(shù)據(jù)來訓練,能夠在英語語音識別上達到接近人類水平的魯棒性和準確性。Whisper還可以進行多語言語音識別、語音翻譯和語言識別等任務。Whisper的架構是一個簡單的端到端方法,采用了編碼器-解碼器的Transformer模型,將輸入的音頻轉換為對應的文本序列,并根據(jù)特殊的標記來指定不同的任務。
????????Whisper 是一個自動語音識別(ASR,Automatic Speech Recognition)系統(tǒng),OpenAI 通過從網絡上收集了 68 萬小時的多語言(98 種語言)和多任務(multitask)監(jiān)督數(shù)據(jù)對 Whisper 進行了訓練。OpenAI 認為使用這樣一個龐大而多樣的數(shù)據(jù)集,可以提高對口音、背景噪音和技術術語的識別能力。除了可以用于語音識別,Whisper 還能實現(xiàn)多種語言的轉錄,以及將這些語言翻譯成英語。OpenAI 開放模型和推理代碼,希望開發(fā)者可以將 Whisper 作為建立有用的應用程序和進一步研究語音處理技術的基礎。
??????? 代碼地址:代碼地址
2 whisper模型
2.1 使用數(shù)據(jù)集
Whisper模型是在68萬小時標記音頻數(shù)據(jù)的數(shù)據(jù)集上訓練的,其中包括11.7萬小時96種不同語言的演講和12.5萬小時從”任意語言“到英語的翻譯數(shù)據(jù)。該模型利用了互聯(lián)網生成的文本,這些文本是由其他自動語音識別系統(tǒng)(ASR)生成而不是人類創(chuàng)建的。該數(shù)據(jù)集還包括一個在VoxLingua107上訓練的語言檢測器,這是從YouTube視頻中提取的短語音片段的集合,并根據(jù)視頻標題和描述的語言進行標記,并帶有額外的步驟來去除誤報。
2.2 模型
主要采用的結構是編碼器-解碼器結構。
重采樣:16000 Hz
特征提取方法:使用25毫秒的窗口和10毫秒的步幅計算80通道的log Mel譜圖表示。
特征歸一化:輸入在全局內縮放到-1到1之間,并且在預訓練數(shù)據(jù)集上具有近似為零的平均值。
編碼器/解碼器:該模型的編碼器和解碼器采用Transformers。
- 編碼器的過程
編碼器首先使用一個包含兩個卷積層(濾波器寬度為3)的詞干處理輸入表示,使用GELU激活函數(shù)。
第二個卷積層的步幅為 2。
然后將正弦位置嵌入添加到詞干的輸出中,然后應用編碼器 Transformer 塊。
Transformers使用預激活殘差塊,編碼器的輸出使用歸一化層進行歸一化。
- 模型結構
- 解碼的過程
在解碼器中,使用了學習位置嵌入和綁定輸入輸出標記表示。
編碼器和解碼器具有相同的寬度和數(shù)量的Transformers塊。
2.3 訓練
輸入的音頻被分割成 30 秒的小段、轉換為 log-Mel 頻譜圖,然后傳遞到編碼器。解碼器經過訓練以預測相應的文字說明,并與特殊的標記進行混合,這些標記指導單一模型執(zhí)行諸如語言識別、短語級別的時間戳、多語言語音轉錄和語音翻譯等任務。
相比目前市面上的其他現(xiàn)有方法,它們通常使用較小的、更緊密配對的「音頻 - 文本」訓練數(shù)據(jù)集,或使用廣泛但無監(jiān)督的音頻預訓練集。因為 Whisper 是在一個大型和多樣化的數(shù)據(jù)集上訓練的,而沒有針對任何特定的數(shù)據(jù)集進行微調,雖然它沒有擊敗專攻 LibriSpeech 性能的模型(著名的語音識別基準測試),然而在許多不同的數(shù)據(jù)集上測量 Whisper 的 Zero-shot(不需要對新數(shù)據(jù)集重新訓練,就能得到很好的結果)性能時,研究人員發(fā)現(xiàn)它比那些模型要穩(wěn)健得多,犯的錯誤要少 50%。
為了改進模型的縮放屬性,它在不同的輸入大小上進行了訓練。
- 通過 FP16、動態(tài)損失縮放,并采用數(shù)據(jù)并行來訓練模型。
- 使用AdamW和梯度范數(shù)裁剪,在對前 2048 次更新進行預熱后,線性學習率衰減為零。
- 使用 256 個批大小,并訓練模型進行 220次更新,這相當于對數(shù)據(jù)集進行兩到三次前向傳遞。
由于模型只訓練了幾個輪次,過擬合不是一個重要問題,并且沒有使用數(shù)據(jù)增強或正則化技術。這反而可以依靠大型數(shù)據(jù)集內的多樣性來促進泛化和魯棒性。
Whisper 在之前使用過的數(shù)據(jù)集上展示了良好的準確性,并且已經針對其他最先進的模型進行了測試。
2.4 優(yōu)點
-
Whisper 已經在真實數(shù)據(jù)以及其他模型上使用的數(shù)據(jù)以及弱監(jiān)督下進行了訓練。
-
模型的準確性針對人類聽眾進行了測試并評估其性能。
-
它能夠檢測清音區(qū)域并應用 NLP 技術在轉錄本中正確進行標點符號的輸入。
-
模型是可擴展的,允許從音頻信號中提取轉錄本,而無需將視頻分成塊或批次,從而降低了漏音的風險。
-
模型在各種數(shù)據(jù)集上取得了更高的準確率。
Whisper在不同數(shù)據(jù)集上的對比結果,相比wav2vec取得了目前最低的詞錯誤率
模型沒有在timit數(shù)據(jù)集上進行測試,所以為了檢查它的單詞錯誤率,我們將在這里演示如何使用Whisper來自行驗證timit數(shù)據(jù)集,也就是說使用Whisper來搭建我們自己的語音識別應用。
2.5 whisper的多種尺寸模型
whisper有五種模型尺寸,提供速度和準確性的平衡,其中English-only模型提供了四種選擇。下面是可用模型的名稱、大致內存需求和相對速度。
模型的官方下載地址:
"tiny.en": "https://openaipublic.azureedge.net/main/whisper/models/d3dd57d32accea0b295c96e26691aa14d8822fac7d9d27d5dc00b4ca2826dd03/tiny.en.pt",
"tiny": "https://openaipublic.azureedge.net/main/whisper/models/65147644a518d12f04e32d6f3b26facc3f8dd46e5390956a9424a650c0ce22b9/tiny.pt",
"base.en": "https://openaipublic.azureedge.net/main/whisper/models/25a8566e1d0c1e2231d1c762132cd20e0f96a85d16145c3a00adf5d1ac670ead/base.en.pt",
"base": "https://openaipublic.azureedge.net/main/whisper/models/ed3a0b6b1c0edf879ad9b11b1af5a0e6ab5db9205f891f668f8b0e6c6326e34e/base.pt",
"small.en": "https://openaipublic.azureedge.net/main/whisper/models/f953ad0fd29cacd07d5a9eda5624af0f6bcf2258be67c92b79389873d91e0872/small.en.pt",
"small": "https://openaipublic.azureedge.net/main/whisper/models/9ecf779972d90ba49c06d968637d720dd632c55bbf19d441fb42bf17a411e794/small.pt",
"medium.en": "https://openaipublic.azureedge.net/main/whisper/models/d7440d1dc186f76616474e0ff0b3b6b879abc9d1a4926b7adfa41db2d497ab4f/medium.en.pt",
"medium": "https://openaipublic.azureedge.net/main/whisper/models/345ae4da62f9b3d59415adc60127b97c714f32e89e936602e85993674d08dcb1/medium.pt",
"large-v1": "https://openaipublic.azureedge.net/main/whisper/models/e4b87e7e0bf463eb8e6956e646f1e277e901512310def2c24bf0e11bd3c28e9a/large-v1.pt",
"large-v2": "https://openaipublic.azureedge.net/main/whisper/models/81f7c96c852ee8fc832187b0132e569d6c3065a3252ed18e56effd0b6a73e524/large-v2.pt",
"large": "https://openaipublic.azureedge.net/main/whisper/models/81f7c96c852ee8fc832187b0132e569d6c3065a3252ed18e56effd0b6a73e524/large-v2.pt",
3 whisper環(huán)境構建及運行
3.1 conda環(huán)境安裝
????????參見:annoconda安裝
3.2 whisper環(huán)境構建
conda create -n whisper python==3.9
conda activate whisper
pip install openai-whisper
conda install ffmpeg
pip install setuptools-rust
3.3 whisper命令行使用
whisper /opt/000001.wav --model base
輸出內容如下:
[00:00.000 --> 00:02.560] 人工智能識別系統(tǒng)。
執(zhí)行命令時,會自動進行模型下載,自動下載模型存儲的路徑如下:
~/.cache/whisper
也可以通過命令行制定本地模型運行:文章來源:http://www.zghlxwxcb.cn/news/detail-485233.html
Whisper /opt/000001.wav --model base --model_dir /opt/models --language Chinese
?支持的文件格式:m4a、mp3、mp4、mpeg、mpga、wav、webm文章來源地址http://www.zghlxwxcb.cn/news/detail-485233.html
3.4 whisper在代碼中使用
import whisper
model = whisper.load_model("base")
result = model.transcribe("/opt/000001.wav")
print(result["text"])
到了這里,關于OpenAI的人工智能語音識別模型Whisper詳解及使用的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!