Wav2vec2 Large Xlsr Persian V3
Facebookのwav2vec2-large-xlsr-53モデルをペルシャ語Common Voiceデータセットでファインチューニングした自動音声認識(ASR)モデル
ダウンロード数 1,888
リリース時間 : 3/2/2022
モデル概要
このモデルはペルシャ語(ファルシ語)の音声認識タスク専用で、XLSRアーキテクチャの大規模事前学習とペルシャ語データによるファインチューニングにより高精度な文字起こしを実現
モデル特徴
低単語誤り率
ペルシャ語テストセットで10.36%のWER(単語誤り率)を達成
大規模事前学習
facebook/wav2vec2-large-xlsr-53の多言語事前学習モデルを基盤
専門データによるチューニング
Common Voiceペルシャ語版データを使用したターゲット指向のファインチューニング
モデル能力
ペルシャ語音声認識
16kHz音声処理
長音声文字起こし
使用事例
音声文字起こし
ペルシャ語音声文字変換
ペルシャ語音声コンテンツをテキストに変換
約90%の精度(WER 10.36%)
音声アシスタント
ペルシャ語音声コマンド認識
ペルシャ語音声アシスタントの中核認識機能を提供
🚀 Wav2Vec2-Large-XLSR-53-Persian V3
このモデルは、ペルシャ語(ファーシ語)の自動音声認識に特化しています。Common Voice データセットを用いて、facebook/wav2vec2-large-xlsr-53 を微調整しています。
🚀 クイックスタート
このモデルを使用するには、音声入力が16kHzでサンプリングされていることを確認してください。以下に、使用方法の詳細を示します。
✨ 主な機能
- ペルシャ語(ファーシ語)の自動音声認識に最適化されたモデルです。
- 高い精度で音声をテキストに変換することができます。
📦 インストール
必要なパッケージをインストールするには、以下のコマンドを実行してください。
# requirement packages
!pip install git+https://github.com/huggingface/datasets.git
!pip install git+https://github.com/huggingface/transformers.git
!pip install torchaudio
!pip install librosa
!pip install jiwer
!pip install parsivar
!pip install num2fawords
ノーマライザーのダウンロード
# Normalizer
!wget -O normalizer.py https://huggingface.co/m3hrdadfi/"wav2vec2-large-xlsr-persian-v3/raw/main/dictionary.py
!wget -O normalizer.py https://huggingface.co/m3hrdadfi/"wav2vec2-large-xlsr-persian-v3/raw/main/normalizer.py
データのダウンロード
wget https://voice-prod-bundler-ee1969a6ce8178826482b88e843c335139bd3fb4.s3.amazonaws.com/cv-corpus-6.1-2020-12-11/fa.tar.gz
tar -xzf fa.tar.gz
rm -rf fa.tar.gz
💻 使用例
基本的な使用法
from normalizer import normalizer
def cleaning(text):
if not isinstance(text, str):
return None
return normalizer({"sentence": text}, return_dict=False)
data_dir = "/content/cv-corpus-6.1-2020-12-11/fa"
test = pd.read_csv(f"{data_dir}/test.tsv", sep=" ")
test["path"] = data_dir + "/clips/" + test["path"]
print(f"Step 0: {len(test)}")
test["status"] = test["path"].apply(lambda path: True if os.path.exists(path) else None)
test = test.dropna(subset=["path"])
test = test.drop("status", 1)
print(f"Step 1: {len(test)}")
test["sentence"] = test["sentence"].apply(lambda t: cleaning(t))
test = test.dropna(subset=["sentence"])
print(f"Step 2: {len(test)}")
test = test.reset_index(drop=True)
print(test.head())
test = test[["path", "sentence"]]
test.to_csv("/content/test.csv", sep=" ", encoding="utf-8", index=False)
高度な使用法
import numpy as np
import pandas as pd
import librosa
import torch
import torchaudio
from transformers import Wav2Vec2ForCTC, Wav2Vec2Processor
from datasets import load_dataset, load_metric
import IPython.display as ipd
model_name_or_path = "m3hrdadfi/wav2vec2-large-xlsr-persian-v3"
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
print(model_name_or_path, device)
processor = Wav2Vec2Processor.from_pretrained(model_name_or_path)
model = Wav2Vec2ForCTC.from_pretrained(model_name_or_path).to(device)
def speech_file_to_array_fn(batch):
speech_array, sampling_rate = torchaudio.load(batch["path"])
speech_array = speech_array.squeeze().numpy()
speech_array = librosa.resample(np.asarray(speech_array), sampling_rate, processor.feature_extractor.sampling_rate)
batch["speech"] = speech_array
return batch
def predict(batch):
features = processor(
batch["speech"],
sampling_rate=processor.feature_extractor.sampling_rate,
return_tensors="pt",
padding=True
)
input_values = features.input_values.to(device)
attention_mask = features.attention_mask.to(device)
with torch.no_grad():
logits = model(input_values, attention_mask=attention_mask).logits
pred_ids = torch.argmax(logits, dim=-1)
batch["predicted"] = processor.batch_decode(pred_ids)
return batch
dataset = load_dataset("csv", data_files={"test": "/content/test.csv"}, delimiter=" ")["test"]
dataset = dataset.map(speech_file_to_array_fn)
result = dataset.map(predict, batched=True, batch_size=4)
WERスコアの計算
wer = load_metric("wer")
print("WER: {:.2f}".format(100 * wer.compute(predictions=result["predicted"], references=result["sentence"])))
出力例
max_items = np.random.randint(0, len(result), 20).tolist()
for i in max_items:
reference, predicted = result["sentence"][i], result["predicted"][i]
print("reference:", reference)
print("predicted:", predicted)
print('---')
reference: ماجرا رو براش تعریف کردم اون گفت مریم اگه میدونی پسر خوبیه خب چه اشکالی داره باهاش بیشتر اشنا بشو
predicted: ماجرا رو براش تعریف کردم اون گفت مریم اگه میدونی پسر خوبیه خب چه اشکالی داره باهاش بیشتر اشنا بشو
---
reference: بیا پایین تو اجازه نداری بری اون بالا
predicted: بیا پایین تو اجازه نداری بری اون بالا
---
reference: هر روز یک دو مداد کش می رفتتم تااین که تا پایان ترم از تمامی دوستانم مداد برداشته بودم
predicted: هر روز یک دو مداد کش می رفتم تااین که تا پایین ترم از تمامی دوستان و مداد برداشته بودم
---
reference: فکر میکنی آروم میشینه
predicted: فکر میکنی آروم میشینه
---
reference: هرکسی با گوشی هوشمند خود میتواند با کایلا متصل گردد در یک محدوده مکانی
predicted: هرکسی با گوشی هوشمند خود میتواند با کایلا متصل گردد در یک محدوده مکانی
---
reference: برو از مهرداد بپرس
predicted: برو از مهرداد بپرس
---
reference: می خواهم شما را با این قدمها آشنا کنم
predicted: می خواهم شما را با این قدمها آشنا کنم
---
reference: میدونم یه روز دوباره می تونم تو رو ببینم
predicted: میدونم یه روز دوباره می تونم تو رو ببینم
---
reference: بسیار خوب خواهد بود دعوت او را بپذیری
predicted: بسیار خوب خواهد بود دعوت او را بپذیری
---
reference: بهت بگن آشغالی خوبه
predicted: بهت بگن آشغالی خوبه
---
reference: چرا معاشرت با هم ایمانان ما را محفوظ نگه میدارد
predicted: چرا معاشرت با هم ایمانان آ را م حفوظ نگه میدارد
---
reference: بولیوی پس از گویان فقیرترین کشور آمریکای جنوبی است
predicted: بولیوی پس از گویان فقیرترین کشور آمریکای جنوبی است
---
reference: بعد از مدتی اینکار برایم عادی شد
predicted: بعد از مدتی اینکار برایم عادو شد
---
reference: به نظر اون هم همینطوره
predicted: به نظر اون هم همینطوره
---
reference: هیچ مایونز ی دارید
predicted: هیچ مایونز ی دارید
---
reference: هیچ یک از انان کاری به سنگ نداشتند
predicted: هیچ شک از انان کاری به سنگ نداشتند
---
reference: می خواهم کمی کتاب شعر ببینم
predicted: می خواهم کتاب شعر ببینم
---
reference: همین شوهر فهیمه مگه نمی گفتی فرمانده بوده کو
predicted: همین شوهر فهیمه بینامی گفتی فهمانده بود کو
---
reference: اون جاها کسی رو نمیبینی که تو دستش کتاب نباشه
predicted: اون جاها کسی رو نمیبینی که تو دستش کتاب نباشه
---
reference: زندان رفتن من در این سالهای اخیر برام شانس بزرگی بود که معما و مشکل چندین سالهام را حل کرد
predicted: زندان رفتن من در این سالها اخی براب شانس بزرگی بود که معما و مشکل چندین سالهام را حل کرد
---
📚 ドキュメント
評価結果
テスト結果:
- WER: 10.36%
モデル情報
属性 | 詳情 |
---|---|
モデルタイプ | XLSR Wav2Vec2 Persian (Farsi) V3 by Mehrdad Farahani |
訓練データ | Common Voice fa |
Voice Activity Detection
MIT
pyannote.audio 2.1バージョンに基づく音声活動検出モデルで、音声中の音声活動時間帯を識別するために使用されます
音声認識
V
pyannote
7.7M
181
Wav2vec2 Large Xlsr 53 Portuguese
Apache-2.0
これはポルトガル語音声認識タスク向けにファインチューニングされたXLSR-53大規模モデルで、Common Voice 6.1データセットでトレーニングされ、ポルトガル語音声からテキストへの変換をサポートします。
音声認識 その他
W
jonatasgrosman
4.9M
32
Whisper Large V3
Apache-2.0
WhisperはOpenAIが提案した先進的な自動音声認識(ASR)および音声翻訳モデルで、500万時間以上の注釈付きデータで訓練されており、強力なデータセット間およびドメイン間の汎化能力を持っています。
音声認識 複数言語対応
W
openai
4.6M
4,321
Whisper Large V3 Turbo
MIT
WhisperはOpenAIが開発した最先端の自動音声認識(ASR)および音声翻訳モデルで、500万時間以上のラベル付きデータでトレーニングされ、ゼロショット設定において強力な汎化能力を発揮します。
音声認識
Transformers 複数言語対応

W
openai
4.0M
2,317
Wav2vec2 Large Xlsr 53 Russian
Apache-2.0
facebook/wav2vec2-large-xlsr-53モデルをファインチューニングしたロシア語音声認識モデル、16kHzサンプリングレートの音声入力をサポート
音声認識 その他
W
jonatasgrosman
3.9M
54
Wav2vec2 Large Xlsr 53 Chinese Zh Cn
Apache-2.0
facebook/wav2vec2-large-xlsr-53モデルをファインチューニングした中国語音声認識モデルで、16kHzサンプリングレートの音声入力をサポートしています。
音声認識 中国語
W
jonatasgrosman
3.8M
110
Wav2vec2 Large Xlsr 53 Dutch
Apache-2.0
facebook/wav2vec2-large-xlsr-53をファインチューニングしたオランダ語音声認識モデルで、Common VoiceとCSS10データセットでトレーニングされ、16kHz音声入力に対応しています。
音声認識 その他
W
jonatasgrosman
3.0M
12
Wav2vec2 Large Xlsr 53 Japanese
Apache-2.0
facebook/wav2vec2-large-xlsr-53モデルをベースにファインチューニングした日本語音声認識モデルで、16kHzサンプリングレートの音声入力をサポート
音声認識 日本語
W
jonatasgrosman
2.9M
33
Mms 300m 1130 Forced Aligner
Hugging Faceの事前学習モデルを基にしたテキストと音声の強制アライメントツールで、多言語対応かつメモリ効率に優れています
音声認識
Transformers 複数言語対応

M
MahmoudAshraf
2.5M
50
Wav2vec2 Large Xlsr 53 Arabic
Apache-2.0
facebook/wav2vec2-large-xlsr - 53をベースに微調整されたアラビア語音声認識モデルで、Common Voiceとアラビア語音声コーパスで訓練されました。
音声認識 アラビア語
W
jonatasgrosman
2.3M
37
おすすめAIモデル
Llama 3 Typhoon V1.5x 8b Instruct
タイ語専用に設計された80億パラメータの命令モデルで、GPT-3.5-turboに匹敵する性能を持ち、アプリケーションシナリオ、検索拡張生成、制限付き生成、推論タスクを最適化
大規模言語モデル
Transformers 複数言語対応

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-TinyはSODAデータセットでトレーニングされた超小型対話モデルで、エッジデバイス推論向けに設計されており、体積はCosmo-3Bモデルの約2%です。
対話システム
Transformers 英語

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
RoBERTaアーキテクチャに基づく中国語抽出型QAモデルで、与えられたテキストから回答を抽出するタスクに適しています。
質問応答システム 中国語
R
uer
2,694
98