はじめに
Google Video Intelligence APIは強力な動画解析機能を提供していますが、音声認識機能における日本語対応には制約があります。本記事では、Video Intelligence APIの日本語対応状況を整理し、Speech-to-Text APIとの連携による回避策、実装方法、よくある落とし穴について解説します。
想定読者:Google CloudのVideo APIを使って日本語動画を解析したい初〜中級のエンジニア
目次
対象読者
- Google Video Intelligence APIで日本語動画を解析したいエンジニア
- 動画内の日本語音声を文字起こししたい方
- Video Intelligence APIの言語制限に困っている方
- Google CloudのAPIを組み合わせて使いたい初〜中級者
この記事でわかること
- Video Intelligence APIの日本語対応状況(2025年8月時点)
- Speech Transcription機能の言語制限とその理由
- Speech-to-Text APIとの使い分け方法
- 日本語音声認識を実装するための簡単なコード例
- Video Intelligence APIでも日本語で利用可能な機能
動作環境
- Google Cloud Platform: プロジェクト作成済み
- Python: 3.10以上
-
ライブラリ:
-
google-cloud-videointelligence(最新) -
google-cloud-speech(v2クライアント) (Google Cloud)
-
-
API:
- Cloud Video Intelligence API: 有効化済み
- Cloud Speech-to-Text API: 有効化済み(日本語対応用)
- 課金: 両APIとも無料枠あり
-
その他:
gcloudで認証済みサービスアカウント
本編
全体像
🏗️ Video Intelligence APIの日本語対応を実現するアーキテクチャ
Video Intelligence APIは多機能ですが、音声認識(Speech Transcription)機能は英語(en-US)のみ対応です。日本語音声の文字起こしには、Speech-to-Text APIを併用する必要があります。
基本概念
Video Intelligence APIの言語制限
Video Intelligence APIのSpeech Transcription機能は英語(en-US)のみをサポートしており、他の言語にはSpeech-to-Text APIの使用が推奨されています。これは、Video Intelligence APIが動画解析に特化しているのに対し、Speech-to-Text APIは多言語音声認識に特化しているためです。
日本語で利用可能な機能
Video Intelligence APIで日本語に関係なく利用できる機能:
- ラベル検出: 動画内のオブジェクトや場面を識別
- ショット変更検出: シーンの切り替わりを検出
- 不適切コンテンツ検出: 成人向けコンテンツの検出
- オブジェクト追跡: 動画内の物体の動きを追跡
- 顔検出: 顔の位置と属性を検出
- ロゴ認識: ブランドロゴの検出
- テキスト検出: 画面内の文字認識(OCR)
Speech-to-Text APIの日本語サポート
Speech-to-Text APIは125以上の言語に対応しており、日本語(ja-JP)も完全にサポートされています。最新のChirpモデルにより、精度の高い音声認識が可能です。
API v2の新機能(2025年):
- データレジデンシー(シンガポール、ベルギーなどのリージョン対応)
- 監査ログ機能
- 動的バッチ処理(処理優先度を下げることで料金割引)
- カスタマー管理暗号化キー(CMEK)対応
- バッチ文字起こし
実装手順
ステップ1: APIの有効化とセットアップ
# Google Cloud CLIでAPIを有効化
gcloud services enable videointelligence.googleapis.com
gcloud services enable speech.googleapis.com
# 必要なライブラリのインストール
pip install google-cloud-videointelligence google-cloud-speech
ステップ2: 認証の設定
# サービスアカウントを作成
gcloud iam service-accounts create video-analysis-sa \
--display-name="Video Analysis Service Account"
# JSONキーをダウンロード
gcloud iam service-accounts keys create key.json \
--iam-account=video-analysis-sa@YOUR_PROJECT_ID.iam.gserviceaccount.com
# 環境変数を設定
export GOOGLE_APPLICATION_CREDENTIALS="key.json"
ステップ3: 動画内の日本語テキストOCR(Video Intelligence / TEXT_DETECTION)
from google.cloud import videointelligence_v1 as vi
client = vi.VideoIntelligenceServiceClient()
req = vi.AnnotateVideoRequest(
input_uri="gs://YOUR_BUCKET/video.mp4",
features=[vi.Feature.TEXT_DETECTION],
video_context=vi.VideoContext(
text_detection_config=vi.TextDetectionConfig(language_hints=["ja"])
),
location_id="asia-east1", # リージョン指定(任意だが推奨)
)
result = client.annotate_video(request=req).result()
texts = result.annotation_results[0].text_annotations
print(texts[0].text if texts else "no text")
ステップ4: 日本語の音声文字起こし(Speech-to-Text v2推奨/短尺向け)
from google.cloud.speech_v2 import SpeechClient
from google.cloud.speech_v2.types import cloud_speech
client = SpeechClient()
recognizer = "projects/PROJECT_ID/locations/asia-northeast1/recognizers/RECOGNIZER_ID"
cfg = cloud_speech.RecognitionConfig(
auto_decoding_config=cloud_speech.AutoDetectDecodingConfig(),
language_codes=["ja-JP"],
model="latest_short", # 長尺は "latest_long"
)
req = cloud_speech.RecognizeRequest(
recognizer=recognizer,
config=cfg,
content=open("sample.wav","rb").read(),
)
resp = client.recognize(request=req)
print("".join([alt.transcript for r in resp.results for alt in r.alternatives]))
費用
実課金は最新の料金ページで必ず確認してください(無料枠の条件・対象機能は変動します)。
ここでは「だいたいの相対感」だけを表にしています。
| 機能 | 相対コスト感 | メモ |
|---|---|---|
| Video Intelligence:ラベル検出 | 小〜中 | 毎月の無料枠あり(保存済み動画)。詳細は料金ページ参照。(Google Cloud) |
| Video Intelligence:テキスト検出(OCR) | 中 | 日本語OK。無料枠あり。(Google Cloud) |
| Video Intelligence:ショット検出 | 小 | ラベル検出と併用時の特例あり。(Google Cloud) |
| Video Intelligence:不適切・人物・オブジェクト | 中 | モデルによって差。無料枠対象の有無は都度確認。(Google Cloud) |
| Speech-to-Text v2(同期/標準) | 中 | 無料枠の有無に注意(v2は基本なし)。(Google Cloud) |
| Speech-to-Text v2(動的一括) | 小 | 低優先度で割引の選択肢あり(大規模向け)。(Google Cloud) |
よくある落とし穴と対策
- 「Video Intelligenceで日本語の音声を文字起こし」 → 不可。英語のみ対応。日本語はSTT v2へ。(Google Cloud)
-
言語混在の動画 → STT v2 の
language_codesに候補を複数指定し自動判定させる。(Google Cloud) -
データ所在地 → Video Intelligence は
location_id、STT v2 はリージョン化したRecognizerを使う。(Google Cloud)
まとめと次のステップ
要点まとめ
- Video Intelligence APIのSpeech Transcription機能は英語のみ対応
- 日本語音声認識にはSpeech-to-Text APIを使用する
- 視覚的解析機能(ラベル検出等)は言語に関係なく利用可能
- 両APIを組み合わせることで、日本語動画の解析が実現
- Speech-to-Text APIは125言語以上に対応し、日本語精度も高い
- API v2の利用を推奨(企業向け機能、料金割引、動的バッチ処理)
- マルチチャンネル音声は各チャンネルごとに課金されるので注意
- コスト最適化には処理範囲の限定とバッチ処理、v2 APIの動的バッチが有効
関連情報:Text-to-Speech APIの最新動向
2025年現在、Text-to-Speech APIも日本語対応が強化されています:
- Chirp 3 HD voices: 日本語を含む31言語対応の高品質音声
- Long Audio Synthesis API: 長時間音声合成(日本語対応)
- カスタム音声: 10秒の録音から独自音声を作成可能
さらなる学習リソースへのリンク
- Google Cloud Speech-to-Text 公式ドキュメント
- Speech-to-Text API v2 ドキュメント
- Video Intelligence API クイックスタート
- Speech-to-Text APIの料金計算ツール
- Google Codelabs - Video Intelligence API with Python
- 日本語音声認識の精度向上テクニック
免責事項: 本記事は2025年8月時点の情報に基づく参考情報であり、正確性・完全性・最新性を保証せず、利用により生じたいかなる損害についても弊社は責任を負いません。料金は予告なく変更される場合があります。