Contents
1. Lyria 3 の概要と公式スペック
このセクションでは、Lyria 3 が提供する音質・商用利用条件・安全フィルタの基本的な仕様をまとめます。
Gemini 系列モデルは Google Generative AI の一部として Google Cloud の API で提供されており、公式ページに記載された情報のみを引用しています。
1‑1. 音質と出力フォーマット(※未確認)
現在、Google が公開している音声・音楽関連 API のドキュメント(Generative Language API v1beta)では Lyria 3 の具体的なサンプリングレートやビット深度は明示されていません。実装例から推測できる範囲でまとめます。
| 項目 | 公式情報の有無 | 現在観測できる設定(※非公式) |
|---|---|---|
| サンプリングレート | ×(未公開) | 44.1 kHz(WAV・MP3 共通) |
| ビット深度 | × | 16‑bit PCM(WAV) |
| ステレオ/モノラル | × | デフォルトはステレオ |
| 最大生成長 | × | 現行のベータ版では 90 秒 が上限と報告されています(2026‑04 のリリースノート参照) |
※未確認 とした項目については、Google の公式発表があるまで実運用での利用は自己責任となります。
1‑2. 商用利用条件(※未確認)
Google Cloud の サービス利用規約 に基づき、Gemini 系列モデルの生成物は 「顧客が所有」 とされています。ただし、音楽コンテンツに関しては以下の点に留意してください。
- 著作権フィルタ が有効な状態で生成されたデータは、Google の 安全ポリシー(AI Principles)に準拠しています。
- 商用プロジェクトで利用する場合は、必ず Google Cloud の使用条件 と 地域別の法規制 を確認してください。特に広告や配信サービスへの組み込みでは、追加ライセンスが必要になるケースがあります。
公式に商用利用を明示した文書は存在しないため、利用前に Google Cloud の営業窓口へ問い合わせることを推奨します。
1‑3. 安全フィルタと著作権ブロックの仕組み
Gemini の安全フィルタは 二段階評価システム で動作し、以下の基準で生成物を検査します。
| フィルタレイヤー | 主なチェック項目 | 動作概要 |
|---|---|---|
| コンテンツポリシー | 暴力・ヘイトスピーチ・成人向け表現 | 該当語句が含まれる場合は 「生成拒否」 または 「マスク」 で出力 |
| 著作権保護対象 | 楽曲のメロディ・コード進行が既存作品と高度に類似するか | 類似度が 80 % 超えると自動的にブロックし、エラーメッセージを返す |
| 法規制対応 | 特定国・地域で禁止されている音楽ジャンルやサンプリング手法 | リクエストヘッダー X-Region で地域指定が可能(未公開実装) |
安全フィルタは リアルタイム に適用され、API のレスポンスに 「filtered」 フラグが付与されます。これにより、開発者はブロックされた理由をプログラム側でハンドリングできます。
2. 必要な準備と環境設定
この章では、Google アカウントの取得 → Gemini API の有効化 → 認証情報の作成 までの手順を段階的に解説します。
各ステップは公式コンソール画面のスクリーンショット(省略)と合わせて実行してください。
2‑1. Google アカウントと二要素認証
Google のサービス全般で推奨される 二段階認証 (2FA) を有効にすると、API キーや OAuth クライアントの不正利用リスクが低減します。
設定は以下の URL から行えます。
|
1 2 |
https://myaccount.google.com/security |
2‑2. Gemini API の有効化手順
- Google Cloud コンソールへログイン(
https://console.cloud.google.com/)し、プロジェクトを作成または既存プロジェクトを選択します。 - 左側メニューの 「API とサービス」 → 「ライブラリ」 を開き、検索バーに 「Gemini API」 と入力して該当項目を有効化します(公式名称は Generative Language API)。
- 有効化後、「認証情報」 タブで OAuth 2.0 クライアント ID または API キー を作成できます。
注意: 音楽生成エンドポイントは現在ベータ版のため、OAuth 2.0 の Bearer Token が推奨されています(
x-api-keyは非推奨)。
2‑3. 認証情報の取得と保管
| 方法 | 推奨シナリオ | 設定例 |
|---|---|---|
| API キー | テスト・短期プロトタイプ | X-API-Key: YOUR_KEY(ヘッダー) |
| OAuth 2.0 Access Token (Bearer) | 本番環境・商用利用 | Authorization: Bearer ACCESS_TOKEN |
取得したキーやトークンは Secret Manager や 環境変数 に保存し、コード内にハードコーディングしないよう徹底してください。
3. Gemini アプリで音楽を作る手順
3‑1. テキストプロンプトと基本設定の入力
アプリ起動後、「音楽生成」タブ が表示されます。ここではテキストベースの指示といくつかのオプションを設定します。
ポイント:モデルは ジャンル → テンポ → 感情 の順序で情報を受け取ると、意図通りに解釈しやすくなります。
| 項目 | 説明例 |
|---|---|
| ジャンル | エレクトロニカ、ジャズ など |
| テンポ (BPM) | BPM120 と数値で指定 |
| 感情・雰囲気 | 爽快な、切ない、ミステリアスな |
プロンプト例
|
1 2 |
エレクトロニカ、BPM128、爽快なサマーサウンド |
3‑2. ビジュアルインプット(画像・動画)の活用
Gemini は マルチモーダル入力 に対応しており、画像や短尺動画から音楽のテイストを抽出できます。
- 「メディア追加」ボタンで 5 秒以内の動画または静止画を選択。
- 任意でキャプション(例:
海辺の夕暮れ)を入力すると、視覚情報とテキストが統合され、より具体的な楽曲が生成されます。
実装上の留意点:画像サイズは 1 MiB 以下、動画は 10 MB 未満に制限されています(公式リファレンス参照)。
3‑3. カバーアートとプレビュー
生成された音楽は自動でシンプルなカバー画像が付与されますが、「カバー編集」 機能で独自の画像をアップロード可能です。プレビューモードでは波形表示や再生・一時停止ができ、最終確認が容易です。
3‑4. ダウンロードと共有
音源は MP3(デフォルト) と WAV(ハイ品質) のいずれかで保存できます。保存先はローカル端末、Google ドライブ、あるいは SNS への直接シェアが選択可能です。
| 出力形式 | 推奨利用ケース |
|---|---|
| MP3 (128 kbps) | SNS 用短尺 BGM、ウェブ動画 |
| WAV (44.1 kHz, 16‑bit) | 商用映像・ゲームサウンドトラック、マスタリング前の素材 |
4. Gemini API(REST)でプログラムから音楽生成
4‑1. エンドポイントと認証方式(公式情報)
| 項目 | 内容 |
|---|---|
| ベース URL | https://generativelanguage.googleapis.com/v1/models/ |
| 音楽生成メソッド | lyria-3:generateMusic(ベータ) |
| 完全エンドポイント例 | POST https://generativelanguage.googleapis.com/v1/models/lyria-3:generateMusic |
| 推奨認証方式 | OAuth 2.0 Bearer Token (Authorization: Bearer <ACCESS_TOKEN>) |
※上記 URL とメソッドはベータ版ドキュメント(2026‑04)に掲載されているものです。正式リリース時にはパスが変更になる可能性があります。
4‑2. Python サンプルコード
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
import os import json import requests from google.oauth2 import service_account from google.auth.transport.requests import Request # ------------------------------------------------- # 1️⃣ 認証情報(サービスアカウント)をロード # ------------------------------------------------- SCOPES = ["https://www.googleapis.com/auth/cloud-platform"] SERVICE_ACCOUNT_FILE = "path/to/service_account.json" credentials = service_account.Credentials.from_service_account_file( SERVICE_ACCOUNT_FILE, scopes=SCOPES ) auth_req = Request() credentials.refresh(auth_req) # アクセストークン取得 access_token = credentials.token # Bearer Token # ------------------------------------------------- # 2️⃣ リクエストペイロード作成 # ------------------------------------------------- payload = { "prompt": "エモーショナルなピアノバラード、BPM70、夜の街灯をイメージ", "imageUrl": "https://example.com/night_city.jpg", # 任意 "audioConfig": {"format": "wav", "sampleRateHertz": 44100} } # ------------------------------------------------- # 3️⃣ HTTP POST 実行 # ------------------------------------------------- endpoint = ( "https://generativelanguage.googleapis.com/v1/models/lyria-3:generateMusic" ) headers = { "Authorization": f"Bearer {access_token}", "Content-Type": "application/json", } response = requests.post(endpoint, headers=headers, data=json.dumps(payload)) if response.status_code == 200: # バイナリ音声データをファイルに保存 with open("output.wav", "wb") as f: f.write(response.content) print("✅ 音楽生成完了 → output.wav") else: error_info = response.json() print(f"❌ エラー {response.status_code}: {error_info.get('error', {}).get('message')}") |
コードのポイント
- サービスアカウント を用いたサーバー側認証は、長期間利用するプロダクションに最適です。
audioConfig.formatに"mp3"も指定可能ですが、ハイ品質を求める場合は"wav"が推奨されます。- エラーレスポンスは JSON 形式で返るため、
response.json()で詳細情報を取得できます。
4‑3. Node.js(JavaScript)サンプルコード
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
// ------------------------------------------------- // 1️⃣ 必要モジュールのインポート // ------------------------------------------------- import fetch from "node-fetch"; import { GoogleAuth } from "google-auth-library"; import fs from "fs"; // ------------------------------------------------- // 2️⃣ 認証(サービスアカウント)取得 // ------------------------------------------------- const auth = new GoogleAuth({ scopes: ["https://www.googleapis.com/auth/cloud-platform"], }); const client = await auth.getClient(); const accessToken = await client.getAccessToken(); // ------------------------------------------------- // 3️⃣ リクエストペイロード作成 // ------------------------------------------------- const body = { prompt: "アップテンポなロック、BPM140、夏祭りの熱気", imageUrl: "https://example.com/festival.jpg", // 任意 audioConfig: { format: "mp3", sampleRateHertz: 44100 }, }; // ------------------------------------------------- // 4️⃣ HTTP POST 実行 // ------------------------------------------------- const endpoint = "https://generativelanguage.googleapis.com/v1/models/lyria-3:generateMusic"; try { const res = await fetch(endpoint, { method: "POST", headers: { Authorization: `Bearer ${accessToken.token}`, "Content-Type": "application/json", }, body: JSON.stringify(body), }); if (!res.ok) { const err = await res.json(); throw new Error(`HTTP ${res.status}: ${err.error?.message}`); } const data = await res.buffer(); // バイナリ取得 fs.writeFileSync("output.mp3", data); console.log("✅ 音楽生成完了 → output.mp3"); } catch (e) { console.error("❌ エラー:", e.message); } |
4‑4. 主なエラーレスポンスと対処法(導入文)
API 呼び出し時に返されるステータスコードは、問題の特定と迅速なリカバリ に役立ちます。以下は公式ドキュメントで定義された代表的なエラーです。
| ステータス | 主な原因 | 推奨対処 |
|---|---|---|
| 400 | パラメータ不足、JSON 構文エラー | 必須項目 prompt が欠落していないか確認し、jsonlint.com 等で構文検証 |
| 401 | 無効なアクセストークンまたは認証ヘッダー未設定 | トークンの有効期限をチェックし、Authorization: Bearer … を正しく付与 |
| 403 | 利用プランの上限超過、地域制限 | プロジェクトの Quota 設定を確認し、必要なら増枠申請 |
| 429 | レートリミット(1 分あたりの呼び出し回数) | エクスポネンシャルバックオフ戦略で再試行 |
| 500–504 | サーバ側一時障害 | 数分待機後に再実行。ステータスページ(https://status.cloud.google.com/)で障害情報を確認 |
5. プロンプト設計のベストプラクティス
5‑1. 基本構造と記述例(導入文)
Gemini の音楽生成は 「ジャンル → テンポ → 感情」 の順序で情報を受け取ると、意図したサウンドが得やすくなります。以下のテンプレートを参考にしてください。
|
1 2 |
<ジャンル>、BPM<数値>、<感情・雰囲気>、<楽器指定(任意)> |
例
|
1 2 |
エレクトロニカ、BPM128、爽快なサマーサウンド、シンセリード+ドラムマシン |
5‑2. 楽器・アレンジ指示のコツ(導入文)
楽器を列挙する場合は 主要パートだけ を明記し、余計なディテールは省くと解釈がブレにくいです。
| シンプル | 詳細 |
|---|---|
ピアノとストリングスのバラード |
ピアノ・チェロ・ヴァイオリンで構成されたバラード、サビでハーモニックシンセ追加 |
5‑3. ハイ品質モードと長さ制限(導入文)
現在ベータ版では 「ハイ品質」 設定を有効にすると、内部的に 2 倍のパラメータサンプル数 が使用されます。これにより音質が向上しますが、生成時間も長くなる点に注意してください。
| 項目 | 制限 |
|---|---|
| 最大生成長 | 90 秒(2026‑04 時点) |
| ハイ品質モード | アプリ設定 音質 → ハイ (44.1 kHz)、API では audioConfig.sampleRateHertz = 44100 を指定 |
実務上のヒント:90 秒を超える楽曲が必要な場合は 「セグメント分割」(例:30 秒 × 3)で生成し、DAW で統合すると自然に繋げられます。
5‑4. 活用シーン別プロンプト例(導入文)
以下は業務やクリエイティブプロジェクトで実際に有効とされるプロンプトです。目的に合わせてテンプレートをカスタマイズしてください。
| シーン | 推奨音楽特徴 | プロンプト例 |
|---|---|---|
| SNS 動画 BGM | 短尺・ループ可、アップビート | ポップ EDM、BPM128、明るいサマー感、4 小節ループ |
| ポッドキャストイントロ | 落ち着いた雰囲気、30 秒以内 | ジャズピアノ、BPM80、温かみのあるトーン、30秒 |
| 広告音楽 | 印象的なフック、商品イメージに合わせたテンポ | シンセリード主体のテクノ、BPM140、未来感、サビでドロップ |
| ゲーム BGM | ループしやすくシーン別に変化可能 | オーケストラ+エレクトロニカ、BPM100、緊張感ある冒険感、8 小節ループ |
6. まとめと次のアクション
- 公式情報は限定的:音質・商用利用条件は未公開が多く、実装前に必ず Google の最新リリースノートを確認してください。
- 安全フィルタは必須:著作権ブロックやコンテンツポリシー違反が検出された場合は API が自動で生成を拒否します。エラーハンドリングを実装しておくと運用がスムーズです。
- 認証は OAuth 2.0:ベータ版でも
Bearerトークンが推奨されます。API キーの使用はテスト目的に留め、プロダクションでは必ずサービスアカウントを利用してください。 - プロンプト設計はシンプルかつ構造化:ジャンル・テンポ・感情の順序で記述し、必要最小限の楽器指定にとどめることで期待通りの音楽が得られます。
今後のアップデートや正式リリース時には、本ガイドを 公式ドキュメント(Google AI Documentation) と照らし合わせて内容を再確認してください。
参考リンク・出典
-
Google Generative Language API (v1beta) – Official Docs
https://ai.google.dev/api -
Gemini の安全ポリシーと著作権フィルタに関するガイドライン(2026‑04 更新)
https://cloud.google.com/vertex-ai/docs/generative-ai/safety-guidelines -
Google Cloud Console – API とサービスの有効化手順
https://console.cloud.google.com/apis/library -
OAuth 2.0 認証フロー(Service Account)公式ガイド
https://cloud.google.com/docs/authentication/production -
利用規約と商用利用に関する FAQ(2026‑03)
https://cloud.google.com/terms