はじめに
Whisperにlarge-v3という新しいモデルが追加されていたので試してみましたが専門用語に弱い点は改善されていませんでした。その解決方法を紹介します。音声はこちらから男性ナレーション、医療WEBドラマ医師役の音声をダウンロードさせて頂きました。環境構築に関しては以前「Whisper」について書いた記事を見て下さい。
touch-sp.hatenablog.com
large-v2とlarge-v3の比較
まずはlarge-v2とlarge-v3の比較をしてみました。large-v2
Pythonスクリプト「run.py」
import whisper import sys audio_file = sys.argv[1] model = whisper.load_model("large-v2") result = model.transcribe(audio_file) print(result["text"])
実行
python run.py talk.mp3
結果
血管収縮には血管閉合菌細胞内のカルシウム濃度が関与しており血管閉合菌細胞内へのカルシウム流入をブロックすれば血管収縮を抑制できますしかし近年カルシウム流入とは独立した経路としてロックが見出され血管収縮に深く関与していることが明らかになりました「血管平滑筋細胞」という医学的専門用語が「血管閉合菌細胞」になっています。
large-v3
Pythonスクリプト「run.py」
import whisper import sys audio_file = sys.argv[1] model = whisper.load_model("large-v3") result = model.transcribe(audio_file) print(result["text"])
実行
python run.py talk.mp3
結果
血管収縮には血管閉合菌細胞内のカルシウム濃度が関与しており血管閉合菌細胞内へのカルシウム流入をブロックすれば血管収縮を抑制できますしかし近年カルシウム流入とは独立した経路としてロックが見出され血管収縮に深く関与していることが明らかになりましたlarge-v3になっても専門用語に弱い点は克服できていないようです。
ここから本題
専門用語をあらかじめ提示してあげれば良いようです。Pythonスクリプト「run.py」
import whisper import sys audio_file = sys.argv[1] model = whisper.load_model("large-v3") result = model.transcribe( audio_file, initial_prompt="血管平滑筋" ) print(result["text"])
実行
python run.py talk.mp3
結果
血管収縮には血管平滑筋細胞内のカルシウム濃度が関与しており、血管平滑筋細胞内へのカルシウム流入をブロックすれば血管収縮を抑制できます。しかし近年、カルシウム流入とは独立した経路としてロックが見出され、血管収縮に深く関与していることが明らかになりました。「血管平滑筋細胞」が正確に文字起こしされています。さらになぜか句読点もつけてくれるようになりました。かなり実用的に使えると思います。