音声認識ライブラリ「Whisper」とXbox Game Barを使ってWEB会議を文字起こし

はじめに

この記事では、音声認識ライブラリ「Whisper」を使って文字起こしを行い、Zoom、Teams、Google MeetなどのWEB会議の議事録の作成に活用する方法を紹介します。

Whisperとは

whisperはOpenAIが提供しているPythonの音声認識ライブラリです。
OpenAIはOpenAI は、人工知能を研究する非営利団体です。

音声データからテキスト情報を抽出することができます。

文字起こし環境構築

whisperのインストール

公式によるとPython 3.7 以降であれば動作するようです。

Pythonのインストール後、同梱されるPythonのパッケージマネージャPIPからインストールが可能です。

コマンドプロンプトなどで以下のコマンドを実行することで、インストールが可能です。

pip install git+https://github.com/openai/whisper.git 

https://github.com/openai/whisper

ffmpegのインストール

音声・動画ファイルのフォーマットを変換するツールです。

mp4(動画と音声) → mp3(音声)に変換する際に利用します。

https://ffmpeg.org/

FFMPEGをインストールするには、以下のURLからWindows用のffmpeg-master-latest-win64-gpl-shared.zip ダウンロードします。

https://github.com/BtbN/FFmpeg-Builds/releases

ダウンロードしたZIPを展開するとbinフォルダ配下に実行ファイルがあるので、
binフォルダのフォルダパスを環境変数のPathに追加します。

Xbox Game Barでビデオ会議を録画

Xbox Game Bar(以下、ゲームバー)はWindows 10に標準搭載されているゲームの録画などを行う機能です。

[Windows]キー+[G]キーを押すと、ゲームバーが起動します。
ゲームバーの録画開始ボタンを押すと、録画が始まり、録画終了ボタンを押すと C:\Users\%ユーザ名%\Videos\Captures 配下に録画したMP4ファイルが保存されます。


文字起こしを実施

ゲームバーでキャプチャした audio.mp4 から文字起こしを実行します。

コマンドプロンプトなどで以下のコマンドを実行します。

# MP4 → MP3に変換
ffmpeg -i audio.mp4 -ab 256k audio.mp3

# 文字起こし
# 初回時はモデルのダウンロード処理で2分ぐらいかかります
# 私のPCのスペックだと、モデルのDL時間を除くと20秒の動画で文字起こしに5分ぐらい時間がかかりました
whisper audio.mp3 --language Japanese

C:\Python310\lib\site-packages\whisper\transcribe.py:78: UserWarning: FP16 is not supported on CPU; using FP32 instead
  warnings.warn("FP16 is not supported on CPU; using FP32 instead")
[00:00.000 --> 00:04.760] 打合せを開始します
[00:04.760 --> 00:09.000] 今日の議題はhogehogeです

実行すると、audio.txt、audio.srt、audio.vttという3つのファイルにテキストが記録されます。
audio.srt、audio.vttは動画に字幕を追加することができる特殊なフォーマットのファイルです。

whisperをPythonライブラリとしてインポート

whisperはPythonライブラリとしてインポートすることもできます。

以下はインポートしたソースの例です。

import whisper

# 音声ファイル 
inputFilePath = "audio.mp3"#@param {type:"string"}

# モデル決定
model = whisper.load_model("small")

# 文字起こし
result = model.transcribe(inputFilePath, verbose=True, language="ja")
print("-----------------------------------------------------------------------")
print(result["text"])
print("-----------------------------------------------------------------------")

おわりに

この記事では、音声認識ライブラリ「Whisper」を使って文字起こしを行う方法を紹介しました。

この記事が、WEB会議の議事録を作成するエンジニアの役に立てば幸いです。