見出し画像

【Python】MP3から読み上げのテキスト書き出しメモ【Faster Whisper】


音声ファイルからのテキスト抽出

Faster Whisper

参考:PythonでFaster Whisperを使ってYoutube動画を簡単に文字起こしする方法

他にもさまざまなライブラリがテキスト抽出を可能にしているが、今回はこれを使う。

前提:Pythonインストール済み。VSCode使用。
***CUDAを使うので、NVIDIA製のGPUが必須

使用するライブラリ:Faster Whisper

pip install faster_whisper
from faster_whisper import WhisperModel  # WhisperModelを使うための準備


model = WhisperModel("large-v3", device="cuda", compute_type="float16")

AUDIO_FILE_NAME = "Speaking role of Samus Aran Prime.mp3"


segments, info = model.transcribe(
    AUDIO_FILE_NAME,
    beam_size=5,
    vad_filter=True,
    without_timestamps=True)

print("Detected language '%s' with probability %f" % (info.language, info.language_probability))
for segment in segments:
    print("[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text))
    
初回起動時。3GBのモデルダウンロードが入るので注意。


そして起きるエラー。というわけでこれを解消する

上記の例のように、今回使うFaster WhisperもCUDAcuDNNというものが必要なのだがそのバージョンがCUDAとcuDNNとで対応してないといけない。

ダウンロードする。アカウントを作るしかないのでNvideaアカウントを作る。


CUDAはexe形式を進めてインストールして再起動。(展開先のファイルパスを覚えること)

CUDAインストーラー

cuDNNはZIPファイルなので展開し、中のbinフォルダをコピーする。

cuDNN。binフォルダをコピー。

CUDAをインストールした先、binフォルダに先ほどコピーしたcuDNNのbinフォルダを置く。


CUDAのbinフォルダにcuDNNのbinフォルダの中身が追加された。

これでエラー内容の、該当ファイルが存在しません!配置してください!が解消されるので再度pythonプログラムを実行する。

 今回使用する音声ファイル:メトロイドプライムの没データ。サムス・アランの冒頭読み上げナレーション音声。
 テキストが載っているので実際にどのくらいの精度で音声が抽出出来ているかわかる。

メトロイドプライム サムス・アラン ナレーション


テキストが書き出される。ひとまず成功。


ここからテキストファイルに出力する場合は、参考サイトのようにTEXT_FILE_NAMEを定義して.txtに書き出す。


***一部の音声がテキストに抽出されていないが、囁き声や不明瞭な発音だと正しく抽出されない。今回だとマザーブレインの部分。

この記事が気に入ったらサポートをしてみませんか?