日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
如何用Wav2Vec2.0將語(yǔ)音轉(zhuǎn)換成文本

我之前解釋了如何借助谷歌語(yǔ)音識(shí)別API,使用Speech Recognition庫(kù)將語(yǔ)音轉(zhuǎn)換成文本。本文介紹如何使用Facebook Wav2Vec 2.0模型將語(yǔ)音轉(zhuǎn)換成文本。

創(chuàng)新互聯(lián)建站于2013年創(chuàng)立,是專(zhuān)業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元西湖做網(wǎng)站,已為上家服務(wù),為西湖各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108

Facebook最近引入并開(kāi)源了新框架:Wav2Vec 2.0,該框架用于自我監(jiān)督學(xué)習(xí)來(lái)自原始音頻數(shù)據(jù)的表示形式。Facebook研究人員聲稱(chēng),該框架使用僅10分鐘長(zhǎng)的轉(zhuǎn)錄語(yǔ)音數(shù)據(jù),即可支持自動(dòng)語(yǔ)音識(shí)別模型。

眾所周知,Transformer在自然語(yǔ)言處理中扮演著重要角色。Hugging Face Transformer的最新版本是4.30,它隨帶Wav2Vec 2.0。這是Transformer包含的第一個(gè)自動(dòng)語(yǔ)音識(shí)別語(yǔ)音模型。

模型架構(gòu)不在本文的討論范圍之內(nèi)。有關(guān)Wav2Vec模型架構(gòu)的詳細(xì)信息,請(qǐng)參閱此處。

不妨看看如何使用Hugging Face Transformer將音頻文件轉(zhuǎn)換成文本,附有幾行簡(jiǎn)單的代碼。

安裝Transformer庫(kù)

 
 
 
 
  1. # Installing Transformer 
  2. !pip install -q transformers 

導(dǎo)入必要的庫(kù)

 
 
 
 
  1. # Import necessary library 
  2.  
  3. # For managing audio file 
  4. import librosa 
  5.  
  6. #Importing Pytorch 
  7. import torch 
  8.  
  9. #Importing Wav2Vec 
  10. from transformers import Wav2Vec2ForCTC, Wav2Vec2Tokenizer 

Wav2Vec2是一種語(yǔ)音模型,接受與語(yǔ)音信號(hào)的原始波形相對(duì)應(yīng)的浮點(diǎn)數(shù)組。 Wav2Vec2模型使用連接時(shí)序分類(lèi)(CTC)加以訓(xùn)練,因此須使用Wav2Vec2Tokenizer對(duì)模型輸出進(jìn)行解碼(參閱:https://huggingface.co/transformers/model_doc/wav2vec2.html)。

讀取音頻文件

在這個(gè)例子中,我使用了電影《颶風(fēng)營(yíng)救》中主人公的對(duì)話音頻片段“我會(huì)尋找你,我會(huì)找到你,我會(huì)殺了你”。

請(qǐng)注意,Wav2Vec模型已在16 kHz頻率上進(jìn)行了預(yù)訓(xùn)練,因此我們確保將原始音頻文件也重新采樣為16 kHz采樣率。我使用在線音頻工具轉(zhuǎn)換將《颶風(fēng)營(yíng)救》的音頻片段重新采樣為16kHz。

使用librosa庫(kù)加載音頻文件,并提到我的音頻片段大小為16000 Hz。它將音頻片段轉(zhuǎn)換成數(shù)組,并存儲(chǔ)在“audio”變量中。

 
 
 
 
  1. # Loading the audio file 
  2. audio, rate = librosa.load("taken_clip.wav", sr = 16000) 
  3.  
  4. # printing audio  
  5. print(audio) 
  6. array([0., 0., 0., ..., 0., 0., 0.], dtype=float32) 
  7.  
  8. # printing rate 
  9. print(rate) 
  10. 16000 

導(dǎo)入預(yù)訓(xùn)練的Wav2Vec模型

 
 
 
 
  1. # Importing Wav2Vec pretrained model 
  2. tokenizer = Wav2Vec2Tokenizer.from_pretrained("facebook/wav2vec2-base-960h") 
  3. model = Wav2Vec2ForCTC.from_pretrained("facebook/wav2vec2-base-960h") 

下一步是獲取輸入值,將音頻(數(shù)組)傳遞到分詞器(tokenizer),我們希望tensor是采用PyTorch格式,而不是Python整數(shù)格式。return_tensors =“pt”,這就是PyTorch格式。

 
 
 
 
  1. # Taking an input value 
  2.  
  3. input_values = tokenizer(audio, return_tensors = "pt").input_values 

獲取logit值(非規(guī)范化值)

 
 
 
 
  1. # Storing logits (non-normalized prediction values) 
  2.  
  3. logits = model(input_values).logits 

將logit值傳遞給softmax以獲取預(yù)測(cè)值。

 
 
 
 
  1. # Storing predicted ids 
  2. prediction = torch.argmax(logits, dim = -1) 

將音頻轉(zhuǎn)換成文本

最后一步是將預(yù)測(cè)傳遞給分詞器解碼以獲得轉(zhuǎn)錄。

 
 
 
 
  1. # Passing the prediction to the tokenzer decode to get the transcription 
  2. transcription = tokenizer.batch_decode(prediction)[0] 
  3.  
  4. # Printing the transcription 
  5. print(transcription) 
  6. 'I WILL LOOK FOR YOU I WILL FIND YOU  AND I WILL KILL YOU' 

它與我們的音頻片段完全匹配。

我們?cè)诒疚闹锌吹搅巳绾问褂肳av2Vec預(yù)訓(xùn)練模型和Transformers將語(yǔ)音轉(zhuǎn)換成文本。這對(duì)于NLP項(xiàng)目特別是處理音頻轉(zhuǎn)錄數(shù)據(jù)非常有幫助。

您可以在我的GitHub代碼庫(kù)中找到整段代碼和數(shù)據(jù)。


本文題目:如何用Wav2Vec2.0將語(yǔ)音轉(zhuǎn)換成文本
文章來(lái)源:http://www.dlmjj.cn/article/cojiddh.html