ローカルにWhisperをインストール(文字起こし、無料)

文字起こしができるWhisperをインストールします。自分のPC(ローカル環境)で無料で使用することができます。Whisperは、OpenAIが開発した高度な音声認識モデルであり、音声をテキストに変換することができます。Whisperを使用する主なシナリオは以下の通りです。

  1. 会議や講義の文字起こし: 会議や講義の音声をテキストに変換し、後で参照できるようにするために使用できます。
  2. 字幕生成: 動画やオーディオコンテンツに字幕を追加する際に利用できます。これは、聴覚障害者や異なる言語の話者にコンテンツをアクセスしやすくするために特に有用です。
  3. 音声コマンドの処理: 音声認識を使用してユーザーの音声コマンドを解析し、対応するアクションを実行するために使用できます。
  4. インタビューの記録: ジャーナリストや研究者が行うインタビューの音声を文字に変換するために使用できます。
  5. リアルタイム通訳: 異なる言語間でのコミュニケーションを支援するために、リアルタイムでの翻訳に使用できます。
  6. 音声メモのテキスト化: 個人的な音声メモやアイディアをテキストに変換して、後で検索しやすくするために使用できます。
  7. 法的、医療的記録の作成: 法的または医療的な環境での会話を記録し、文書化するために使用できます。
  8. ポッドキャストやオーディオブックの文字化: ポッドキャストやオーディオブックの内容をテキスト形式で提供するために使用できます。

Whisperは、その精度と多言語対応の能力により、多様な状況で有用です。特に、迅速で正確な文字起こしを必要とする場面での使用に適しています。以下のページを参考に作業をします。

https://github.com/jhj0517/Whisper-WebUI

Windowsにインストールするときの、必要な要件が記述されています。これらをインストールしておきます。

Windows版Git
Python(version 3.8 ~ 3.10)
FFmpeg

https://minokamo.tokyo/2023/09/02/6129/

まずは、コマンドプロンプトを起動して適当なディレクトリに移動します(わかりやすくするため)。このディレクトリでクローンを作成します。

cd
cd youtube
git clone https://github.com/jhj0517/Whisper-WebUI.git

クローンを作成すると、Whisper-WebUIというディレクトリが作成されているはずなので、そこへ移動します。

cd Whisper-WebUI

このディレクトリ内にGitHubと同様な内容があるので、バッチファイルを実行することでWhisperをインストールすることができます。

Install.bat

このバッチファイルの内容をみると、pythonの仮想環境(venv)を作成するので、パソコンがぐちゃぐちゃになることはありません。以下は各ステップの詳細です。

  1. @echo off: このコマンドは、バッチファイルの実行中にコマンド自体がコンソールに表示されないようにします。
  2. if not exist “%~dp0venvScripts": この条件文は、venvScripts フォルダが存在するかどうかを確認します。%~dp0 はバッチファイル自体が存在するディレクトリを指します。
  3. python -m venv venv: もし venvScripts フォルダが存在しない場合、このコマンドは新しいPython仮想環境(venv)を作成します。
  4. echo checked the venv folder. now installing requirements..: 仮想環境のチェックが完了したことをユーザーに通知します。
  5. cd /d “%~dp0venvScripts" と call activate.bat: これらのコマンドは、作成した仮想環境をアクティベートします。
  6. cd /d “%~dp0" と pip install -r requirements.txt: バッチファイルが存在するディレクトリに戻り、requirements.txt ファイルに記載された依存関係をインストールします。
  7. if errorlevel 1: この条件文は、pip install コマンドがエラーで終了したかどうかを確認します。エラーがある場合、ユーザーに仮想環境を削除して install.bat を再実行するよう促します。エラーがない場合は、依存関係が正常にインストールされたことを通知します。
  8. pause: このコマンドは、ユーザーが何かキーを押すまでスクリプトの実行を停止します。

要するに、このスクリプトはPythonプロジェクトのセットアップを容易にするために使用され、仮想環境の作成と必要な依存関係のインストールを自動化します。

Pythonの仮想環境についても説明します。

Pythonの仮想環境は、特定のプロジェクトに必要なPythonのバージョンやパッケージを管理するための独立した環境です。この仮想環境を使用することで、異なるプロジェクト間での依存関係の衝突を避けることができます。つまり、一つのシステム上で複数のプロジェクトを同時に開発する場合に、それぞれのプロジェクトが必要とする特定のライブラリやモジュールのバージョンを独立して管理できるのです。

仮想環境を使用する主な利点は以下の通りです。

  1. 依存関係の分離: 異なるプロジェクトで異なるバージョンのライブラリを使うことができ、プロジェクト間の干渉を防げます。
  2. 安全な実験: 新しいパッケージやアップデートをテストする際に、システム全体に影響を与えることなく安全に実験できます。
  3. 簡単な依存関係管理: requirements.txtのようなファイルでプロジェクトの依存関係を管理し、他の開発者と簡単に共有できます。
  4. 本番環境との一貫性: 開発環境と本番環境間での環境差異を最小限に抑えることができます。

Pythonで仮想環境を作成するには、venv(Python 3.3以降で標準搭載されている)やvirtualenv(より古いバージョンのPythonまたは追加機能が必要な場合に使用)などのツールを使用します。これらのツールにより、プロジェクトごとに独立したPythonの実行環境を簡単に設定し、管理することができます。

次に、以下のバッチファイルも実行します。このバッチファイルの主な目的は、特定の仮想環境内の Python インタープリターを使用して app.py スクリプトを実行することです。

start-webui.bat
  1. @echo off コマンド: これにより、以降のコマンド実行時にコマンド自体が画面に表示されなくなります。
  2. goto :activate_venv コマンド: このコマンドはバッチファイルの制御を :activate_venv ラベルに移します。
  3. :launch ラベル: ここでは %PYTHON% 変数に保存された Python インタープリターを使用して app.py というPythonスクリプトを実行します。%* はコマンドライン引数を app.py に渡すために使用されます。pause コマンドによりスクリプト実行後にプロンプトが停止します。
  4. :activate_venv ラベル: ここでは PYTHON 環境変数に仮想環境内の Python インタープリターのパスが設定されます。"%~dp0venvScriptsPython.exe" は、バッチファイルが存在するディレクトリ内の仮想環境にある Python インタープリターへのパスです。次に echo コマンドで現在使用している Python インタープリターのパスを表示し、goto :launch で制御を :launch ラベルに移します。
  5. :endofscript ラベル: このラベルは実際には使用されていませんが、スクリプトの終了またはエラー時にメッセージを表示してプログラムを一時停止するために使用することができます。

プロセスが終了した後にユーザーが結果を確認できるように一時停止します。これでブラウザでアクセスできます。

http://127.0.0.1:7860

それでは音声ファイルをアップロードして動作確認しましょう。音声が含まれていればいいので、ヴォーカル入りの音楽でもいいです。正常に歌詞が表示されました。次に、動画ファイルに含まれる音声を文字起こしします。目的は字幕を作成することです。フォーマット形式をSRTにすることで、簡単に動画に字幕を付けることができます。

SRT(SubRip Text)ファイルフォーマットは、映画やビデオの字幕を保存するために使用される非常にシンプルなテキストベースのフォーマットです。SRTファイルは、字幕のテキストとそれが表示されるべき時間を定義します。

SRTファイルの基本的な構造は次のようになっています:

  1. 連番: 各字幕の開始には、1から始まる連続する番号が付けられます。
  2. 時間コード: 字幕が表示される時間と消える時間を示します。このフォーマットは通常 時:分:秒,ミリ秒 --> 時:分:秒,ミリ秒 となります。例えば 00:01:20,000 --> 00:01:22,000 は、1分20秒に始まり1分22秒に終わる字幕を意味します。
  3. 字幕テキスト: 時間コードの直後に配置されます。これは画面に表示されるテキストです。
  4. 空行: 各字幕セクションは空行で区切られます。

SRTファイルの例

1
00:00:20,000 --> 00:00:24,400
Hello, welcome to the movie.

2
00:00:24,600 --> 00:00:27,800
This is a subtitle example.

3
00:00:28,000 --> 00:00:31,150
Thank you for watching.

この例では、3つの異なる字幕があり、それぞれが指定された時間に表示されます。SRTファイルはテキストエディタで編集でき、多くのビデオプレーヤーや編集ソフトウェアでサポートされています。

PowerDirectorでもサポートされているので、実際に字幕を挿入してみます。もっとも最新のPowerDirectorにはAI自動文字起こし機能が付いています。

長すぎて表示できないところは自分で修正する必要があるものの、誤字脱字はほとんどありませんでした。有料なサービスがありますが、これで事足ります。無料でここまでできれば、満足できます。さらに、youtube動画のURLを入力することで、文字起こしもできます。翻訳機能も付いているので、英語にしたりすることもできます。

Uncategorized

Posted by mamu