ビデオには貴重な情報が満載ですが、それを見つけるのに役立つツールが必要になることがよくあります。 講義やチュートリアルの分析を目指す教育機関から、ビデオレビューにおける顧客の感情の理解を目指す企業まで、ビデオコンテンツの文字起こしと理解は、情報に基づいた意思決定とイノベーションに不可欠です。 近年、AI/ML技術の進歩により、このタスクはこれまで以上に利用しやすくなっています。
DockerでGenAIテクノロジーを開発することで、ビデオコンテンツから洞察を引き出すための無限の可能性が開かれます。 トランスクリプション、埋め込み、大規模言語モデル (LLM) を活用することで、組織はビデオなどの多様で生のデータを使用して、より深い理解を得て、情報に基づいた意思決定を行うことができます。
この記事では、 GenAIスタック とDockerが提供するシームレスな統合を活用して、ビデオコンテンツの処理と理解を合理化する ビデオトランスクリプションとチャットプロジェクト について詳しく説明します。
アーキテクチャの概要
このアプリケーションのアーキテクチャは、ビデオコンテンツの効率的な処理と分析を容易にするように設計されており、最先端のAIテクノロジーとコンテナ化を活用してスケーラビリティと柔軟性を実現しています。 図 1 は、 Pinecone を使用してビデオ文字起こしの埋め込みを格納および取得するアーキテクチャの概要を示しています。
アプリケーションの高レベルのサービス アーキテクチャには、次のものが含まれます。
- yt-whisper: Docker Compose によって実行されるローカル サービスで、リモートの OpenAI および Pinecone サービスと対話します。 Whisper は、OpenAIが開発した自動音声認識(ASR)システムであり、AI主導の音声処理における重要なマイルストーンを表しています。 Whisperは、Webから提供された 680、000 時間の多言語およびマルチタスクの教師付きデータの広範なデータセットでトレーニングされ、英語の音声認識において驚くべき堅牢性と精度を実証しています。
- Dockerbot: Docker Compose によって実行されるローカル サービスで、リモートの OpenAI および Pinecone サービスと対話します。 このサービスは、ユーザーの質問を受け取り、対応する埋め込みを計算し、ビデオ ナレッジ データベースで最も関連性の高い文字起こしを見つけます。 その後、文字起こしはLLMに提示され、LLMは文字起こしと質問を受け取り、この情報に基づいて回答を提供しようとします。
- OpenAI:OpenAI APIは、最先端のAIおよび機械学習技術で知られるLLMサービスを提供します。このアプリケーションでは、OpenAIのテクノロジーを使用して、音声から文字起こしを生成したり(Whisperモデルを使用)、テキストデータの埋め込みを作成したり、ユーザーのクエリへの応答を生成したり(GPTとチャット補完を使用)したりします。
- 松笠: 大規模なベクトル検索アプリケーションの構築と展開に使用される、類似検索に最適化されたベクトルデータベースサービス。 このアプリケーションでは、Pineconeを使用してビデオ文字起こしの埋め込みを保存および取得し、ユーザーのクエリに基づいてアプリケーション内で効率的で関連性の高い検索機能を有効にします。
はじめ
開始するには、次の手順を実行します。
- OpenAI API キーを作成します。
- Pinecone API キーがあることを確認します。
- 最新バージョンの Docker Desktop がインストールされていることを確認します。
アプリは、ビデオから質問に答えることができるチャットボットです。 さらに、質問に答えるために使用されたソースを見つけるのに役立つビデオのタイムスタンプを提供します。
リポジトリのクローンを作成する
次のステップは、リポジトリのクローンを作成することです。
git clone https://github.com/dockersamples/docker-genai.git
プロジェクトには、次のディレクトリとファイルが含まれています。
├── docker-genai/
│ ├── docker-bot/
│ ├── yt-whisper/
│ ├── .env.example
│ ├── .gitignore
│ ├── LICENSE
│ ├── README.md
│ └── docker-compose.yaml
API キーを指定する
/docker-genai
ディレクトリに、 という.env
テキストファイルを作成し、その中で API キーを指定します。次のスニペットは、例として参照できるファイルの内容 .env.example
を示しています。
#-------------------------------------------------------------
# OpenAI
#-------------------------------------------------------------
OPENAI_TOKEN=your-api-key # Replace your-api-key with your personal API key
#-------------------------------------------------------------
# Pinecone
#--------------------------------------------------------------
PINECONE_TOKEN=your-api-key # Replace your-api-key with your personal API key
アプリケーションをビルドして実行する
ターミナルで、ディレクトリを自分の docker-genai
ディレクトリに変更し、次のコマンドを実行します。
docker compose up --build
次に、Docker Compose は、ファイルで docker-compose.yaml
定義されたサービスに基づいてアプリケーションをビルドして実行します。 アプリケーションが実行されると、ターミナルに 2 つのサービスのログが表示されます。
ログには、サービスがポート 8503
と 8504
. この 2 つのサービスは互いに補完し合っています。
yt-whisper
サービスはポート 8503
で実行されています。このサービスは、ナレッジデータベースにアーカイブするビデオをPineconeデータベースにフィードします。 次のセクションでは、 yt-whisper
サービスについて説明します。
yt-whisper を使う
この yt-whisper
サービスは、OpenAI Whisper モデルを使用して動画の文字起こしを生成し、Pinecone データベースに保存する YouTube 動画処理サービスです。 次の手順では、サービスの使用方法の概要を説明します。
ブラウザを開き、 http://localhost:8503 でサービスにアクセスし yt-whisper
ます。アプリケーションが表示されたら、[URL] フィールドに YouTube ビデオの URL を指定し、[ 送信] を選択します。図 2 の例では、David Cardozo 氏の ビデオ を使用しています。
動画の提出
この yt-whisper
サービスは、ビデオの音声をダウンロードし、Whisper を使用して WebVTT ()*.vtt
形式 (ダウンロード可能) に文字起こしします。 次に、「text-embedding-3-small」モデルを使用して埋め込みを作成し、最後にそれらの埋め込みをPineconeデータベースにアップロードします。
ビデオが処理されると、どのビデオがPineconeでインデックスに登録されているかを通知するビデオリストがWebアプリに表示されます。 また、トランスクリプトをダウンロードするためのボタンも用意されています。
Dockerbotチャットサービスへのアクセス
これで、ポート 8504
で Dockerbot チャット サービスにアクセスし、ビデオに関する質問をすることができます (図 3を参照)。
結論
この記事では、GenAIテクノロジーとDockerを組み合わせて、ビデオコンテンツから貴重な洞察を引き出すエキサイティングな可能性を探りました。 Whisper のような最先端の AI モデルと Pinecone のような効率的なデータベース ソリューションを統合することで、組織が生のビデオ データを実用的な知識に変換できるようになることを示しています。
経験豊富な開発者でも、AI の世界を探求し始めたばかりでも、提供されているリソースとコードを使用すると、独自のビデオ理解プロジェクトに簡単に着手できます。