Whisper のインストール,Whisper を使う Python プログラム(音声からの文字起こし,翻訳)(Python,PyTorch を使用)(Windows 上)

要約】 Whisperは,音声からの文字起こしや翻訳に使用されるモデルである.Windows へのインストールと動作確認の手順,Pythonプログラムによる実行方法を説明する.

目次

  1. 前準備
  2. Whisper のインストール(Windows 上)
  3. Whisper の動作確認(Windows 上)
  4. Whisper を使う Python プログラムの実行(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

サイト内の関連ページ

関連する外部ページ

関連項目mallorbc の whisper_mic

前準備

Build Tools for Visual Studio 2022 (ビルドツール for Visual Studio 2022)または Visual Studio 2022 のインストール(Windows 上)

CUDAツールキットは、GPU上でコードをコンパイルするためにC++コンパイラを必要とする。そのため、事前にMicrosoft C++ Build Tools または Visual Studio (C++開発ワークロードを含む) をインストールしておく必要がある。

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 を用いて以下のコンポーネントを追加している。

インストール完了の確認

winget list Microsoft.VisualStudio.2022.BuildTools

上記以外の追加のコンポーネントが必要になった場合は Visual Studio Installer で個別にインストールできる。

Visual Studio Community 2022 の追加インストール(Windows 上)

Build Tools では対応できないケースもある。

その場合は 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:インストーラーによるインストール

  1. Python公式サイト(https://www.python.org/downloads/)にアクセスし、「Download Python 3.x.x」ボタンからWindows用インストーラーをダウンロードする。
  2. ダウンロードしたインストーラーを実行する。
  3. 初期画面の下部に表示される「Add python.exe to PATH」にチェックを入れてから「Customize installation」を選択する。このチェックを入れ忘れると、コマンドプロンプトから python コマンドを実行できない。
  4. 「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 のインストールを行う.

関連する外部ページ

PyTorch のインストール(Windows 上)

Windows 環境に PyTorch をインストールする手順を説明する.pip を使用する方法と,Miniconda (conda) を使用する方法がある.

1. 実行前の準備

2. PyTorch 公式サイトでのコマンド確認

PyTorch のインストールコマンドは,OS,パッケージ管理ツール (pip/conda),Python バージョン,CUDA バージョンによって異なる.環境に合ったインストールコマンドは,以下の PyTorch 公式サイトで確認する

以下に示すコマンドは,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()}')"

関連情報

サイト内の関連ページ

関連する外部ページ

Whisper のインストール(Windows 上)

FFmpeg のインストール(Windows 上)

Windows での FFmpeg のインストール(Windows 上): 別ページ »で説明

Whisper 本体のインストール(Windows 上)

  1. 以下の手順を管理者権限コマンドプロンプトで実行する (手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。
  2. Whisper本体をインストールする.FFmpeg のインストールも別途必要である.
    python -m pip install -U openai-whisper
    
  3. (オプション)動作確認用ファイルの準備

    ホームディレクトリに移動する.

    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 <言語>

  1. 次のコマンドを実行して文字起こしを行う.

    実行すると,文字起こし結果がコンソールに表示され,同時に音声ファイルと同じディレクトリにテキストファイル(.txt, .vtt, .srtなど)としても保存される.

    smallモデル, English で実行する場合:

    whisper %HOMEPATH%/whisper/tests/jfk.flac --model small --language English
    

    largeモデル, Japanese で実行する場合(日本語音声ファイルを使用):

    whisper <日本語音声ファイルのパス> --model large --language Japanese
    
  2. (補足)音声ファイルの再生

    コマンドプロンプトで以下のようにパスを指定して実行すると,関連付けられたアプリケーションで音声ファイルが再生される(環境による).エクスプローラーでファイルを直接ダブルクリックして再生することもできる.

    %HOMEPATH%\whisper\tests\jfk.flac
    

Python プログラムからの Whisper 利用

コマンドラインだけでなく,PythonスクリプトからWhisperライブラリを直接利用することも可能である.ここでは,ファイル選択ダイアログで選んだ複数の音声ファイルを順番に文字起こしする例を示す.

  1. Pythonスクリプトの作成

    作業用のディレクトリに移動し,テキストエディタでPythonスクリプトファイルを作成する.ここでは例として,先ほど git clone した whisper ディレクトリ内に small.py という名前で作成する.

    Windowsコマンドプロンプト を起動し,以下を実行する.

    cd /d c:%HOMEPATH%\whisper
    notepad small.py
    
  2. プログラムコードの入力

    開いたエディタ(メモ帳)に,以下の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")を取り出してコンソールに出力する.
  3. Python プログラムの実行

    作成したPythonスクリプトを実行するには,コマンドプロンプトでスクリプトを保存したディレクトリ(この例では c:%HOMEPATH%\whisper)にいることを確認し,以下のコマンドを実行する.

    python small.py
    

    コマンドを実行するとファイル選択ダイアログが表示されるので,文字起こししたい音声ファイルを選択する(Ctrlキーを押しながらクリックすると複数選択できる).

    Python実行環境について:

    • Windows では python コマンドを使用する(Python ランチャーpy コマンドも利用可能である).
    • Ubuntu などのLinux環境やmacOSでは python3 コマンドを使用する.

    Python のより詳しい情報: 別ページ »

  4. 実行結果の確認

    ファイル選択後,選択されたファイルの処理が順番に行われ,完了すると各ファイルの文字起こし結果がコマンドプロンプトの画面に出力される.