Edit model card

ドミニオン日本語LLM for Whisper(2023/12/19 1.0版)

概要

Whisperでドミニオン(ボードゲーム)のカード用語などを含んだ音声を文字起こし出来ることを目標にチューニングされたLLMです。
open-ai/largeモデルをベースにファインチューニングすることで生成されています。
2023/12/19時点、全てのカードを学習済み。通常のlargeモデルと比較して適切に出力される様子が確認できると思います。

※認識しにくい語の例

  • 寵臣(調子)、出納官(水筒感)など他の一般語に含まれやすい語
  • 岐路(木)、馬丁(バテー)、鉄工所(鉄工場)など語尾の音が弱い語
  • 執事(羊)など活舌によって揺れやすい語

実行例

from faster_whisper import WhisperModel
from transformers import WhisperForConditionalGeneration, WhisperProcessor

from datasets import load_dataset, DatasetDict, Dataset
from datasets import Audio

MODEL_PATH = "trained_model" # ローカルにダウンロードしたketman/whisper_for_dominionの入ったフォルダ
fileList = ["out_4315_1.wav","out_4369_1.wav","out_4436_1.wav","out_4494_1.wav","out_4557_1.wav"]

processor = WhisperProcessor.from_pretrained("openai/whisper-large", language="Japanese", task="transcribe")

# チューニング済モデルを定義
model = WhisperForConditionalGeneration.from_pretrained(MODEL_PATH)
model.config.forced_decoder_ids = processor.get_decoder_prompt_ids(language = "ja", task = "transcribe")
model.config.suppress_tokens = []

# Dataset準備
common_voice = DatasetDict()
common_voice["train"] = Dataset.from_dict({"audio": fileList}).cast_column("audio", Audio(sampling_rate=16000))

# Whisper実行(transcription)
for i in range(len(common_voice["train"])):
    inputs = processor(common_voice["train"][i]["audio"]["array"], return_tensors="pt")
    input_features = inputs.input_features

    generated_ids = model.generate(inputs=input_features)

    transcription = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]

    print(transcription)

参考文献

自作データセットでWhisperをファインチューニングしたら、独自用語だらけのクラロワ実況でも使えるようになった:「ファインチューニング編」

Downloads last month
2
Safetensors
Model size
1.54B params
Tensor type
F32
·
Inference Examples
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social visibility and check back later, or deploy to Inference Endpoints (dedicated) instead.