Python入門トップページ


目次


WhisperX で音声認識と話者分離をしてみよう

Windows 編

CPU による音声認識

WhisperX のインストールができたら,CPU を利用した音声認識を行います.音声データは任意のデータを利用してください.ここでは,iPhone のボイスメモで録音した10分間のテレビのニュース番組音声 (voice.m4a) を利用します.この音声ファイル (voice.m4a) を保存したディレクトリに移動します.

whisperx を利用した音声認識の基本的なコマンドは次のとおりです.

whisperx --model [モデル名] --language [言語コード] [音声ファイルパス]

モデル名には medium, large, turbo などが利用できます.日本語を認識させたい場合は言語コードに ja を指定してください.

モデルに large を指定して音声認識を実行します.このとき,-o オプションを利用すると出力先のディレクトリ(フォルダ)を指定できます.

(whisperx_cpu) PS C:\Users\...\whisperx> whisperx --model large --language ja -o output_large ./voice.m4a ⏎

初めて実行する際には学習済みモデルのダウンロードが行われることに注意してください.Intel Core i9-13980HX CPU で実行したところ,(モデルのダウンロードを除いて)およそ8分20秒で処理が終了しました.認識結果は様々な形式で出力されます.

srt データは認識結果をセグメントごとに区切り,通し番号,タイムコードとテキストに変換した形式です.「利上げ」を「日上」に誤認識しています.「上田総裁」は正しくは「植田総裁」ですが,音声としては正しく認識できています.

output_large/voice.srt
1
00:00:02,209 --> 00:00:20,488
日銀は今月15日から2日間、金融政策決定会合を開きます。会合を前に都内で講演した日銀の上田総裁は、仮に中東情勢が不透明な状況が続くとしても、日上に踏み切る可能性があるとの考えを示しました。

2
00:00:22,849 --> 00:00:51,995
先行き経済の下振れリスクに比べて物価の上振れリスクが高まると判断される場合には利上げの是非についてしっかりと議論する必要があると考えています日銀は去年12月の金融政策決定会合で政策金利を0.75%に引き上げていますが上田総裁はこれまでの利上げによっても金融経済活動は抑制されていない

...(中略)...

23
00:09:45,465 --> 00:09:58,878
今日の日経平均株価の終わり値は1667円高い6万8402円で、初めて終わり値ベースで6万8000円台をつけ、市場最高値を更新しました。

TSV ファイルはタブ区切りデータです.ここで start と end に表示された数値はミリ秒単位です.つまり,最後の 598878 は 598.877秒 (=9分58.788秒) を意味しています.

output_large/voice.tsv
start	end	text
2209	20488	日銀は今月15日から2日間、金融政策決定会合を開きます。会合を前に都内で講演した日銀の上田総裁は、仮に中東情勢が不透明な状況が続くとしても、日上に踏み切る可能性があるとの考えを示しました。
22849	51995	先行き経済の下振れリスクに比べて物価の上振れリスクが高まると判断される場合には利上げの是非についてしっかりと議論する必要があると考えています日銀は去年12月の金融政策決定会合で政策金利を0.75%に引き上げていますが上田総裁はこれまでの利上げによっても金融経済活動は抑制されていない

...(中略)...

585465	598878	今日の日経平均株価の終わり値は1667円高い6万8402円で、初めて終わり値ベースで6万8000円台をつけ、市場最高値を更新しました。

TXT 形式は認識結果のみのテキストデータです.

output_large/voice.txt
日銀は今月15日から2日間、金融政策決定会合を開きます。会合を前に都内で講演した日銀の上田総裁は、仮に中東情勢が不透明な状況が続くとしても、日上に踏み切る可能性があるとの考えを示しました。
先行き経済の下振れリスクに比べて物価の上振れリスクが高まると判断される場合には利上げの是非についてしっかりと議論する必要があると考えています日銀は去年12月の金融政策決定会合で政策金利を0.75%に引き上げていますが上田総裁はこれまでの利上げによっても金融経済活動は抑制されていない

...(中略)...

今日の日経平均株価の終わり値は1667円高い6万8402円で、初めて終わり値ベースで6万8000円台をつけ、市場最高値を更新しました。

WebVTT 形式は動画の字幕を作成する際に利用できます.

output_large/voice.vtt
WEBVTT

00:02.209 --> 00:20.488
日銀は今月15日から2日間、金融政策決定会合を開きます。会合を前に都内で講演した日銀の上田総裁は、仮に中東情勢が不透明な状況が続くとしても、日上に踏み切る可能性があるとの考えを示しました。

00:22.849 --> 00:51.995
先行き経済の下振れリスクに比べて物価の上振れリスクが高まると判断される場合には利上げの是非についてしっかりと議論する必要があると考えています日銀は去年12月の金融政策決定会合で政策金利を0.75%に引き上げていますが上田総裁はこれまでの利上げによっても金融経済活動は抑制されていない

...(中略)...

09:45.465 --> 09:58.878
今日の日経平均株価の終わり値は1667円高い6万8402円で、初めて終わり値ベースで6万8000円台をつけ、市場最高値を更新しました。

JSON 形式のデータは認識結果の詳細情報がすべて格納されています.辞書形式のデータであるので,ここを参照して必要な情報を取り出せることを確認してください.

output_large/voice.json
{"segments": [{"start": 2.209, "end": 20.488, "text": "日銀は今月15日から2日間、金融政策決定会合を開きます。会合を前に都内で講演した日銀の上田総裁は、仮に中東情勢が不透明な状況が続くとしても、日上に踏み切る可能性があるとの考えを示しました。", "words": [{"word": "日", "start": 2.209, "end": 2.87, "score": 0.948}, {"word": "銀", "start": 2.87, "end": 3.03, "score": 0.867}, {"word": "は", "start": 3.03, "end": 3.05, "score": 0.001}, {"word": "今", "start": 3.05, "end": 3.07, "score": 0.0}, {"word": "月", "start": 3.07, "end": 3.21, "score": 0.84}, {"word": "1", "start": 3.21, "end": 3.411, "score": 0.893}, {"word": "5", "start": 3.411, "end": 3.511, "score": 0.798}, {"word": "日", "start": 3.511, "end": 3.751, "score": 0.916}, {"word": "か", "start": 3.751, "end": 3.851, "score": 0.928}, {"word": "ら", "start": 3.851, "end": 4.111, "score": 0.929},

...(中略)...

{"word": "更", "start": 597.877, "end": 598.037, "score": 0.875}, {"word": "新", "start": 598.037, "end": 598.217, "score": 0.889}, {"word": "し", "start": 598.217, "end": 598.337, "score": 1.0}, {"word": "ま", "start": 598.337, "end": 598.458, "score": 1.0}, {"word": "し", "start": 598.458, "end": 598.558, "score": 1.0}, {"word": "た", "start": 598.558, "end": 598.858, "score": 0.999}, {"word": "。", "start": 598.858, "end": 598.878, "score": 0.999}], "language": "ja"}

次に turbo モデルで音声認識を実行します.turbo モデルでの処理時間はおよそ5分00秒でした.

output_turbo/voice.srt
(whisperx_cpu) PS C:\Users\...\whisperx> whisperx --model turbo --language ja -o output_turbo ./voice.m4a ⏎

turboモデルでは最初の「利上げ」を正しく認識できていました.また,最後の「きょう」「68402円」「68000円台」は漢字の使い方に関して large モデルと異なった結果になりました.


1
00:00:02,209 --> 00:00:20,488
日銀は今月15日から2日間、金融政策決定会合を開きます。会合を前に都内で講演した日銀の上田総裁は、仮に中東情勢が不透明な状況が続くとしても、利上げに踏み切る可能性があるとの考えを示しました。

2
00:00:22,849 --> 00:00:51,995
先行き経済の下振れリスクに比べて物価の上振れリスクが高まると判断される場合には利上げの是非についてしっかりと議論する必要があると考えています日銀は去年12月の金融政策決定会合で政策金利を0.75%に引き上げていますが上田総裁はこれまでの利上げによっても金融経済活動は抑制されていない

...(中略)...

23
00:09:45,485 --> 00:09:58,878
きょうの日経平均株価の終わり値は1667円高い68402円で、初めて終わり値ベースで68000円台をつけ、市場最高値を更新しました。

ここまでで音声の認識ができるようになりました.次は話者を特定するための話者分離を行いますが,Hugging Face のトークンがであるのでこれを取得する方法に進みます.

目次に戻る