自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

使用OpenAI的Whisper 模型進(jìn)行語音識別

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

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

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

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

Whisper 模型介紹

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

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

模型:

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

重采樣:16000 Hz

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

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

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

編碼器的過程:

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

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

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

Transformers使用預(yù)激活殘差塊,編碼器的輸出使用歸一化層進(jìn)行歸一化。

模型框圖:

圖片

解碼的過程:

在解碼器中,使用了學(xué)習(xí)位置嵌入和綁定輸入輸出標(biāo)記表示。

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

訓(xùn)練

為了改進(jìn)模型的縮放屬性,它在不同的輸入大小上進(jìn)行了訓(xùn)練。

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

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

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

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

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

優(yōu)點:

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

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

圖片

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

使用Whisper 模型進(jìn)行語音識別

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

安裝:

!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ù)集。

導(dǎo)入庫

import whisper
from pytube import YouTube
from glob import glob
import os
import pandas as pd
from tqdm.notebook import tqdm

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

from datasets import load_dataset, load_metric

timit = load_dataset("timit_asr")

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

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

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

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

圖片

加載模型

model = whisper.load_model('tiny')

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

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

def lan_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)
if max(probs, key=probs.get) == 'en':
return True
return False

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

def speech2text(audio_file):
text = model.transcribe(audio_file)
return text["text"]

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

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

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

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

def youtube_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)
return new_filename,link

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

總結(jié)

本文的代碼在這里

https://drive.google.com/file/d/1FejhGseX_S1Ig_Y5nIPn1OcHN8DLFGIO/view

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

責(zé)任編輯:華軒 來源: DeepHub IMBA
相關(guān)推薦

2023-11-09 09:00:00

OpenAI人工智能Whisper

2023-11-05 10:01:37

AI模型

2024-05-28 08:11:44

SpringTensorFlow訓(xùn)練

2023-03-07 13:32:33

谷歌模型

2022-10-08 08:36:02

UbuntuLinux語音識別

2023-06-16 08:00:00

語音助手GPTWhisper

2017-03-20 10:14:03

語音識別匹配算法模型

2012-07-25 13:23:32

ibmdw

2019-11-20 12:30:21

Python編程語言語音識別

2021-04-27 15:47:12

人工智能語音識別Transformer

2018-05-02 11:38:14

語音識別法院

2023-08-31 13:25:09

AI模型

2024-10-28 09:38:16

OpenAIWhisper人工智能

2024-12-13 15:53:58

VLM小型視覺語言模型LLM

2023-05-19 11:14:35

2025-04-09 11:01:19

2021-03-10 18:26:49

Tensorflow語音識別音頻處理

2011-01-18 11:52:25

Linux語音識別

2024-02-02 14:29:11

GPT-4模型App

2024-08-27 08:38:34

點贊
收藏

51CTO技術(shù)棧公眾號