🚀 HIYACCENT:基于对比学习的改进尼日利亚口音语音识别系统
本研究的总体目标是为尼日利亚英语使用者开发一个更强大的模型,这些人的英语发音深受其母语的影响。为此,提出了Wav2Vec - HIYACCENT模型,该模型在新颖的Facebook Wav2vec中引入了一个新层,以捕捉基线模型与尼日利亚英语语音之间的差异。此外,还在模型顶部插入了一个CTC损失函数,为语音 - 文本对齐增加了灵活性。这使得该模型在尼日利亚英语(NAE)语音识别性能上提升了超过20%。
使用UISpeech语料库在英语上对facebook/wav2vec2 - large进行了微调。使用此模型时,请确保您的语音输入采样率为16kHz。
训练脚本可在此处找到:https://github.com/amceejay/HIYACCENT - NE - Speech - Recognition - System
🚀 快速开始
✨ 主要特性
- 提出Wav2Vec - HIYACCENT模型,引入新层捕捉基线模型与尼日利亚英语语音的差异。
- 在模型顶部插入CTC损失函数,增加语音 - 文本对齐的灵活性。
- 基于UISpeech语料库对facebook/wav2vec2 - large进行微调,在尼日利亚英语语音识别性能上有显著提升。
📦 安装指南
文档未提及具体安装步骤,故跳过此章节。
💻 使用示例
基础用法
使用ASRecognition库:
from asrecognition import ASREngine
asr = ASREngine("fr", model_path="codeceejay/HIYACCENT_Wav2Vec2")
audio_paths = ["/path/to/file.mp3", "/path/to/another_file.wav"]
transcriptions = asr.transcribe(audio_paths)
高级用法
自行编写推理脚本:
import torch
import librosa
from datasets import load_dataset
from transformers import Wav2Vec2ForCTC, Wav2Vec2Processor
LANG_ID = "en"
MODEL_ID = "codeceejay/HIYACCENT_Wav2Vec2"
SAMPLES = 10
test_dataset = load_dataset("common_voice", LANG_ID, split=f"test[:{SAMPLES}]")
processor = Wav2Vec2Processor.from_pretrained(MODEL_ID)
model = Wav2Vec2ForCTC.from_pretrained(MODEL_ID)
def speech_file_to_array_fn(batch):
speech_array, sampling_rate = librosa.load(batch["path"], sr=16_000)
batch["speech"] = speech_array
batch["sentence"] = batch["sentence"].upper()
return batch
test_dataset = test_dataset.map(speech_file_to_array_fn)
inputs = processor(test_dataset["speech"], sampling_rate=16_000, return_tensors="pt", padding=True)
with torch.no_grad():
logits = model(inputs.input_values, attention_mask=inputs.attention_mask).logits
predicted_ids = torch.argmax(logits, dim=-1)
predicted_sentences = processor.batch_decode(predicted_ids)
for i, predicted_sentence in enumerate(predicted_sentences):
print("-" * 100)
print("Reference:", test_dataset[i]["sentence"])
print("Prediction:", predicted_sentence)
🔧 技术细节
本研究旨在为尼日利亚英语使用者开发更强大的语音识别模型。通过在新颖的Facebook Wav2vec中引入新层,捕捉基线模型与尼日利亚英语语音的差异。同时,在模型顶部插入CTC损失函数,增加语音 - 文本对齐的灵活性,从而使模型在尼日利亚英语语音识别性能上提升超过20%。此外,使用UISpeech语料库对facebook/wav2vec2 - large进行微调,使用时需确保语音输入采样率为16kHz。
📚 详细文档
使用此模型时,请确保您的语音输入采样率为16kHz。训练脚本可在此处找到:https://github.com/amceejay/HIYACCENT - NE - Speech - Recognition - System 。
📄 许可证
文档未提及许可证信息,故跳过此章节。