最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

OpenAI的Whisper模型進行語音識別使用詳解

 更新時間:2023年02月09日 15:24:16   作者:deephub  
這篇文章主要介紹了OpenAI的Whisper模型進行語音識別使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

正文

語音識別是人工智能中的一個領域,它允許計算機理解人類語音并將其轉(zhuǎn)換為文本。該技術(shù)用于 Alexa 和各種聊天機器人應用程序等設備。而我們最常見的就是語音轉(zhuǎn)錄,語音轉(zhuǎn)錄可以語音轉(zhuǎn)換為文字記錄或字幕。

wav2vec2、Conformer 和 Hubert 等最先進模型的最新發(fā)展極大地推動了語音識別領域的發(fā)展。這些模型采用無需人工標記數(shù)據(jù)即可從原始音頻中學習的技術(shù),從而使它們能夠有效地使用未標記語音的大型數(shù)據(jù)集。它們還被擴展為使用多達 1,000,000 小時的訓練數(shù)據(jù),遠遠超過學術(shù)監(jiān)督數(shù)據(jù)集中使用的傳統(tǒng) 1,000 小時,但是以監(jiān)督方式跨多個數(shù)據(jù)集和領域預訓練的模型已被發(fā)現(xiàn)表現(xiàn)出更好的魯棒性和對持有數(shù)據(jù)集的泛化,所以執(zhí)行語音識別等任務仍然需要微調(diào),這限制了它們的全部潛力 。為了解決這個問題OpenAI 開發(fā)了 Whisper,一種利用弱監(jiān)督方法的模型。

本文將解釋用于訓練的數(shù)據(jù)集的種類以及模型的訓練方法,以及如何使用Whisper

Whisper 模型介紹

使用數(shù)據(jù)集:

Whisper模型是在68萬小時標記音頻數(shù)據(jù)的數(shù)據(jù)集上訓練的,其中包括11.7萬小時96種不同語言的演講和12.5萬小時從”任意語言“到英語的翻譯數(shù)據(jù)。該模型利用了互聯(lián)網(wǎng)生成的文本,這些文本是由其他自動語音識別系統(tǒng)(ASR)生成而不是人類創(chuàng)建的。該數(shù)據(jù)集還包括一個在VoxLingua107上訓練的語言檢測器,這是從YouTube視頻中提取的短語音片段的集合,并根據(jù)視頻標題和描述的語言進行標記,并帶有額外的步驟來去除誤報。

模型:

主要采用的結(jié)構(gòu)是編碼器-解碼器結(jié)構(gòu)。

重采樣:16000 Hz

特征提取方法:使用25毫秒的窗口和10毫秒的步幅計算80通道的log Mel譜圖表示。

特征歸一化:輸入在全局內(nèi)縮放到-1到1之間,并且在預訓練數(shù)據(jù)集上具有近似為零的平均值。

編碼器/解碼器:該模型的編碼器和解碼器采用Transformers。

編碼器的過程:

編碼器首先使用一個包含兩個卷積層(濾波器寬度為3)的詞干處理輸入表示,使用GELU激活函數(shù)。

第二個卷積層的步幅為 2。

然后將正弦位置嵌入添加到詞干的輸出中,然后應用編碼器 Transformer 塊。

Transformers使用預激活殘差塊,編碼器的輸出使用歸一化層進行歸一化。

模型框圖:

解碼的過程:

在解碼器中,使用了學習位置嵌入和綁定輸入輸出標記表示。

編碼器和解碼器具有相同的寬度和數(shù)量的Transformers塊。

訓練

為了改進模型的縮放屬性,它在不同的輸入大小上進行了訓練。

通過 FP16、動態(tài)損失縮放,并采用數(shù)據(jù)并行來訓練模型。

使用AdamW和梯度范數(shù)裁剪,在對前 2048 次更新進行預熱后,線性學習率衰減為零。

使用 256 個批大小,并訓練模型進行 220次更新,這相當于對數(shù)據(jù)集進行兩到三次前向傳遞。

由于模型只訓練了幾個輪次,過擬合不是一個重要問題,并且沒有使用數(shù)據(jù)增強或正則化技術(shù)。這反而可以依靠大型數(shù)據(jù)集內(nèi)的多樣性來促進泛化和魯棒性。

Whisper 在之前使用過的數(shù)據(jù)集上展示了良好的準確性,并且已經(jīng)針對其他最先進的模型進行了測試。

優(yōu)點:

  • Whisper 已經(jīng)在真實數(shù)據(jù)以及其他模型上使用的數(shù)據(jù)以及弱監(jiān)督下進行了訓練。
  • 模型的準確性針對人類聽眾進行了測試并評估其性能。
  • 它能夠檢測清音區(qū)域并應用 NLP 技術(shù)在轉(zhuǎn)錄本中正確進行標點符號的輸入。
  • 模型是可擴展的,允許從音頻信號中提取轉(zhuǎn)錄本,而無需將視頻分成塊或批次,從而降低了漏音的風險。
  • 模型在各種數(shù)據(jù)集上取得了更高的準確率。

Whisper在不同數(shù)據(jù)集上的對比結(jié)果,相比wav2vec取得了目前最低的詞錯誤率

模型沒有在timit數(shù)據(jù)集上進行測試,所以為了檢查它的單詞錯誤率,我們將在這里演示如何使用Whisper來自行驗證timit數(shù)據(jù)集,也就是說使用Whisper來搭建我們自己的語音識別應用。

使用Whisper 模型進行語音識別

TIMIT 閱讀語音語料庫是語音數(shù)據(jù)的集合,它專門用于聲學語音研究以及自動語音識別系統(tǒng)的開發(fā)和評估。它包括來自美國英語八種主要方言的 630 位演講者的錄音,每人朗讀十個語音豐富的句子。語料庫包括時間對齊的拼字、語音和單詞轉(zhuǎn)錄以及每個語音的 16 位、16kHz 語音波形文件。該語料庫由麻省理工學院 (MIT)、SRI International (SRI) 和德州儀器 (TI) 共同開發(fā)。TIMIT 語料庫轉(zhuǎn)錄已經(jīng)過手工驗證,并指定了測試和訓練子集,以平衡語音和方言覆蓋范圍。

安裝:

!pip install git+https://github.com/openai/whisper.git
 !pip install jiwer
 !pip install datasets==1.18.3

第一條命令將安裝whisper模型所需的所有依賴項。jiwer是用來下載文字錯誤率包的datasets是hugface提供的數(shù)據(jù)集包,可以下載timit數(shù)據(jù)集。

導入庫

importwhisper
 frompytubeimportYouTube
 fromglobimportglob
 importos
 importpandasaspd
 fromtqdm.notebookimporttqdm

加載timit數(shù)據(jù)集

fromdatasetsimportload_dataset, load_metric
 timit=load_dataset("timit_asr")

計算不同模型尺寸下的Word錯誤率

考慮到過濾英語數(shù)據(jù)和非英語數(shù)據(jù)的需求,我們這里選擇使用多語言模型,而不是專門為英語設計的模型。

但是TIMIT數(shù)據(jù)集是純英文的,所以我們要應用相同的語言檢測和識別過程。另外就是TIMIT數(shù)據(jù)集已經(jīng)分割好訓練和驗證集,我們可以直接使用。

要使用Whisper,我們就要先了解不同模型的的參數(shù),大小和速度。

加載模型

model=whisper.load_model('tiny')

tiny可以替換為上面提到的模型名稱。

定義語言檢測器的函數(shù)

deflan_detector(audio_file):
   print('reading the audio file')
   audio=whisper.load_audio(audio_file)
   audio=whisper.pad_or_trim(audio)
   mel=whisper.log_mel_spectrogram(audio).to(model.device)
   _, probs=model.detect_language(mel)
   ifmax(probs, key=probs.get) =='en':
     returnTrue
   returnFalse

轉(zhuǎn)換語音到文本的函數(shù)

defspeech2text(audio_file):
   text=model.transcribe(audio_file)
   returntext["text"]

在不同模型大小下運行上面的函數(shù),timit訓練和測試得到的單詞錯誤率如下:

從u2b上轉(zhuǎn)錄語音

與其他語音識別模型相比,Whisper 不僅能識別語音,還能解讀一個人語音中的標點語調(diào),并插入適當?shù)臉它c符號,我們下面使用u2b的視頻進行測試。

這里就需要一個包pytube,它可以輕松的幫助我們下載和提取音頻

defyoutube_audio(link):
     youtube_1=YouTube(link)
     videos=youtube_1.streams.filter(only_audio=True)
     name=str(link.split('=')[-1])
     out_file=videos[0].download(name)
     link=name.split('=')[-1]
     new_filename=link+".wav"
     print(new_filename)
     os.rename(out_file, new_filename)
     print(name)
     returnnew_filename,link

獲得wav文件后,我們就可以應用上面的函數(shù)從中提取文本。

總結(jié)

還有許多操作可以用Whisper完成,你可以根據(jù)本文的代碼自行嘗試。

以上就是OpenAI的Whisper模型進行語音識別使用詳解的詳細內(nèi)容,更多關(guān)于OpenAI Whisper語音識別的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論

唐山市| 宁国市| 乐陵市| 齐河县| 黑水县| 玛纳斯县| 涿州市| 准格尔旗| 马边| 娄底市| 西城区| 姚安县| 荣昌县| 饶阳县| 屏东市| 荔波县| 巴林左旗| 延津县| 尖扎县| 大连市| 垦利县| 建湖县| 灌云县| 五原县| 晋州市| 敦化市| 石渠县| 镇平县| 密云县| 西峡县| 宝清县| 博野县| 电白县| 朝阳市| 株洲县| 大渡口区| 雅江县| 沧源| 垫江县| 阳曲县| 青神县|