n8nからWhisperへ!ローカルAI字幕生成を完全自動化

n8nからWhisperへ!ローカルAI字幕生成を完全自動化 AI制作・自動化

前回の記事では、n8nからComfyUIやIrodori TTSを呼び出し、画像や音声を自動生成する環境を整えました。

次の目標は、

「生成した音声から、自動で字幕(SRT)を作ること」

です。

動画を作るなら字幕は欠かせません。

そこで今回は、OpenAIのWhisperをローカル環境に導入し、n8nから呼び出せるようにしました。

Whisperをローカルに導入

まずはPython仮想環境を作成し、Whisperをインストールしました。

CPU環境でも問題なく動作し、日本語音声の文字起こしにも対応しています。

最初はサンプルコマンドをそのまま実行してしまい、

No such file or directory

というエラーが発生。

原因は単純で、サンプルのファイルパスをそのまま使っていただけでした。

実際のIrodori TTSの出力先を確認し、正しい音声ファイルを指定すると無事動作。

Whisper単体での文字起こしに成功しました。

Irodori TTSとの連携成功

続いて、Irodori TTSで生成した音声をWhisperへ渡します。

すると、

音声ファイル(wav) ↓

字幕ファイル(srt)

が自動生成されました。

これで、

音声生成 → 字幕生成

という流れが完成しました。

n8nからWhisperを呼び出す

最初はExecute Commandノードを使う予定でした。

ところが、n8n 2.xではデフォルトで無効化されており、検索してもノードが表示されません。

Docker Composeの設定を見直してExecute Commandを有効化。

しかし今度は、

WhisperはホストOSにある 一方で Execute CommandはDockerコンテナ内で実行される

という構造上の問題が判明しました。

そこで方針転換です。

FastAPI化で解決

WhisperをFastAPIとして公開し、

n8n
↓
HTTP Request
↓
Whisper API
↓
字幕生成

という構成に変更しました。

これならComfyUIやIrodori TTSと同じHTTP通信で扱えます。

実際にHTTP POSTで音声ファイルを渡すと、

  • Whisperが実行

  • 字幕(SRT)生成

  • n8nへ成功レスポンス

まで確認できました。

ローカルAI同士がHTTP APIで連携する形になり、ワークフロー全体が統一されました。

Dockerとの連携も整理

さらに、n8nコンテナからWhisperやIrodoriの出力フォルダが見えるようにDocker Composeへボリュームマウントを追加。

これにより、

  • Irodori音声

  • Whisper字幕

をn8nから直接扱えるようになりました。

ローカルAIを増やすだけでなく、それぞれが連携できる環境になってきたのを実感しています。

必要な時だけ起動する運用へ

以前、ComfyUIやIrodoriを起動したままにしてしまい、気付けばメモリ使用量が14GB近くまで増えていたことがありました。

その反省から今回は、

  • systemdサービス化

  • 自動起動は無効化

  • 必要な時だけ起動

  • 使い終わったら停止

という運用に統一しました。

普段はメモリを消費せず、必要な時だけAIを動かせます。

ただ、ここで新たな課題も見えてきました。

今はComfyUI、Irodori TTS、Whisperなどを、それぞれ個別に起動しています。

そのため今後は、

「動画生成モード」なら必要なAIをまとめて起動し、作業が終わったらまとめて停止する。

そんなシェルスクリプトやsystemdを組み合わせた仕組みも作ってみたいと思っています。

AIを導入するだけでなく、使う時の手間まで自動化する。

そこまでできれば、ホームラボはさらに実用的な環境になりそうです。

次回はいよいよ動画生成へ

今回で、

  • n8n

  • Irodori TTS

  • Whisper

の連携が完成しました。

次は、動画生成に欠かせないFFmpegのAPI化に挑戦します。

ComfyUIやIrodori TTS、Whisperと同じようにHTTP APIとして呼び出せるようにし、n8nから統一した方法で扱える環境を目指します。

そして、

  • ComfyUI(画像生成)

  • Irodori TTS(音声生成)

  • Whisper(字幕生成)

  • FFmpeg(動画生成)

これらを実際にn8nで一つのワークフローとして接続し、

「記事を渡したら、画像・音声・字幕・動画まで自動生成するAI制作工場」

がどこまで実現できるのか試していきます。

一つ一つ見ると小さな進歩ですが、ローカルAI同士がHTTP APIでつながり始めたことで、当初思い描いていたホームラボの姿が少しずつ形になってきました。

完成まではもう少し。

この「AI制作工場」をどこまで進化させられるか、楽しみです。

コメント

タイトルとURLをコピーしました