「OpenAI WhisperとHugging Chat APIを使用したビデオの要約」
Video summarization using OpenAI Whisper and Hugging Chat API.
イントロダクション
建築家ルートヴィヒ・ミース・ファン・デル・ローエが有名になったように、「少ないことがより多い」ということは、要約の意味です。要約は、膨大なテキストコンテンツを簡潔で関連性のある要素にまとめるための重要なツールであり、現代の情報消費スピードに適したものです。テキストアプリケーションでは、要約は情報の検索を支援し、意思決定をサポートします。Generative AI(OpenAI GPT-3ベースのモデルなど)の統合により、テキストから重要な要素を抽出し、ソースの本質を保持したまま意味のある要約を生成するというプロセスが革新されました。興味深いことに、Generative AIの機能は、テキストにとどまらず、ビデオ要約にも広がっています。これには、ビデオから重要なシーン、対話、概念を抽出し、コンテンツの要約を作成することが含まれます。ビデオ要約は、短い要約ビデオを生成したり、ビデオコンテンツの分析を行ったり、ビデオのキーセクションを強調表示したり、ビデオのテキスト要約を作成するなど、さまざまな方法で実現できます。
Open AI Whisper APIは、自動音声認識技術を活用して話された言語を書かれたテキストに変換することで、テキストの要約の正確さと効率性を向上させます。一方、Hugging Face Chat APIは、GPT-3などの最先端の言語モデルを提供します。
学習目標
この記事では、以下のことを学びます:
- ビデオ要約の技術について学ぶ
- ビデオ要約の応用について理解する
- Open AI Whisperモデルのアーキテクチャを探索する
- Open AI WhisperとHugging Chat APIを使用してビデオテキスト要約を実装する方法を学ぶ
この記事は、Data Science Blogathonの一環として公開されました。
- 「マイクロソフトが新しいAI搭載スマートバックパックに特許を申請」
- 「モデルガバナンスを向上させるために、Amazon SageMaker Model Cardsの共有を利用してください」
- Amazon SageMakerのマルチモデルエンドポイントを使用して、TorchServeを使ってGPU上で複数の生成AIモデルを実行し、推論コストを最大75%節約できます
ビデオ要約の技術
ビデオ分析
これは、ビデオから意味のある情報を抽出するプロセスです。深層学習を使用して、ビデオ内のオブジェクトとアクションを追跡・識別し、シーンを特定します。ビデオ要約のための一部の人気のある技術は次のとおりです:
キーフレームの抽出とショット境界の検出
このプロセスは、ビデオを限られた数の静止画に変換することを含みます。キーショットの短いビデオとも呼ばれます。
ビデオショットとは、中断されない連続するフレームのシリーズです。ショット境界の認識では、カット、フェード、ディゾルブなどのショット間のトランジションを検出し、要約を構築するために各ショットからフレームを選択します。以下は、長いビデオから連続した短いビデオ要約を抽出するための主要な手順です:
- フレームの抽出: ビデオからスナップショットを抽出します。30fpsのビデオでは1fpsを取ることができます。
- 顔と感情の検出: 次に、ビデオから顔を抽出し、顔の感情スコアをスコアリングして感情スコアを検出します。SSD(シングルショットマルチボックスディテクター)を使用した顔検出。
- フレームのランキングと選択: 高い感情スコアを持つフレームを選択し、ランク付けします。
- 最終的な抽出: ビデオから字幕を抽出し、タイムスタンプとともに抽出されたフレームに対応する文を抽出します。最後に、これらのインターバルに対応するビデオパーツをマージして最終的な要約ビデオを生成します。
アクション認識と時間的サブサンプリング
この手法では、ビデオ内で行われる人間のアクションを特定しようとします。これは、ビデオ分析の広く使用されるアプリケーションです。フレームではなく、小さなサブシーケンスにビデオを分割し、分類やパターン認識技術(Hidden Markov Chain Analysisなど)を用いてセグメントで行われるアクションを推定します。
シングルモーダルとマルチモーダルのアプローチ
この記事では、シングルモーダルのアプローチを使用しました。ビデオの音声を使用してテキストの要約を作成するためのアプローチです。ビデオの1つの側面である音声を使用し、それをテキストに変換して要約を取得します。
マルチモーダルアプローチでは、音声、映像、テキストなど、多くのモダリティからの情報を組み合わせて、より正確な要約のためのビデオコンテンツの包括的な知識を提供します。
ビデオ要約の応用
ビデオ要約の実装に入る前に、ビデオ要約の応用について知っておく必要があります。以下に、さまざまな分野やドメインでのビデオ要約の例をいくつかリストアップしました:
- セキュリティと監視:ビデオ要約は、ビデオを手動でレビューすることなく、重要なイベントのハイライトを抽出するために、大量の監視ビデオを分析することができます。
- 教育とトレーニング:キーノートやトレーニングビデオを配信することで、学生はビデオの内容を全体を通して見ることなく復習することができます。
- コンテンツの閲覧:YouTubeは、ユーザーの検索に関連するビデオの重要な部分をハイライト表示するためにこれを使用し、ユーザーがその特定のビデオを視聴するかどうかを検索要件に基づいて決定できるようにします。
- 災害管理:緊急事態や危機の場合、ビデオ要約はビデオの要約にハイライトされた状況に基づいて行動を起こすことを可能にします。
Open AI Whisper モデルの概要
Open AI の Whisper モデルは、自動音声認識(ASR)です。音声オーディオをテキストに変換するために使用されます。
これは、エンコーダとデコーダのブロックを重ねたトランスフォーマーアーキテクチャに基づいています。アテンションメカニズムを介して情報を伝えます。音声録音を取り、30秒のピースに分割し、それぞれを個別に処理します。各30秒の録音に対して、エンコーダは音声をエンコードし、各単語の位置を保存し、デコーダはこのエンコードされた情報を使用して、何が言われたのかを判断します。
デコーダは、基本的には発音された各単語であるトークンをこの情報から期待します。次の単語を特定するのに役立つ同じ情報をすべて利用して、このプロセスを繰り返します。
ビデオテキスト要約のコーディング例
1 – ライブラリのインストールと読み込み
!pip install yt-dlp openai-whisper hugchat
import yt_dlp
import whisper
from hugchat import hugchat
2 – YouTube ビデオリンクからオーディオを抽出
# YouTube のビデオ ID からオーディオを保存するための関数
def download(video_id: str) -> str:
video_url = f'https://www.youtube.com/watch?v={video_id}'
ydl_opts = {
'format': 'm4a/bestaudio/best',
'paths': {'home': 'audio/'},
'outtmpl': {'default': '%(id)s.%(ext)s'},
'postprocessors': [{
'key': 'FFmpegExtractAudio',
'preferredcodec': 'm4a',
}]
}
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
error_code = ydl.download([video_url])
if error_code != 0:
raise Exception('ビデオのダウンロードに失敗しました')
return f'audio/{video_id}.m4a'
# ビデオ ID を指定して関数を呼び出す
file_path = download('A_JQK_k4Kyc&t=99s')
3 – Whisper を使用して音声をテキストに変換
# Whisper モデルをロード
whisper_model = whisper.load_model("tiny")
# 音声をテキストに変換する関数
def transcribe(file_path: str) -> str:
# `fp16` はデフォルトで `True` になっており、モデルを GPU で実行しようとすることを示します。
transcription = whisper_model.transcribe(file_path, fp16=False)
return transcription['text']
# 音声ファイルのパスを指定してトランスクライバー関数を呼び出す
transcript = transcribe('/content/audio/A_JQK_k4Kyc.m4a')
print(transcript)
4 – Hugging Chat を使用して転写されたテキストを要約する
Hugging Chat API を使用するには、Hugging Face プラットフォームでログインまたはサインアップする必要があります。その後、”username” と “password” の代わりに Hugging Face の認証情報を渡す必要があります。
from hugchat.login import Login
# ログイン
sign = Login("username", "password")
cookies = sign.login()
sign.saveCookiesToDir("/content")
# usercookies からクッキーを読み込む
cookies = sign.loadCookiesFromDir("/content") # これは JSON ファイルが存在するかどうかを検出し、存在する場合はクッキーを返し、存在しない場合は例外を発生します。
# チャットボットを作成する
chatbot = hugchat.ChatBot(cookies=cookies.get_dict()) # または cookie_path="usercookies/<email>.json"
print(chatbot.chat("こんにちは!"))
# 転写を要約する
print(chatbot.chat('''以下を要約してください:'''+transcript))
結論
要約の概念は情報管理において変革的な力です。これは、大量のコンテンツを短い意味のある形式にまとめる強力なツールであり、現代の速い情報消費に合わせてカスタマイズされています。
OpenAI の GPT-3 などの生成型 AI モデルの統合により、要約は従来の境界を超え、一貫した文脈に基づいた要約を抽出するだけでなく、生成するプロセスへと進化しました。
ビデオの要約化における旅は、さまざまなセクターでのその重要性を明らかにします。Whisper を使用した音声抽出、転写、Hugging Face Chat を使用した要約の統合により、ビデオのテキスト要約をシームレスに作成することができます。
キーポイント
1. 生成型 AI: LLMs や ASR のような生成型 AI テクノロジーを使用することで、ビデオの要約を実現することができます。
2. フィールドへの応用: ビデオの要約は、重要な情報を採掘するために大量のビデオを分析する必要がある多くの重要な分野で実際に役立ちます。
3. 基本的な実装: この記事では、音声次元に基づいたビデオの要約の基本的なコード実装を探索しました。
4. モデルのアーキテクチャ: Open AI Whisper モデルの基本的なアーキテクチャとそのプロセスフローについても学びました。
よくある質問
この記事に表示されているメディアは Analytics Vidhya の所有物ではなく、著者の裁量により使用されています。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- 「Amazon SageMaker JumpStartでのテキスト生成のために、Llama 2を微調整する」
- 「Amazon Kendraを使用して、Adobe Experience Managerのコンテンツを賢く検索する」
- 人間の嗅覚とAIが匂いの命名で競い合う
- 「アナログとデジタル:省エネシステムで両方の世界を最大限に活用する」
- 「トライするためのトップ50のAIライティングツール(2023年9月)」
- 「Amazon SageMakerの非同期エンドポイントを使用して、Amazon SageMaker JumpStartの基礎モデルのデプロイコストを最適化する」
- 「キャリアは、AWS GlueとAmazon SageMakerを使用してHVACの故障を予測する方法」