🚀 语音识别模型 wav2vec2-xls-r-300m-phoneme
本模型是一个基于自动语音识别技术的模型,它在Timit数据集上对 facebook/wav2vec2-xls-r-300m 进行了微调,能够高效准确地实现语音识别功能。
🚀 快速开始
本模型是 facebook/wav2vec2-xls-r-300m 在Timit数据集上的微调版本。查看 此笔记本 以了解训练细节。
💻 使用示例
基础用法
使用HuggingFace的pipeline,这将涵盖从原始音频输入到文本输出的端到端处理。
from transformers import pipeline
pipe = pipeline(model="vitouphy/wav2vec2-xls-r-300m-timit-phoneme")
output = pipe("audio_file.wav", chunk_length_s=10, stride_length_s=(4, 2))
高级用法
更自定义的方式来预测音素。
from transformers import Wav2Vec2Processor, Wav2Vec2ForCTC
from datasets import load_dataset
import torch
import soundfile as sf
processor = Wav2Vec2Processor.from_pretrained("vitouphy/wav2vec2-xls-r-300m-timit-phoneme")
model = Wav2Vec2ForCTC.from_pretrained("vitouphy/wav2vec2-xls-r-300m-timit-phoneme")
audio_input, sample_rate = sf.read("audio_file.wav")
inputs = processor(audio_input, 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, axis=-1)
predicted_sentences = processor.batch_decode(predicted_ids)
print(predicted_sentences)
📚 详细文档
训练和评估数据
我们使用 DARPA TIMIT数据集 来训练这个模型。
- 我们将数据集分别按 80/10/10 的比例划分为训练集、验证集和测试集。
- 这大致对应于约 137/17/17 分钟的音频数据。
- 该模型在测试集上的字符错误率(CER)为 7.996%。
训练过程
训练超参数
训练期间使用了以下超参数:
- 学习率:3e-05
- 训练批次大小:8
- 评估批次大小:8
- 随机种子:42
- 梯度累积步数:4
- 总训练批次大小:32
- 优化器:Adam(β1=0.9,β2=0.999,ε=1e-08)
- 学习率调度器类型:线性
- 学习率调度器热身步数:2000
- 训练步数:10000
- 混合精度训练:Native AMP
框架版本
- Transformers 4.17.0.dev0
- Pytorch 1.10.2+cu102
- Datasets 1.18.2.dev0
- Tokenizers 0.11.0
引用
@misc { phy22-phoneme,
author = {Phy, Vitou},
title = {{Automatic Phoneme Recognition on TIMIT Dataset with Wav2Vec 2.0}},
year = 2022,
note = {{If you use this model, please cite it using these metadata.}},
publisher = {Hugging Face},
version = {1.0},
doi = {10.57967/hf/0125},
url = {https://huggingface.co/vitouphy/wav2vec2-xls-r-300m-timit-phoneme}
}
📄 许可证
本项目采用Apache-2.0许可证。