Whisper のインストール,Whisper を使う Python プログラム(音声からの文字起こし,翻訳)(Python,PyTorch を使用)(Windows 上)
【目次】
Whisper
Whisperは,音声からの文字起こし,翻訳を行うモデルである.データセット固有のファインチューニングを行わなくても,ゼロショットで既存のデータセットに適用でき,高品質な結果が得られることを特徴とする.
【文献】
Alec Radford, Jong Wook Kim, Tao Xu, Greg Brockman, Christine McLeavey, Ilya Sutskever, Robust Speech Recognition via Large-Scale Weak Supervision, arXiv:2212.04356, 2022.
https://cdn.openai.com/papers/whisper.pdf
【サイト内の関連ページ】
- マイクに話しかけた言葉を,リアルタイムにAIが認識(whisper, whisper_mic, Python を使用)(Windows 上)別ページ »で説明
【関連する外部ページ】
- Paper with Code のページ: https://paperswithcode.com/paper/robust-speech-recognition-via-large-scale-1
- Introducing Whisper のページ: https://openai.com/index/whisper/
- GitHub のページ: https://github.com/openai/whisper
【関連項目】 mallorbc の whisper_mic
前準備
Build Tools for Visual Studio 2022 (ビルドツール for Visual Studio 2022)または Visual Studio 2022 のインストール(Windows 上)
Build Tools for Visual Studio
Build Tools for Visual Studio は,Visual Studio の IDE を含まない C/C++ コンパイラ,ライブラリ,ビルドツール等のコマンドライン向け開発ツールセットである。
Visual Studio
Visual Studio は統合開発環境であり,Build Tools for Visual Studio と連携して使用する。
Build Tools for Visual Studio 2022 のインストール(Windows 上)
以下のコマンドを管理者権限のコマンドプロンプトで実行する
(手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。
REM VC++ ランタイム
winget install --scope machine --id Microsoft.VCRedist.2015+.x64 -e --silent --disable-interactivity --force --accept-source-agreements --accept-package-agreements --override "/quiet /norestart"
REM Build Tools + Desktop development with C++(VCTools)+ 追加コンポーネント(一括)
winget install --id Microsoft.VisualStudio.2022.BuildTools --accept-source-agreements --accept-package-agreements ^
--override "--passive --wait --norestart --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended --add Microsoft.VisualStudio.Component.VC.Llvm.Clang --add Microsoft.VisualStudio.ComponentGroup.ClangCL --add Microsoft.VisualStudio.Component.VC.CMake.Project --add Microsoft.VisualStudio.Component.Windows11SDK.26100"
--add で追加されるコンポーネント
上記のコマンドでは,まず Build Tools 本体と Visual C++ 再頒布可能パッケージをインストールし,次に setup.exe を用いて以下のコンポーネントを追加している。
VCTools:C++ デスクトップ開発ワークロード(--includeRecommendedにより、MSVC コンパイラ、C++ AddressSanitizer、vcpkg、CMake ツール、Windows 11 SDK 等の推奨コンポーネントが含まれる)VC.Llvm.Clang:Windows 向け C++ Clang コンパイラClangCL:clang-cl ツールセットを含むコンポーネントグループ(MSBuild から Clang を使用するために必要)VC.CMake.Project:Windows 向け C++ CMake ツールWindows11SDK.26100:Windows 11 SDK(ビルド 10.0.26100)
インストール完了の確認
winget list Microsoft.VisualStudio.2022.BuildTools
上記以外の追加のコンポーネントが必要になった場合は Visual Studio Installer で個別にインストールできる。
Visual Studio Community 2022 の追加インストール(Windows 上)
Build Tools では対応できないケースもある。
- GUI でのコード編集、デバッグ、プロファイリングを行いたい
- C++/CLI による .NET との相互運用開発を行いたい
- NuGet パッケージマネージャーを GUI で使用したい
その場合は Build Tools の環境に Visual Studio Community 2022 を追加インストールできる。
以下のコマンドの実行前に、Build Tools for Visual Studio 2022 のインストールを終えておくこと。
以下のコマンドを管理者権限のコマンドプロンプトで実行する
(手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。
winget install --scope machine --accept-source-agreements --accept-package-agreements Microsoft.VisualStudio.2022.Community --override "--quiet --add Microsoft.VisualStudio.Workload.NativeDesktop Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core Microsoft.VisualStudio.Component.VC.CLI.Support Microsoft.VisualStudio.Component.CoreEditor Microsoft.VisualStudio.Component.NuGet Microsoft.VisualStudio.Component.Roslyn.Compiler Microsoft.VisualStudio.Component.TextTemplating Microsoft.VisualStudio.Component.Windows11SDK.26100 Microsoft.VisualStudio.Component.VC.Tools.x86.x64 Microsoft.VisualStudio.Component.VC.ATL Microsoft.VisualStudio.Component.VC.ATLMFC Microsoft.VisualStudio.Component.VC.Llvm.Clang Microsoft.VisualStudio.Component.VC.Llvm.ClangToolset Microsoft.VisualStudio.Component.VC.CMake.Project Microsoft.VisualStudio.Component.VC.ASAN Microsoft.VisualStudio.Component.Vcpkg"
Visual Studio Community は無償だが、企業利用にはライセンス条件(個人開発者、オープンソース開発、学術研究、小規模組織に限定)があり、条件を満たさない場合は Professional 以上のエディションが必要となる。
Python 3.12 のインストール
Pythonのインストールを行い、Pythonのプログラムを実行する環境を整える。扱う環境は、Windows搭載パソコンである。金子研究室では、Python 3.12.10を推奨する。
[Windows での Python 3.12 のインストール手順を見るには、ここをクリック]
Windows での Python 3.12 のインストール
以下のいずれかの方法でPython 3.12をインストールする。Pythonがインストール済みの場合、この手順は不要である。
方法 1:winget によるインストール
【インストールコマンドの実行方法】
管理者権限でコマンドプロンプトを起動する(手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。そして、コマンド全体をコマンドプロンプトにコピー&ペーストする。
--scope machine を指定することで、システム全体(全ユーザー向け)にインストールされる。このオプションの実行には管理者権限が必要である。インストール完了後、コマンドプロンプトを再起動するとPATHが反映される。
REM Python 3.12 をシステム領域にインストール
winget install --id Python.Python.3.12 -e --scope machine --silent --accept-source-agreements --accept-package-agreements --override "/quiet InstallAllUsers=1 PrependPath=1 Include_test=0 Include_pip=1 Include_launcher=1 InstallLauncherAllUsers=1 TargetDir=\"C:\Program Files\Python312\""
if errorlevel 1 ( echo [エラー] Python 3.12 のインストールに失敗しました & pause )
REM Python と Scripts を PATH 先頭に追加
powershell -NoProfile -Command "$p='C:\Program Files\Python312'; $s=\"$p\Scripts\"; if(Test-Path $p){$k=[Microsoft.Win32.Registry]::LocalMachine.OpenSubKey('SYSTEM\CurrentControlSet\Control\Session Manager\Environment',$true); $c=$k.GetValue('Path','',[Microsoft.Win32.RegistryValueOptions]::DoNotExpandEnvironmentNames); $t=$k.GetValueKind('Path'); $new=$c; if((';'+$new+';') -notlike \"*;$p;*\"){$new=$p+';'+$new}; if((';'+$new+';') -notlike \"*;$s;*\"){$new=$s+';'+$new}; if($new -ne $c){$k.SetValue('Path',$new,$t)}; $k.Close()}"
REM 現在のセッションにも反映(システムPATHを再取得して連結)
for /f "usebackq tokens=2,*" %A in (`reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path`) do set "PATH=%B"
REM pip / wheel の更新
python -m pip install --no-user -U pip wheel
if errorlevel 1 ( echo [エラー] pip / wheel の更新に失敗しました & pause )
方法 2:インストーラーによるインストール
- Python公式サイト(https://www.python.org/downloads/)にアクセスし、「Download Python 3.x.x」ボタンからWindows用インストーラーをダウンロードする。
- ダウンロードしたインストーラーを実行する。
- 初期画面の下部に表示される「Add python.exe to PATH」にチェックを入れてから「Customize installation」を選択する。このチェックを入れ忘れると、コマンドプロンプトから
pythonコマンドを実行できない。 - 「Install Python 3.xx for all users」にチェックを入れ、「Install」をクリックする。
インストールの確認
コマンドプロンプトで以下を実行する。
python --version
バージョン番号(例:Python 3.12.x)が表示されればインストール成功である。「'python' は、内部コマンドまたは外部コマンドとして認識されていません。」と表示される場合は、インストールが正常に完了していない。
Git のインストール(Windows 上) [クリックして展開]
管理者権限のコマンドプロンプトで以下を実行する.管理者権限は,winget の --scope machine オプションでシステム全体にインストールするために必要となる.
REM Git をシステム領域にインストール
winget install --scope machine --id Git.Git -e --silent --disable-interactivity --force --accept-source-agreements --accept-package-agreements --override "/VERYSILENT /NORESTART /NOCANCEL /SP- /CLOSEAPPLICATIONS /RESTARTAPPLICATIONS /COMPONENTS=""icons,ext\reg\shellhere,assoc,assoc_sh"" /o:PathOption=Cmd /o:CRLFOption=CRLFCommitAsIs /o:BashTerminalOption=MinTTY /o:DefaultBranchOption=main /o:EditorOption=VIM /o:SSHOption=OpenSSH /o:UseCredentialManager=Enabled /o:PerformanceTweaksFSCache=Enabled /o:EnableSymlinks=Disabled /o:EnableFSMonitor=Disabled"
Build Tools for Visual Studio 2022,NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.8,NVIDIA cuDNN 8.9.7 のインストール(Windows 上)
【サイト内の関連ページ】 NVIDIA グラフィックスボードを搭載しているパソコンの場合には, NVIDIA ドライバ, NVIDIA CUDA ツールキット, NVIDIA cuDNN のインストールを行う.
- Windows での Build Tools for Visual Studio 2022 のインストール: 別ページ »で説明
- Windows での NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.8,NVIDIA cuDNN v8.9.7 のインストール手順: 別ページ »で説明
【関連する外部ページ】
- Build Tools for Visual Studio 2022 (ビルドツール for Visual Studio 2022)の公式ダウンロードページ: https://visualstudio.microsoft.com/ja/visual-cpp-build-tools/
- NVIDIA ドライバのダウンロードの公式ページ: https://www.nvidia.co.jp/Download/index.aspx?lang=jp
- NVIDIA CUDA ツールキットのアーカイブの公式ページ: https://developer.nvidia.com/cuda-toolkit-archive
- NVIDIA cuDNN のダウンロードの公式ページ: https://developer.nvidia.com/cudnn
PyTorch のインストール(Windows 上)
Windows 環境に PyTorch をインストールする手順を説明する.pip を使用する方法と,Miniconda (conda) を使用する方法がある.
1. 実行前の準備
- 管理者権限でのコマンドプロンプト/Miniconda Prompt 起動:
インストールコマンドは管理者権限のコマンドプロンプトまたは Miniconda Prompt で実行する. - Python 環境:
システムに Python がインストールされ,pip または Miniconda (conda) が利用可能な状態であることを確認する. - NVIDIA CUDA Toolkit (GPU版を利用する場合):
PyTorch で NVIDIA GPU を利用する場合は,対応する GPU と,適切なバージョンの NVIDIA CUDA Toolkit が事前にインストールされている必要がある.- CUDA バージョンの確認: コマンドプロンプト等で
nvcc --versionを実行し,バージョンを確認する(この例では CUDA 11.8 がインストール済みであるとする). - 互換性の確認: インストールする PyTorch と互換性のある CUDA バージョンを PyTorch 公式サイトで確認する.
- CUDA バージョンの確認: コマンドプロンプト等で
2. PyTorch 公式サイトでのコマンド確認
PyTorch のインストールコマンドは,OS,パッケージ管理ツール (pip/conda),Python バージョン,CUDA バージョンによって異なる.環境に合ったインストールコマンドは,以下の PyTorch 公式サイトで確認する.
- PyTorch 公式サイト (インストールページ): https://pytorch.org/get-started/locally/
以下に示すコマンドは,CUDA 11.8 の環境における一例である.
3. pip を使用したインストール
Python 標準のパッケージ管理ツール pip を使用する方法である.
(1) pip の更新(任意)
python -m pip install --upgrade pip
(2) 既存の PyTorch 関連パッケージのアンインストール(推奨)
古いバージョンがインストールされている場合に実行する.
python -m pip uninstall torch torchvision torchaudio
# 必要に応じて torchtext, xformers などもアンインストール
# python -m pip uninstall torchtext xformers
(3) PyTorch のインストール
公式サイトで生成したコマンドを使用する.以下は CUDA 11.8 環境向けの一例である.
# 公式サイトで取得した pip install コマンドを実行
# 例 (CUDA 11.8):
python -m pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
(4) インストールの確認
python -c "import torch; print(f'PyTorch Version: {torch.__version__}'); print(f'CUDA Available: {torch.cuda.is_available()}')"
CUDA Available: True と表示されれば,GPU が正しく認識されている(GPU 環境の場合).
4. Miniconda (conda) を使用したインストール
データサイエンス環境構築によく使われる Miniconda (または Anaconda) を使用している場合は,conda コマンドでもインストールできる.
conda 環境では,PyTorch のような複雑な依存関係を持つライブラリの場合,pip よりも依存関係の問題が発生することがある.問題が発生した場合は,pip を使用したインストール(セクション3)を試す.
(1) Miniconda Prompt (または Anaconda Prompt) の起動
管理者権限で Miniconda Prompt を起動する.
(2) PyTorch のインストール
公式サイトで Package に Conda を選択し,生成されたコマンドを使用する.以下は CUDA 11.8 環境向けの一例である.
# 公式サイトで取得した conda install コマンドを実行
# 例 (CUDA 11.8):
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
-c pytorch -c nvidia は,PyTorch と NVIDIA の公式 conda チャネルを指定している.
(3) インストールの確認
python -c "import torch; print(f'PyTorch Version: {torch.__version__}'); print(f'CUDA Available: {torch.cuda.is_available()}')"
関連情報
【サイト内の関連ページ】
【関連する外部ページ】
- PyTorch 公式サイト (インストール): https://pytorch.org/get-started/locally/
- PyTorch 公式サイト (トップ): https://pytorch.org/
Whisper のインストール(Windows 上)
FFmpeg のインストール(Windows 上)
Windows での FFmpeg のインストール(Windows 上): 別ページ »で説明
Whisper 本体のインストール(Windows 上)
- 以下の手順を管理者権限のコマンドプロンプトで実行する
(手順:Windowsキーまたはスタートメニュー →
cmdと入力 → 右クリック → 「管理者として実行」)。 - Whisper本体をインストールする.FFmpeg のインストールも別途必要である.
python -m pip install -U openai-whisper
- (オプション)動作確認用ファイルの準備
ホームディレクトリに移動する.
cd /d c:%HOMEPATH%以前に同じ名前の 'whisper' ディレクトリが存在する場合は,以下のコマンドで削除する.(このコマンドは 'whisper' フォルダとその中身を完全に削除する)
rmdir /s /q whisper公式リポジトリをクローンする.
git clone --recursive https://github.com/openai/whisper.git
コマンドラインでのWhisperの基本的な使い方
インストール完了後,コマンドラインから Whisper を使用する.(オプションで)ダウンロードしたテスト用音声ファイル(jfk.flac)を使って,文字起こしを行う.
基本的なコマンドの書式は以下の通りである.
whisper <音声ファイルパス> --model <モデルサイズ> --language <言語>
- <音声ファイルパス>:文字起こししたい音声ファイルのパスを指定する(例:
%HOMEPATH%\whisper\tests\jfk.flac).MP3, WAV, M4A, MP4 など様々な形式に対応している. - --model <モデルサイズ>:使用するモデルのサイズを指定する.
tiny,base,small,medium,large(large-v2,large-v3などの版もある)から選択する.モデルが大きいほど精度は高くなるが,計算リソース(メモリ,時間)も多く必要になる.tiny.en,base.en,small.en,medium.enといった英語専用モデルもある. - --language <言語>:音声の言語を指定する(例:
English,Japanese).指定しない場合は自動検出されるが,明示的に指定する方が確実である.Chinese,German,Spanish,Russian,Korean,Frenchなど多数の言語に対応している.
- 次のコマンドを実行して文字起こしを行う.
実行すると,文字起こし結果がコンソールに表示され,同時に音声ファイルと同じディレクトリにテキストファイル(
.txt,.vtt,.srtなど)としても保存される.smallモデル, English で実行する場合:
whisper %HOMEPATH%/whisper/tests/jfk.flac --model small --language English
largeモデル, Japanese で実行する場合(日本語音声ファイルを使用):
whisper <日本語音声ファイルのパス> --model large --language Japanese - (補足)音声ファイルの再生
コマンドプロンプトで以下のようにパスを指定して実行すると,関連付けられたアプリケーションで音声ファイルが再生される(環境による).エクスプローラーでファイルを直接ダブルクリックして再生することもできる.
%HOMEPATH%\whisper\tests\jfk.flac
Python プログラムからの Whisper 利用
コマンドラインだけでなく,PythonスクリプトからWhisperライブラリを直接利用することも可能である.ここでは,ファイル選択ダイアログで選んだ複数の音声ファイルを順番に文字起こしする例を示す.
- Pythonスクリプトの作成
作業用のディレクトリに移動し,テキストエディタでPythonスクリプトファイルを作成する.ここでは例として,先ほど
git cloneしたwhisperディレクトリ内にsmall.pyという名前で作成する.Windows で コマンドプロンプト を起動し,以下を実行する.
cd /d c:%HOMEPATH%\whisper notepad small.py
- プログラムコードの入力
開いたエディタ(メモ帳)に,以下のPythonコードを入力して保存する.
このプログラムは,公式の GitHub のページ: https://github.com/openai/whisperで公開されているサンプルコードを参考に,ファイル選択機能などを追加したものである.
import whisper # 使用するモデルをロード(初回はダウンロードが実行される) # "tiny", "base", "small", "medium", "large"などを指定可能 model = whisper.load_model("small") # ファイル選択ダイアログ表示のためのライブラリをインポート import tkinter as tk from tkinter import filedialog # ファイル選択ダイアログの準備 root = tk.Tk() root.withdraw() # 空のTkinterウィンドウを非表示にする # ファイル選択ダイアログを開き、複数選択を可能にする fpaths = filedialog.askopenfilenames() # 選択された各ファイルに対して処理を実行 for fpath in root.tk.splitlist(fpaths): print("Processing file: ", fpath) # 文字起こしを実行(言語を日本語に指定) # 必要に応じて language="english" などに変更 result = model.transcribe(fpath, language="japanese") # 結果のテキスト部分を表示 print("Transcription:") print(result["text"]) print("-" * 20) # ファイルごとの区切り線コードの説明:
import whisper: Whisperライブラリを使えるようにする.model = whisper.load_model("small"): 使用するWhisperモデル(ここでは "small")をメモリに読み込む.指定したモデルがローカルにない場合,自動的にダウンロードされる.import tkinter ...: ファイル選択ダイアログを表示するための準備である.Pythonの標準ライブラリを使用している.fpaths = filedialog.askopenfilenames(): ファイル選択ダイアログを表示し,選択されたファイル(複数可)のパスを取得する.for fpath in ...: 選択されたファイルパスのリストを一つずつ取り出し,ループ処理を行う.result = model.transcribe(fpath, language="japanese"): 各ファイルパス(fpath)をWhisperのtranscribeメソッドに渡し,文字起こしを実行する.ここでは言語を日本語(language="japanese")に指定しているが,英語の場合はlanguage="english"などと指定する.言語を指定しない場合は自動検出される.print(result["text"]): 文字起こし結果(辞書形式)の中から,テキスト部分("text")を取り出してコンソールに出力する.
- Python プログラムの実行
作成したPythonスクリプトを実行するには,コマンドプロンプトでスクリプトを保存したディレクトリ(この例では
c:%HOMEPATH%\whisper)にいることを確認し,以下のコマンドを実行する.python small.pyコマンドを実行するとファイル選択ダイアログが表示されるので,文字起こししたい音声ファイルを選択する(Ctrlキーを押しながらクリックすると複数選択できる).
Python実行環境について:- Windows では python コマンドを使用する(Python ランチャーの py コマンドも利用可能である).
- Ubuntu などのLinux環境やmacOSでは python3 コマンドを使用する.
Python のより詳しい情報: 別ページ »
- 実行結果の確認
ファイル選択後,選択されたファイルの処理が順番に行われ,完了すると各ファイルの文字起こし結果がコマンドプロンプトの画面に出力される.