🚀 阿拉伯語帶音符音節識別
本項目是一個經過微調的wav2vec2模型,用於從語音中識別阿拉伯語音節。該模型在現代標準阿拉伯語數據集上進行訓練,並且還配備了5-gram語言模型。
🚀 快速開始
若要嘗試使用該模型,可按以下步驟操作:
安裝依賴
!pip install datasets transformers
!pip install https://github.com/kpu/kenlm/archive/master.zip pyctcdecode
加載模型和處理器
from transformers import Wav2Vec2Processor, Wav2Vec2ForCTC
from transformers import Wav2Vec2ProcessorWithLM
processor = Wav2Vec2ProcessorWithLM.from_pretrained('IbrahimSalah/Syllables_final_Large')
model = Wav2Vec2ForCTC.from_pretrained("IbrahimSalah/Syllables_final_Large")
準備數據集
import pandas as pd
dftest = pd.DataFrame(columns=['audio'])
import datasets
from datasets import Dataset
path ='/content/908-33.wav'
dftest['audio']=[path]
dataset = Dataset.from_pandas(dftest)
音頻處理函數
import torch
import torchaudio
def speech_file_to_array_fn(batch):
speech_array, sampling_rate = torchaudio.load(batch["audio"])
print(sampling_rate)
resampler = torchaudio.transforms.Resample(sampling_rate, 16_000)
batch["audio"] = resampler(speech_array).squeeze().numpy()
return batch
進行預測
import numpy as np
from datasets import load_dataset
from transformers import Wav2Vec2ForCTC, Wav2Vec2Processor
test_dataset = dataset.map(speech_file_to_array_fn)
inputs = processor(test_dataset["audio"], sampling_rate=16_000, return_tensors="pt", padding=True)
with torch.no_grad():
logits = model(inputs.input_values).logits
print(logits.numpy().shape)
transcription = processor.batch_decode(logits.numpy()).text
print("Prediction:",transcription[0])
音節轉單詞
你可以使用我們微調的mT5模型[IbrahimSalah/Arabic_Syllables_to_text_Converter_Using_MT5]將識別出的音節轉換為完整的單詞。
📦 數據集與標籤
屬性 |
詳情 |
數據集 |
IbrahimSalah/The_Arabic_News_speech_Corpus_Dataset |
語言 |
阿拉伯語 |
標籤 |
阿拉伯語、現代標準阿拉伯語、語音、音節、Wav2vec、自動語音識別 |
📄 論文引用
論文DOI:https://doi.org/10.60161/2521-001-001-006
BibTeX:
@article{2024SyllableBasedAS,
title={Syllable-Based Arabic Speech Recognition Using Wav2Vec},
author={إبراهيم عبدالعال and مصطفى الشافعي and محمد عبدالواحد},
journal={مجلة اللغات الحاسوبية والمعالجة الآلية للغة العربية},
year={2024},
url={https://api.semanticscholar.org/CorpusID:269151543}
}