成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用PyTorch和Hugging Face構(gòu)建一個(gè)自動(dòng)語(yǔ)音識(shí)別系統(tǒng)

譯文 精選
人工智能
這篇分成多個(gè)步驟的指南介紹了如何使用PyTorch和Hugging Face構(gòu)建一個(gè)語(yǔ)音轉(zhuǎn)文本系統(tǒng)。

譯者 | 布加迪

審校 | 重樓

從語(yǔ)音助手到轉(zhuǎn)錄服務(wù),自動(dòng)語(yǔ)音識(shí)別(ASR)是許多應(yīng)用中的一項(xiàng)關(guān)鍵技術(shù)。我們?cè)诒窘坛讨兄荚谑褂肏ugging Face的預(yù)訓(xùn)練模型構(gòu)建一條能夠?qū)⒄Z(yǔ)音轉(zhuǎn)錄為文本的ASR管道。我們將使用輕量級(jí)數(shù)據(jù)集來(lái)提高效率,并使用Wav2Vec2這種強(qiáng)大的語(yǔ)音識(shí)別自監(jiān)督模型。

我們的系統(tǒng)將:

  • 加載和預(yù)處理語(yǔ)音數(shù)據(jù)集
  • 微調(diào)預(yù)訓(xùn)練的Wav2Vec2模型
  • 使用字錯(cuò)誤率(WER)評(píng)估模型的性能
  • 部署模型進(jìn)行實(shí)時(shí)語(yǔ)音轉(zhuǎn)文本推理

為了確保模型輕量級(jí)、高效,我們將使用小型語(yǔ)音數(shù)據(jù)集,而不是Common Voice之類的大型數(shù)據(jù)集。

第1步:安裝依賴項(xiàng)

在開(kāi)始之前,我們需要安裝必要的庫(kù)。這些庫(kù)將允許我們加載數(shù)據(jù)集、處理音頻文件并微調(diào)我們的模型。

pip install torch torchaudio transformers datasets soundfile jiwer

以下是下列庫(kù)的主要用途:

  • transformers:為語(yǔ)音識(shí)別提供預(yù)訓(xùn)練的Wav2Vec2模型
  • datasets:加載和處理語(yǔ)音數(shù)據(jù)集
  • torchaudio:處理音頻處理和操縱
  • soundfile:讀取和寫(xiě)入.wav文件
  • jiwer:計(jì)算WER以評(píng)估ASR性能

第2步:加載輕量級(jí)語(yǔ)音數(shù)據(jù)集

我們使用SUPERB KS而不是使用Common Voice之類的大型數(shù)據(jù)集,這是一個(gè)非常適合快速試驗(yàn)的小型數(shù)據(jù)集。該數(shù)據(jù)集由“是”、“不”和“停止”等簡(jiǎn)短的口頭命令組成。

from datasets import load_dataset
dataset = load_dataset("superb", "ks", split="train[:1%]") # Load only 1% of the data for quick testing
print(dataset)

這會(huì)加載數(shù)據(jù)集的一小部分以降低計(jì)算成本,同時(shí)仍允許我們對(duì)模型進(jìn)行微調(diào)。

提醒:數(shù)據(jù)集仍需要存儲(chǔ)空間,因此在處理較大的分割時(shí),請(qǐng)注意磁盤(pán)使用情況。

第3步:預(yù)處理音頻數(shù)據(jù)

為了訓(xùn)練ASR模型,我們需要確保音頻數(shù)據(jù)的格式正確。Wav2Vec2模型需要:

  • 16 kHz 采樣率
  • 無(wú)填充或截?cái)啵▌?dòng)態(tài)處理)

我們定義一個(gè)函數(shù)來(lái)處理音頻并提取相關(guān)特征。

import torchaudio
def preprocess_audio(batch):
 speech_array, sampling_rate = torchaudio.load(batch["audio"]["path"])
 batch["speech"] = speech_array.squeeze().numpy()
 batch["sampling_rate"] = sampling_rate
 batch["target_text"] = batch["label"] # Use labels as text output
 return batch

dataset = dataset.map(preprocess_audio)

這確保了所有音頻文件正確加載,并正確格式化,供進(jìn)一步處理。

第4步:加載預(yù)訓(xùn)練的Wav2Vec2模型

我們使用來(lái)自Hugging Face模型中心的預(yù)訓(xùn)練Wav2Vec2模型。該模型已使用大型數(shù)據(jù)集進(jìn)行了訓(xùn)練,可以針對(duì)我們的特定任務(wù)進(jìn)行微調(diào)。

from transformers import Wav2Vec2Processor, Wav2Vec2ForCTC
processor = Wav2Vec2Processor.from_pretrained("facebook/wav2vec2-base-960h")
model = Wav2Vec2ForCTC.from_pretrained("facebook/wav2vec2-base-960h")

在這里,我們定義了將原始音頻轉(zhuǎn)換為對(duì)模型友好的特征的處理器和模型,包括使用960 小時(shí)長(zhǎng)的語(yǔ)音進(jìn)行預(yù)訓(xùn)練的Wav2Vec2。

第5步:為模型準(zhǔn)備數(shù)據(jù)

我們必須對(duì)音頻進(jìn)行分詞和編碼,以便模型可以理解它。

def preprocess_for_model(batch):
 inputs = processor(batch["speech"], sampling_rate=16000, return_tensors="pt", padding=True)
 batch["input_values"] = inputs.input_values[0]
 return batch

dataset = dataset.map(preprocess_for_model, remove_columns=["speech", "sampling_rate", "audio"])

該步驟確保我們的數(shù)據(jù)集與Wav2Vec2模型兼容。

第6步:定義訓(xùn)練參數(shù)

在訓(xùn)練之前,我們需要設(shè)置訓(xùn)練配置。這包括批量大小、學(xué)習(xí)速率和優(yōu)化步驟。

from transformers import TrainingArguments
training_args = TrainingArguments(
 output_dir="./wav2vec2",
 per_device_train_batch_size=4,
 evaluation_strategy="epoch",
 save_strategy="epoch",
 logging_dir="./logs",
 learning_rate=1e-4,
 warmup_steps=500,
 max_steps=4000,
 save_total_limit=2,
 gradient_accumulation_steps=2,
 fp16=True,
 push_to_hub=False,
)

第7步:訓(xùn)練模型

使用Hugging Face的Trainer,我們對(duì)Wav2Vec2模型進(jìn)行了微調(diào)。

from transformers import Trainer

trainer = Trainer(
 model=model,
 args=training_args,
 train_dataset=dataset,
 tokenizer=processor,
)

trainer.train()

第8步:評(píng)估模型

為了評(píng)估我們的模型轉(zhuǎn)錄語(yǔ)音的效果,我們計(jì)算了WER。

import torch
from jiwer import wer
def transcribe(batch):
 inputs = processor(batch["input_values"], return_tensors="pt", padding=True)
 with torch.no_grad():
 logits = model(inputs.input_values).logits
 predicted_ids = torch.argmax(logits, dim=-1)
 batch["predicted_text"] = processor.batch_decode(predicted_ids)[0]
 return batch

results = dataset.map(transcribe)
wer_score = wer(results["target_text"], results["predicted_text"])
print(f"Word Error Rate: {wer_score:.2f}")

WER分?jǐn)?shù)越低,表示性能越好。

第9步:對(duì)新音頻運(yùn)行推理

最后,我們可以使用訓(xùn)練過(guò)的模型轉(zhuǎn)錄真實(shí)世界的語(yǔ)音。

import torchaudio
import soundfile as sf

speech_array, sampling_rate = torchaudio.load("example.wav")
inputs = processor(speech_array.squeeze().numpy(), sampling_rate=16000, return_tensors="pt", padding=True)

with torch.no_grad():
 logits = model(inputs.input_values).logits

predicted_ids = torch.argmax(logits, dim=-1)
transcription = processor.batch_decode(predicted_ids)

結(jié)語(yǔ)

好了,你已經(jīng)使用PyTorch和Hugging Face以及輕量級(jí)數(shù)據(jù)集成功構(gòu)建了一個(gè)ASR系統(tǒng)。

原文標(biāo)題:Building an Automatic Speech Recognition System with PyTorch & Hugging Face,作者:Josep Ferrer

責(zé)任編輯:姜華 來(lái)源: 51CTO
相關(guān)推薦

2024-11-15 08:24:41

2021-03-10 18:26:49

Tensorflow語(yǔ)音識(shí)別音頻處理

2018-05-02 11:38:14

語(yǔ)音識(shí)別法院

2022-02-07 19:59:54

CMakeVSCodium編程語(yǔ)言

2024-08-28 08:25:25

Python預(yù)訓(xùn)練模型情緒數(shù)據(jù)集

2025-03-26 10:57:40

PyTorchGGUF

2022-04-07 14:19:57

人工智能面部識(shí)別人臉照片

2024-06-21 08:42:54

BERTNLP自然語(yǔ)言處理

2023-10-08 09:00:00

LLMGitHub人工智能

2020-10-23 14:14:54

語(yǔ)音識(shí)別ASR錯(cuò)誤率

2023-09-05 09:00:00

工具Python抄襲檢測(cè)系統(tǒng)

2025-02-24 08:39:08

2022-09-18 21:39:42

自動(dòng)駕駛識(shí)別

2023-12-06 15:40:17

AI

2022-07-20 09:38:31

Python語(yǔ)音合成代碼

2024-09-26 10:42:20

2024-11-13 08:34:32

T5聊天機(jī)器人大模型

2019-08-27 15:17:42

2021-04-27 16:04:26

人工智能Python 語(yǔ)音識(shí)別

2025-01-14 08:30:00

點(diǎn)贊
收藏

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

主站蜘蛛池模板: 天天操天天干天天透 | 成人在线视频免费看 | 一区二区三区在线播放 | 一级欧美一级日韩片免费观看 | 亚洲一区视频在线 | 国产精品成人一区二区 | 高清国产一区二区 | 国产一区2区 | 欧美日韩亚洲一区二区 | 亚洲综合三区 | 看特级黄色片 | 美女视频h | 亚洲精品久久久一区二区三区 | 综合精品久久久 | 精品免费在线 | 午夜精品久久久久久久久久久久久 | www.99re| 女同av亚洲女人天堂 | 欧美freesex黑人又粗又大 | 精品一区二区久久久久久久网站 | a爱视频 | 日韩中文字幕一区 | 黄色成人在线 | 偷派自拍 | 欧美精品三区 | 久视频在线观看 | 久久av一区二区三区 | 亚洲成av人片在线观看无码 | 四虎影视免费在线 | 国产激情精品视频 | 国产精品明星裸体写真集 | 成人免费看黄网站在线观看 | 一区二区三区亚洲精品国 | 99av成人精品国语自产拍 | 天天色天天射天天干 | 一级片视频免费 | 国产一级特黄真人毛片 | 久久国产一区 | 99re在线视频 | 精品国产一区二区三区免费 | 国产电影一区二区在线观看 |