先に言っておく
優しいチュートリアル記事ではない
技術的な事を書いてるいつものブログに書こうとも思ったが大本のデータソースは放送大学のBSTVとBSラジオなのでこっちに書く
Windows11とVScodeで作ったコメントと無駄な記述がやたら多いリポジトリはここへ置いておく
GitHub - NEXTAltair/PT3Movie2Txt: 録画ファイルとかをwhisperで一気に文字起こしするやつ
音声から自動で文字起こししてくれるOpenAIがただ*1で配ってるwhisperってAIモデルがすごいぞって話を聞いたので試そうといろいろGoogle検索やChatGPTで調べた事
最終的にはPT3で録画しまくった放送大学フォルダに入ってるファイルを全部検索して文字起こしさせたい*2
参考にしたサイトはあるが自分の環境ではそのままでいけるわけもなく
Whisper│動画から日本語の文字起しをする方法│Mac | CGメソッド
無料でOpenAIの「Whisper」を使って録音ファイルから音声認識で文字おこしする方法まとめ - GIGAZINE
既にSD*3WebUIのためにVer3.10.6は入ってるんだがリリースの最新版は3.11になってるのでそれを入れて複数をVerのPythonを使い分けようと思ったらwhisperは3.10でないと動かなかった
ここは3.10動くんでそのままにしておこう
仮想環境の構築
仮想環境なしで上の記事は入れてるがなるべくならそうしたほうがいいと思う
具体的に何故?と問われるとPythonはバージョンごとの依存関係が複雑だからと応えられるがそれより細かいことはわからない
仮想環境: Python環境構築ガイド - python.jp
Python のまとめ
そのやり方についてはここで知る
カレントディレクトリでコマンド実行
うちの場合"PT3Movie2Txt"をターミナルで開いて実行
python -m venv venv
コマンドで3.10.6の仮想環境が構築されたが、3.11も入ってても常に新しいバージョンが優先されて仮想環境が構築されるわけでもないみたいだ
バージョンを指定して仮想環境を構築する場合
python -v 3.11 -m venv venv
3.11のバージョンしていの場合whisperが動かなかった
コレについては後で詳しく書くが3.11でも動作するかもしれない
whisperのインストール
ちょっと難航した部分
pip install -U openai-whisper
最新版が入ってwhisperは使えるはず
しかし、CUDAコアデバイスが見つかりません系のエラー
いろいろ調べた結果"torch"は入ってるがそれにCUDAドライバが追加された"1.13.1+cu117"となってなかった
PyTorch単体でインストールすればいいかと考えて公式からインストールコマンドを調べてた
pip3 install --pre torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/nightly/cu117
コレで大丈夫だろうと思ったら駄目
+cu117にしたければ一度インストールしたPytotchをアンインストールする必要があるみたいだ
pip uninstall torch
pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117
これで行けたpipとpip3何が違うの?
そう思ってChatGPTに聞いたらpipはPython2用、pip3はpython3用と言われた
どっちでも動くからどっちでもいいんじゃない?
知らんけど
2023-02-14 追記
pip3は古いので通常はpipを使う*4
min117.hatenablog.com追記終わり
pip uninstall torchからの再インストールをやればPython3.11環境でも動くんじゃないかとお思うが試してはない
CUDAのインストール
Gigazineの記事にはインストールしようと有るがどっかのタイミング*5で入ってるため不要だった
nvidia-smi
CUDA version : 12.0とあるのでCUDAドライバが入ってるのはわかる
PyTorchで11.7までしかないのはおかしいとは思うが、互換性は確保されてるみたいなので動く
バグが出るかもしれないが動く
文字起こし
【Whisper】Pythonで音声ファイルを書き出ししてみよう! | AI Academy Media
import whisper model = whisper.load_model("base")
# result = model.transcribe("準備したファイル名を指定")
# 今回の記事ではtest.m4aを用います。
result = model.transcribe("/content/test.m4a")
print(result["text"])
これでターミナルに動画からの文字起こしされたものが表示される
大変なのはここから先
.tsファイルは文字起こしでエラーが出る時もある
処理していくとエラーで時々停止する
ChatGPTいわく「.tsはコンテナなので映像に使われているコーデックが動画を処理するためのffmpegに対応してないんじゃない? それかファイル自体が破損してるか」とのこと
この問題については完全に理解していない
それでも動かしたいので.tsは一度mp4に変換する事にした
それでもエラーだ
whisperはpipでインストールすると依存関係としてffmpeg-pythonはインストールされているので不要
しかし、ffmpegの本体は別途インストールでpathを通す*6
pip3 install ffmpeg
要るのか要らないのかは知らんが
多分要る
ffmpeg-pythonで動画編集する - Qiita
ffmpeg-pythonを使ってみた - Qiita
映像を音声にする処理と音声を文字にする処理の.pyは分けよう
一緒にしてもいいんだけどコードが長くなってPythonなにそれ?って人間には分かりにくいので別の.pyを作る事にした
重複するファイルを作成する時はスキップするみたいな処理も追加した
俺のリポジトリからコード読んでもらうとわかるが
音声を.txtに保存する
コレが一番大変だった
詳しくはコードのコメントを読んでもらうとして
ざっくり説明
そもそも保存されない
whisperで文字起こしされたデータはdict(辞書)型でtxtファイルに保存するにはstr(文字列)型に変換する必要があって"import json"で"json.dumps"で変換処理が必要だった
txtに保存できても文字コードのまま
utf-8で文字をエンコードする必要があった
改行がなくて一行に全データが保存されてめちゃくちゃ読みづらい
文字起こしの結果はsegments単位で保存されてるのでそれごとに改行処理を入れる必要があった
OpenAIがリリースした音声認識モデル”Whisper”の使い方をまとめてみた | DevelopersIO
OpenAI Whisper のコマンドオプション - Qiita
終わり
終わりとはいえないんだが学習データとして食わせるには悪くない
人間がそのまま読んでも読めるものが出てきた
クロス討論「人工知能(AI)の未来は?前編」2020-02-01-15:45-2.txt*7
id:0 me
id:1 今日の天気を教えて今日の横浜は予想最高気温20度 最低気温話しかけるだけで様々な操作をしてくれるスマートスピーカー
id:2 今人工知能 ai を使った商品が身近なものになり ブームが巻き起こっています
id:3 ビッグデータの解析技術の進化 そして脳のシステムの解明などによって
id:4 ai は加速度的な進化を続けています
id:5 一方このまま ai が進化し続けると人間の知能を超える日が来るという予測もあります
id:6 ai の進歩は私たちの未来に何をもたらすのか
id:7 専門家たちが徹底討論します
id:8 まああの今回の部分は今までと違ってですね大人の部分と子ども分の両方が揃った ai と
id:9 いうことに向かって進んでいるので続いていくのではないかというふうに思っています 人間が置いてけぼりにされるんじゃないのかなっていうそういうふうな
id:10 ちょっとダークなイメージを抱いています もうどんどん人がこう ai を搭載したスピーカーだと意識せずに今のスマートフォンみたいにもう
id:11 普通に日常生活にあるものになっていくんじゃないかなと思っています 私たちは ai とどう付き合っていけばいいのか
id:12 ai 人工知能の最前線に迫ります
id:13 放送大学の秋水俊夫です 様々な分野の専門家をお招きし語り合うクロス討論
id:14 今回のテーマは人工知能 ai の未来についてです 司会を務めます石井真彦です今日は気になる ai について様々な角度から勉強していきたい
id:15 と思います さて秋水さんあの ai 話題ですよねそうですねあの
id:16 スマートスピーカーだとかその人と語られるロボットだとか まああの自動運転だとかですね様々な技術がまあ私たち触れ合うようになって注目されて
id:17 ますよね 単にその社会で注目されているというだけではなくて
id:18 国の方でもですねその人工知能というのは非常に注目されていると a
id:19 文部科学省で定めた2018年定めた 第3次教育振興基本計画というのがあるんですけどもちょっと読みますがそこの前文にですね
id:20 今はが国は人生100年時代を迎えようとしており 超スマート社会の実現に向けて人工知能かっこ aia ビッグデータの活動活用などの技術革新が急速に進んで
id:21 いる こうした大転換期を乗り越えすべての人が豊かな人生を生き抜くために必要な力を
id:22 身につけて活躍できるようにする上で教育の果たす力大きいというふうに言われている わけですね
id:23 このようにまあ人の寿命も増えてきたその中で技術も変化している 社会自体が第一点環境を迎えているというふうになっている
id:24 まあその第一点環境を迎える主役になっているとも言えるのがこの ai と言えると思うんですよね とはいえ
id:25 ai によってすごく便利になってきたけどじゃあ映画具体的に何やってるのかっていうのは わからないなかなかねはいまあそういった
id:26 ai に対する疑問とかそれをやっぱりあの細田役としてもその皆さんに知っていただいて 考えていただくきっかけになってもらいたいというのがまあこの
id:27 とクロス討論のまって今ということになりますそうですねそこで今日はそうした不安や疑問誤解 など
id:28 論者の方々とともに語り合っていきながら ai の未来像を探ってまいりたいと思います それでは出演者の皆さんご紹介しましょう
id:29 まずは ai の最先端の研究を行っているドワンゴ人工知能研究所所長 山川博さんですよろしくお願いしますよろしくお願いします
id:30 今日の意気込みを一言 いや今日はですねあの
id:31 皆様と一緒にですね ai の未来について まあいいあの結論に導けるように頑張っていきたいとおもいますよろしくお願いします
id:32 山川さんには ai の専門家の立場からお話しいただきます 続きまして情報社会論情報コミュニケーション論が専門の哲学者
id:33 明治大学教授大国武彦さんですよろしくお願いしますよろしくお願いします 今日の意気込みを
id:34 a ですね先ほどあの ai のわからなさっていう言葉が出ましたけれども そのわからなさが ai に対する誤解を生んでると思うんですね
id:35 でその誤解に基づいて過剰な期待が抱かれたりですね でまぁいらぬ不安が抱かれたりする方が多いと思うんですよ
id:36 なのでまあ今日はの 哲学ないしあの社会科学に基づきながらできるだけその誤解を解いていければなぁと思って
id:37 ます 大国さんには ai と人間との関わりについて哲学者の立場からお話しいただきます
id:38 さあそして現役のコンピュータープログラマーで ai に興味津々のマルチタレント池澤彩香さんですよろしくお願いします
id:39 お願いします はい意気込みですよねえっと私普段からあのソフトウェアエンジニアとして働いているんです
id:40 けれども あのプロジェクト内で ai を実際に活用したりしながら仕事をしているんですが
id:41 まだまだわからないこととかあと未来はどうなるんだみたいな疑問もあるので今回は どんどんぶつけてねあの
id:42 いきたいなと思っています池澤さんには未来を担う若い世代を代表してお話しいただきます それでは早速討論に参りましょう
id:43 クロス討論を行うにあたってテーマを用意しました最初のテーマは今の人工知能 ai ブームをどう捉えるかです
id:44 討論を始める前にまずは人工知能技術開発の歴史を見てみます 人工知能 ai が生まれてからこれまで3回のブームが起こっています
id:45 第1次ブームは1950年代から60年代に起こったとされています 迷路の解き方や数学の定理の証明
id:46 人間の言葉で対話するシステムの開発が行われました
こんな出力
RTX3080-10GBでVRAMとCUDAコアの消費70%って一番精度の高いlarge-v2でもそんなに食わない
SDの時はちょっと処理速度は落ちるけど省エネ意識して60%のパワーリミットかけて動かしてる
whisperの場合は100%でも60%でもパワーリミットで体感速度があまり変わらない気がする
4090だともっともっと速いんだろうな~