質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

FFmpeg

FFmpegは、動画と音声を交換できるフリーソフトウェアです。UNIX系OSから派生した、MS-DOSから操作するコマンドラインツールです。libavcodecやlibavformat、libswscale、libavfilterなどを含みます。ライセンスは、コンパイルの際のオプションによりLGPLもしくはGPLに決定されます。対応コーデックや使用できるオプションが多く、幅広く利用されています。

Q&A

解決済

2回答

4893閲覧

ffmpegでmodule 'ffmpeg' has no attribute 'Error'というエラーが出る

Mizuiro_sakura

総合スコア5

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

FFmpeg

FFmpegは、動画と音声を交換できるフリーソフトウェアです。UNIX系OSから派生した、MS-DOSから操作するコマンドラインツールです。libavcodecやlibavformat、libswscale、libavfilterなどを含みます。ライセンスは、コンパイルの際のオプションによりLGPLもしくはGPLに決定されます。対応コーデックや使用できるオプションが多く、幅広く利用されています。

0グッド

0クリップ

投稿2023/01/30 15:03

編集2023/01/30 15:44

前提

質問をご覧いただきありがとうございます。
openAI社の公開しているwhisperを使って文字起こしをしたいと思っています。
ffmpegというソフトが必要とのことで、ffmpegをインストールして、PATHも通したのですが、エラーが出て困っています。

ffmpeg -version

とするとエラーなくバージョンは表示されます。
お忙しい中とは思いますが、回答いただけると嬉しいです。

実現したいこと

whisperで文字起こしをすること。

発生している問題・エラーメッセージ

File "C:\Users\Desktop\Python\whisper_sample.py", line 6, in <module> audio = whisper.load_audio("\\desktop\\Python\\sample.wav") File "C:\Users\AppData\Local\Programs\Python\Python39\lib\site-packages\whisper\audio.py", line 46, in load_audio except ffmpeg.Error as e: AttributeError: module 'ffmpeg' has no attribute 'Error'

該当のソースコード

python

1import whisper 2 3model=whisper.load_model("base") 4audio = whisper.load_audio("sample.wav") 5audio = whisper.pad_or_trim(audio) 6 7# make log-Mel spectrogram and move to the same device as the model 8mel = whisper.log_mel_spectrogram(audio).to(model.device) 9 10# detect the spoken language 11_, probs = model.detect_language(mel) 12print(f"Detected language: {max(probs, key=probs.get)}") 13 14# decode the audio 15options = whisper.DecodingOptions() 16result = whisper.decode(model, mel, options) 17 18# print the recognized text 19print(result.text)

試したこと

https://github.com/openai/whisper/discussions/514
を参考に試行錯誤。
・ffmpegのuninstall とffmpeg-pythonのinstall → 変わらずエラー(module 'ffmpeg' has no attribute 'Error')が出たままでした
・ffmpegのuninstallとffmpeg-pythonのuninstallした後にpip3 install ffmpeg-python
→ エラー(FileNotFoundError)となる

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

can110

2023/01/30 15:36

以下に同様エラーの投稿があるので、それを参考に記載された対応策(ffmpeg-pythonの再インストール)などを試してみてください。 https://github.com/openai/whisper/discussions/514 それでもうまくいかない場合は、試した内容と結果を質問本文に記載ください。
Mizuiro_sakura

2023/01/30 15:40

コメントありがとうございます 上記のサイトは私も参考にしましたが、エラーは変わらずでした 本文にその旨を追加します
jbpb0

2023/01/31 00:28 編集

> openAI社の公開しているwhisperを使って文字起こしをしたいと思っています。 ffmpegというソフトが必要とのことで、ffmpegをインストールして、PATHも通したのですが、エラーが出て困っています。 https://teratail.com/questions/k4rp0rree4tgt4 の回答に書きましたが、「ffmpeg-python」がpipでインストールされてて、それとは別にffmpeg「本体」(windowsならば「ffmpeg.exe」)がインストールされてれば大丈夫なはずです 質問を読むと、上記の状態になるようにしてるようですが、それでもダメなのですね google colabで !pip install ffmpeg-python !pip list | grep ffmpeg import ffmpeg print(dir(ffmpeg)) を実行したら分かりますが、正常に「ffmpeg-python」がpipでインストールされてれば、「dir(ffmpeg)」に「'Error'」が存在するはずですので、一度それをgoogle colabで確認してみてください 質問者さんの環境では > AttributeError: module 'ffmpeg' has no attribute 'Error' となるということは、上記のgoogle colabの状態とは違う状態ということです もしかしたら、これまでにpipでインストールしたffmpeg関連の何かがキレイに消えてなくて、それが邪魔してるのかもしれません pip install ffmpeg pip uninstall ffmpeg -y pip install python-ffmpeg pip uninstall python-ffmpeg -y pip install ffmpeg-python pip uninstall ffmpeg-python -y のようにして、心当たりがあるものを全て、キレイに消してください 一つずつインストールとアンインストールを繰り返すのがポイントです 上記以外にも何かあれば、同様にしてください 入れたかどうかよく覚えてないものがあれば、念の為にそれも同様に行ってください それから、 pip list を実行して、ffmpeg関連が何も入ってないことを確認してから、 pip install ffmpeg-python を実行してインストールしてから、pythonで import ffmpeg print(dir(ffmpeg)) を実行して、「dir(ffmpeg)」に「'Error'」が存在するか確認してみてください 【追記】 > ・ffmpegのuninstallとffmpeg-pythonのuninstallした後にpip3 install ffmpeg-python → エラー(FileNotFoundError)となる の状態では > AttributeError: module 'ffmpeg' has no attribute 'Error' のエラーが出ないのなら、pipでインストールした「ffmpeg-python」が正常に使われて、「dir(ffmpeg)」に「'Error'」が存在する状態になったのかもしれません > エラー(FileNotFoundError)となる よりも上に「Traceback」と書かれてたら、そこから下をできるだけ省略せずに質問に記載してください (ここに書くのではなく、質問を編集して追記する)
jbpb0

2023/01/31 00:14

ffmpeg「本体」は > ffmpeg -version とするとエラーなくバージョンは表示されます。 ならば大丈夫だとは思いますが、念の為に ffmpeg -h を実行して、 https://wiki.onakasuita.org/pukiwiki/?ffmpeg%20-h の一番上の枠「print basic options」内に記載されてるようなものが表示されるか確認してみてください (バージョンによって、表記は微妙に変わります) > ffmpegをインストールして、PATHも通した カレントディレクトリが「ffmpeg.exe」がある場所(パス)ではない場合に、 where ffmpeg を実行したら、PATHに設定したパスにある「ffmpeg.exe」の絶対パスが表示されますよね? (これも、念の為の確認です)
jbpb0

2023/01/31 00:43

・「ffmpeg-python」が大丈夫 (「dir(ffmpeg)」に「'Error'」が存在する) ・ffmpeg「本体」が大丈夫 (「ffmpeg -h」や「where ffmpeg」での確認がOK) ならば、 https://qiita.com/studio_haneya/items/a2a6664c155cfa90ddcf の「2. 動画ファイルの情報を取得する」に書かれてるようなことができるか、確認してみてください それが大丈夫なら、whisperが必要とするffmpegの部分は大丈夫なはずです
quickquip

2023/01/31 03:31 編集

import ffmpeg print(ffmpeg.__file__) した時の表示が「pipでインストールしたffmpegパッケージ」を指していますか? 意図しないところに ffmpegフォルダやffmpeg.pyが表示されたりしませんか?
pecop

2023/01/31 04:40 編集

すみません各場所間違えたので下に書き直します。
Mizuiro_sakura

2023/01/31 10:49

jbpb0さん、quickquipさん、peco_2282さんコメントありがとうございます。 皆さんのおかげで無事エラーがなくなりました。 このコメントを見ていらっしゃるかどうかはわかりませんが、ここより感謝いたします。
guest

回答2

0

可能性として、同じディレクトリに ffmpegというファイルがある。

pythonのバージョンが低い(公式は3.9.9以上を推奨している。3.8から動くらしいが。)

直接のエラーに対しては、
audio = whisper.load_audio("sample.wav")
のauddioでNoneが返ってきている可能性がある。(この場合、その点を修正すればエラーに引っかからなくなると思われる。)
エラー元

投稿2023/01/31 04:41

pecop

総合スコア409

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

jbpb0さんのコメント通りにやったら、問題なく動くようになりました!

具体的には
pip install ffmpeg
pip uninstall ffmpeg -y
pip install python-ffmpeg
pip uninstall python-ffmpeg -y
pip install ffmpeg-python
pip uninstall ffmpeg-python -y
とした後、
pip install ffmpeg-python
としたら、dir(ffmpeg)にちゃんと'Error'ディレクトリが追加されました。
感謝いたします。

投稿2023/01/31 10:47

Mizuiro_sakura

総合スコア5

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問