🚀 阿拉伯语带音符音节识别
本项目是一个经过微调的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}
}