前から、mp3の音声をテキストに文字おこししたいと思っていたのですが、
有料サービスだと、お金がかかる上、たくさん変換できないという感じだったので、
諦めていたのですが、VLCで生成AIの字幕機能がつく!みたいなニュースを見て、
早く実装されないかなーと思っていたのですが、
Whisperというものを使えば、私のPCでもテキスト変換できそうだったので、やってみた。
anacondaのpythonで仮想環境を作り、(pythonのバージョンは3.10とかでないとwhisperが対応していないので注意)
conda create -n myenv python=3.10
pipとGITでwhisperをインストール
pip install git+https://github.com/openai/whisper.git
しようとしたのですが、私のPCにGITはインストールしていないので
pip install openai-whisper
でインストールして、
pip install ffmpeg-phython
してみたが、できなかった。
エラーで、何かのファイルが足りませんみたいな表示がでていた。
ググると、それらしい解決作が書いてあった。
つまり、
https://www.ffmpeg.org/
で ffmpegの7zをDLして解凍して、binフォルダのPATHを通す
そしてwindowsを再起動
テキスト変換のpythonスクリプトを実行してみるとできました。
import whisper
# 使用するモデルをロード
#model = whisper.load_model("base")
model = whisper.load_model("small")
#model = whisper.load_model("medium")
#model = whisper.load_model("large")
#size parameters VRAM
#tiny 39M 1GB
#base 74M 1GB
#small 244M 2GB
#medium 769M 5GB
#large 1550M 10GB
# MP3ファイルのパスを指定
audio_path = "./a.MP3"
# 文字起こしを実行
result = model.transcribe(audio_path,verbose=True,language='ja')
#result = model.transcribe(audio_path)
# 結果を表示
print(result["text"])
with open("./a.txt", "w",encoding="utf_8") as f:
f.write(result["text"])
ていう感じのスクリプトで実行できました。
使用するモデルが大きいほど、良い感じでテキストになるようです。
日本語は同音異義語が多いので、正しくテキストにはなりませんが、
なんとなく、読めるテキストにはなっているんじゃないかな。