🚀 語音識別模型 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許可證。