Whisper をWindows(Python)で使ってみる
*更新中: 最終更新 2026年9月15日 10:00*
-----------------------------------
評価結果は別のブログに入れることにします*
簡易評価結果(更新中)→https://jk1gpc.blogspot.com/2026/09/wisper.html
-----------------------------------
FreeDVの評価に使われたWhisper ASR(音声認識)をWindows PCにインストールしてみました。
https://github.com/openai/whisper
https://huggingface.co/openai/whisper-large-v3 のModel detailsにありますが、多言語対応はlarge, large-v2, large-v3 の3種類です。
ここではlarge-v3を入れてみます。PCによってはlarge,large-v2の方が良いかも知れません。以下をインストールすればオプションでlarge,large-v2,large-v3が選べます。
ここではまずオプションでlaergr-v3を選びます。
以下の手順であればgithubなどからのインストールは必要ありません。
Windows11 PC(Mini-PC: 13th Gen Core i9, メモリ32GB )に入れてみました。
メモリーは16GB以上が推奨のようです。
なおLinux(Ubuntu)にもインストール可能なようですが、NVIDIA GPUがないと遅くなるようです。
1.Python(パイソン)をインストールする。
インストール画面で"Add python.exe to PATH"にチェックしてからインストールします。
つぎにWindowsターミナル(Power Shell)を起動します。
(Windowsマーク 右クリックしてターミナル管理者を起動します)
*コマンド(太字)はコピペすると便利です。ターミナルでカーソルをおき右クリックするだけでペーストできます。
以下のコマンドでバージョンが表示されればOKです。
py --version
Python 3.xx.xx
2. Whisper関連フォルダーを作る
Windowsターミナル(Power Shell)で
mkdir C:\Whisper *Windows エクスプローラーで作ってもOKです。
結果を入れるフォルダーを作っておきます。最初に作ればOKです。
mkdir C:\Whisper\result *Windows エクスプローラーで作ってもOKです。
次にWhisper専用のPython環境を作ります。
cd C:\Whisper
py -3.11 -m venv whisper-env
.\whisper-env\Scripts\Activate.ps1
行の先頭が以下になればOKです。
(whisper-env) PS C:\Whisper>
スクリプト実行エラーが出た場合以下を実行します。
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
確認されたら Yを入れます
その後もう一度
.\whisper-env\Scripts\Activate.ps1をインストールします。
3. pipを更新する。 *pipはPythonのインストールコマンドです。
途中で下記の表示がされた場合は
python -m pip install --upgrade pip setuptools wheel
4. FFmpegをインストールする。*FFmpegは色々な音声フォーマットを読み込むソフトです。
winget install --id Gyan.FFmpeg -e
インストール後、いったんPowerShellを閉じて、新しく開き直します。
ffmpeg -version でバージョン表示されれば成功です。
「wingetが見つからない」と出る場合以下を入力します。
choco install ffmpeg
5. Whisperをインストールする。
*新しくPowerShellを開いた場合は、再び専用環境を有効にします。
cd C:\Whisper
.\whisper-env\Scripts\Activate.ps1
pip install -U openai-whisper
whisper --help でインストールを確認します。
6. Whisperをテストする。
*一旦ターミナル(Power Shell)を閉じた場合には再度ターミナルを立ち上げ以下を入力します。
cd C:\Whisper
.\whisper-env\Scripts\Activate.ps1
(whisper-env) PS C:\Whisper> となっているのを確認して下さい。
C:\Whisper\audio\の下に人間の音声ファイル(例test.wav )を置きます。
Test.wav ファイルはwavファイルをPCなどから探すかwavファイルを作ります。
以下のように入力します。C:\Whisper\audio\test.wavの場合
whisper "C:\Whisper\audio\test.wav" --model large-v3 --language Japanese --task transcribe --output_dir "C:\Whisper\result"
オプションは以下のとおりです。
-----------------------------------------------------
オプション 意味 指定例
--model 使用モデル --model large-v3
--language 音声の言語 --language ja
--task 文字起こし/英訳 --task transcribe
--output_format 出力形式 --output_format txt
--output_dir 結果の保存先 --output_dir "C:\wisper\result"
--device CPU/GPUの指定 --device cpu
--fp16 半精度計算の使用 --fp16 False
--verbose 認識経過を画面表示 --verbose False
*日本語音声の英訳 --task translate 英語の日本語訳は不可
テキストだけ欲しい場合は以下のように入力します。
whisper "C:\Whisper\audio\test.wav" --model large-v3 --language Japanese --task transcribe --output_format txt --output_dir "C:\Whisper\result"
*その他のオプションについてはこのページの最後にあります。
------------------------------------------------------
結果は C:\Whisper\resultTest.txtに保存されるので メモ帳などで開いて確認します。
C:\Whisper\resultには次のファイルが出来ます。
--------------------------------
拡張子 内容
.txt 文字起こし本文
.srt 動画字幕形式
.vtt Web字幕形式
.tsv 時刻情報付き表形式
.json 詳細な認識結果
------------------------------------
日本語の場合 かな漢変換されます。ただしファイルが大きいと相当時間がかかります。
処理を早くしたい場合には:
whisper "C:\Whisper\audio\test.wav" --model turbo --language ja --output_format txt --output_dir "C:\Whisper\result"
-上記のように -modelをturboかmidiumにします。
なお、FFmpegを使用しているためwavファイルのみならず、
非圧縮音声 .wav、.aiff
圧縮音声 .mp3、.m4a、.aac、.flac、.ogg、.opus、.wma
動画 .mp4、.mov、.mkv、.avi、.webm
をサポートしていますが、WER(Word Error Rate)やCER(Character Error Rate)を測定する場合はwavが良いようです。
-------Wisperのその他オプション---------------
その他オプション設定例
文字起こし本文だけが必要な場合 --output_format txt
字幕を作る場合 --output_format srt
すべて保存する場合 --output_format all
指定を省略した場合の初期値は all です。
【保存先の指定】
--output_dir "C:\wisper\result"
短縮形も使えます。 -o "C:\wisper\result"
保存先が存在しなければ、Whisperが作成します。
【CPU・GPUの指定】
自動選択
通常は指定不要です。CUDA対応GPUが利用可能ならGPU、それ以外はCPUが選ばれます。CPUを明示する --device cpu --fp16 False
完全な例:whisper "C:\wisper\audio\test.wav" --model large-v3 --language ja --device cpu --fp16 False
NVIDIA GPUを明示する --device cuda
whisper "C:\wisper\audio\test.wav" --model large-v3 --language ja --device cuda
GPUが使えるか確認するには次を実行します。
python -c "import torch; print(torch.cuda.is_available())"
TrueならGPUを利用できます。FalseならCPU動作です。
【画面表示を減らす】
通常は認識した文章や進行状況が表示されます。
表示を抑える場合:--verbose False
例:whisper "test.wav" --model large-v3 --language ja --verbose False
【専門用語や固有名詞を認識させる】
--initial_prompt "FreeDV、RADE、FARGAN、Codec2、SSB、アマチュア無線"
例:
whisper "C:\wisper\audio\test.wav" --model large-v3 --language ja --initial_prompt "FreeDV、RADE、FARGAN、Codec2、SSB、アマチュア無線" --output_format txt
* --initial_promptは、Whisperに「このような用語が出てきます」と教える機能です。
ただし、FreeDVのCER・WERを客観的に比較するときは、認識結果を有利に誘導する可能性があるため、原則として使用しない方がよいでしょう。
【前の文章を次の認識に利用する】
--condition_on_previous_text True
初期値は True です。前の30秒区間の認識結果を次の区間の手掛かりとして使います。
同じ語句を繰り返す、文章がループするなどの問題が起きる場合は、次を試します。
--condition_on_previous_text False
FreeDV、RADE、SSBの比較では、すべての音声に同じ設定を使用してください。
【単語ごとの時刻を取得する】
--word_timestamps True
例:
whisper "test.wav" --model large-v3 --language ja --word_timestamps True --output_format json
字幕で、発声中の単語を強調する場合:
--word_timestamps True --highlight_words True --output_format srt
ただし、日本語は単語の区切りが英語ほど明確ではないため、単語単位の時刻は参考値として扱うのがよいでしょう。
【字幕の行数や文字数を調整する】
これらは --word_timestamps True と一緒に使います。
オプション 意味
--max_line_width 30 1行の最大文字数
--max_line_count 2 1字幕の最大行数
--max_words_per_line 10 1行の最大単語数
--highlight_words True 発声中の単語を強調
例:
whisper "video.mp4" --model large-v3 --language ja --output_format srt --word_timestamps True --max_line_width 30 --max_line_count 2
【一部分だけ文字起こしする】
--clip_timestamps "開始秒,終了秒"
30秒から90秒まで処理する場合:--clip_timestamps "30,90"
例:whisper "test.wav" --model large-v3 --language ja --clip_timestamps "30,90"
複数区間も指定できます。
--clip_timestamps "0,30,60,90" これは「0~30秒」と「60~90秒」を処理する指定です。
【CPUの使用スレッド数】
--threads 8 CPU処理で使用するスレッド数を指定します。
whisper "test.wav" --model large-v3 --language ja --device cpu --fp16 False --threads 8
通常は 0、つまり自動設定のままで構いません。
【複数ファイルを一度に処理する】
入力ファイルを続けて並べます。
whisper "original.wav" "SSB.wav" "RADE.wav" --model large-v3 --language ja --output_format txt --output_dir "C:\wisper\result"
同じ実行条件で3ファイルを認識できるため、原音・SSB・RADEの比較に適しています。
ワイルドカードも使用できます。
whisper "C:\wisper\audio\*.wav" --model large-v3 --language ja --output_format txt --output_dir "C:\wisper\result"
【モデルの保存場所を指定する】
--model_dir "C:\wisper\models"
例:whisper "test.wav" --model large-v3 --model_dir "C:\wisper\models" --language ja
モデルを別のドライブに保存したい場合にも使えます。--model_dir "D:\WhisperModels"
【通常は変更しない高度な設定】
オプション 初期値 内容
--temperature 0 認識候補の選び方
--beam_size 5 ビーム探索の候補数
--best_of 5 0以外の場合の候補数
--patience なし ビーム探索の打ち切り調整
--length_penalty なし 認識文の長さに関する補正
--no_speech_threshold 0.6 無音と判定する基準
--logprob_threshold 1.0 認識失敗を判定する基準
--compression_ratio_threshold 2.4 異常な繰り返しを検出する基準
--suppress_tokens -1 出力させないトークン
--hallucination_silence_threshold なし 無音区間の誤認識抑制
これらは認識結果に大きく影響する可能性があるため、通常は初期値のまま使用します。
【用途別コマンド】
通常の日本語文字起こし
whisper "C:\wisper\audio\test.wav" --model large-v3 --language ja --task transcribe --output_format txt --output_dir "C:\wisper\result"
CPUだけで文字起こし
whisper "C:\wisper\audio\test.wav" --model large-v3 --language ja --device cpu --fp16 False --output_format txt --output_dir "C:\wisper\result"
高速なturboモデルを使用
whisper "C:\wisper\audio\test.wav" --model turbo --language ja --output_format txt --output_dir "C:\wisper\result"
SRT字幕を作成
whisper "C:\wisper\video\test.mp4" --model large-v3 --language ja --output_format srt --output_dir "C:\wisper\result"
FreeDV・SSB・原音を同じ条件で認識
whisper "C:\wisper\audio\original.wav" "C:\wisper\audio\SSB.wav" "C:\wisper\audio\RADE.wav" --model large-v3 --language ja --task transcribe --temperature 0 --output_format txt --output_dir "C:\wisper\result"
CER・WER比較では、次の条件を統一することが重要です。
同じWhisperモデル --language ja
同じ音量と録音形式
同じデコード設定
--initial_promptを使用しない
認識後に人手で誤字を修正しない
---------------------------------------------------------
なおPC(Windows)の音声を聞きながらwav録音するにはAudacity(無料)があります。
ダウンロードはhttps://forest.watch.impress.co.jp/library/software/audacity/です。
上のメニューのオーディオ設定→オーディオ設定から以下のように設定します
録音の入力はPCからの音であれば今聞いているスピーカーなどを設定します。
使用時にはマイクレベルを上げる必要があるようです。0dbまで上げてみました。
右側のスライドバーで調整できます。以下のないようでも調整できます。
録音を確認します。
wavファイルに書き出します。
なお、全体を保存する場合はファイル保存で保存できます。
Audacityにはノイズ発生機能などもあるようです。
----------------------------------------------------------------
FreeDVのWhisperによる音声評価は以下の内容に注意する必要があります。
参照 https://jk1gpc.blogspot.com/2026/09/freedv_0435876116.html
特に日本語では以下の注意が必要です。このWhisperではかな漢変換されてしまいます。
かな漢変換をオフするオプションがあればよいのですが、、またCERを計算してくれると助かります。
「かなCER」について
通常の漢字混じりCERでは、音として正しく認識していても表記の違いで誤りになります。
例:
- 正解:大分県から送信しています
- 認識:おおいたけんから送信しています
聴覚的には正解ですが、そのまま文字比較すると誤りが増えます。そのため、正解文と認識文を次のように統一してからCERを求めます。
- 漢字を読み仮名に変換
- カタカナをひらがなに統一
- 数字を読み方に変換
- 全角・半角を統一
- 空白・句読点・記号を削除
この方法を、ここでは**かなCER(読みベースCER)**と呼びます。
- :置換された文字数
- :削除された文字数
- :挿入された文字数
- :正解文の文字数
値が低いほど良好です。






コメント
コメントを投稿