--- language: - ja base_model: - openai/whisper-small pipeline_tag: automatic-speech-recognition license: apache-2.0 --- ## 概要 - 日本語の音声ファイルに対して、書記素列(漢字仮名交じり文)をプロンプトに入れることで、書記素列と整合性のあるモーラ列(カタカナ列)を出力するモデルです。 - 詳細については以下の記事を参考にしてください: [日本語TTS用の学習データの精度を上げる「ふりがなWhisper」を作った話](https://zenn.dev/parakeet_tech/articles/2591e71094ea58) - License: Apache-2.0 ## 使用方法 ```python from transformers import pipeline from pathlib import Path pipe = pipeline( "automatic-speech-recognition", model="Parakeet-Inc/furigana_whisper_small_jsut", ) def transcribe_with_prompt(pipe, audio_path: str | Path, prompt: str) -> str: prompt_ids = pipe.tokenizer.get_prompt_ids( prompt, return_tensors="pt" ).to(pipe.device) generate_kwargs = {"prompt_ids": prompt_ids} result = pipe(str(audio_path), generate_kwargs=generate_kwargs) return result["text"] # 実行例 audio_path = "path/to/your/audio.wav" prompt = "明日は晴れ。" transcription = transcribe_with_prompt(pipe, audio_path, prompt) print(transcription) # アスワハレ。 ``` ## 注意 - 音声の長さは30秒以下でないとうまく動きません。 - 公開しているsmallモデルはそこまで精度が良いとは言えず、G2Pマッチ率(データセットに対してフィルタリングを行った後に残るデータ量)が40%程度となっています。より精度の高いモデルを使いたい方はデータを揃え、ベースモデルもwhisper-smallより大きいモデルにして自分で学習を行うことをおすすめします。 - 学習データでのプロンプトは、全て「句読点が、。のみ」「最後に必ず。が付く」と正規化されています。よって、与えるプロンプトも同様の形式にしたほうが精度が高くなります。