議事録作成GPTsを構築するにあたって音声データからの文字起こしの手段としてOpenAIのWhisperについて調査しました。Whisperについて解説します。
Whisperとは?
OpenAIが提供する音声認識モデルです。音声データを入力として文字起こしや翻訳を行う事ができます。API呼び出しのほかにオープンソースバージョンが提供されています。
Whisperのインストール
Windowsのオープンソース版のインストール方法は以下の通りです。
ffmpegのインストール
公式ページからffmpegをダウンロードして任意のフォルダに解凍します。インストールディレクトリのbinにpathを通しておきます。
Whisperのインストール
Pythonの仮想環境を構築し、以下のコマンドでインストールします。numpyがv2だと動かなかったのでダウングレードしています。
pip install -U openai-whisper
pip install numpy==1.26.4
動作確認
Whisperをインストールした仮想環境をアクティベイトして以下のコマンドを実行して文字起こしされればOKです。
whisper hoge.mp3
Detected language: Japanese
[00:00.000 –> 00:01.120] 私は山田です
出力結果
以下5つのファイルが出力されます。
- txt: 単純に文字起こしした結果が格納されています
- tsv: 発言の開始、終了の時間と発言内容がタブ区切りで出力されます
- srt: 基本的な字幕形式です
- vtt: スタイリングやポジションをサポートした字幕形式です
- json: text、segments、languageの3つの要素で文字起こしの詳細が出力されます
- text: 文字起こし結果の全文
- segments: 個々の発言の詳細
- language: 言語
Pythonから動かす方法
以下のようなコードで実行できます。この例だとモデルにbase
を指定しているので精度はあまり良くありません。large
を指定すると精度は高くありますが2.8Gのモデルをダウンロードして処理するので時間がかかります。
import whisper
model = whisper.load_model("base")
result = model.transcribe("hoge.mp3")
print(result["text"])
メリット
すぐ使える
インストール手順を見て頂いた通り、pythonが動く環境があればすぐに使えます。
無料で使える
OpenAIのAPIと異なりユーザー登録やAPIキーの取得も必要なく無料で使えます。
デメリット
ローカルマシンのスペックに依存する
ローカルマシンで動くので処理速度はマシンスペックに依存します。スペックの低いPCで動かすとAPIよりも処理に時間がかかります。逆にGPUを搭載したPCで--device cuda
を指定すれば処理時間を短縮できるかもしれません。
話者を識別できない
複数人の会話データにおいて話者を区別することができません。議事録のように誰の発言かを区別する必要がある場合にはWhisperは使用できません。替わりにAmazon Transcribeのようなサービスを使う必要があります。
まとめ
Whisperのオープンソースバージョンの使い方を解説しました。無料で音声データの文字起こしが簡単に行えます。デフォルトで字幕データが作成されるので動画に後から字幕を付けるには便利かもしれません。--max_line_width
や--max_line_count
など字幕に関するオプションも存在しています。