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(パイソン)をインストールする。








まずPythonを https://www.python.org/downloads/windows/ からインストールします。バージョンは少し古い3.11.7をインストールしました。

インストール画面で"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)**と呼びます。

CER=(S+D+I)/N

  • SS:置換された文字数
  • DD:削除された文字数
  • II:挿入された文字数
  • NN:正解文の文字数

値が低いほど良好です。




コメント

このブログの人気の投稿

WSJT-X Improved v2.8.0がリリースされました!

WWAコンテストって?