Part 5 Lyria RealTime API

API 開發者進階玩法

用程式碼打造互動式音樂生成器

Python WebSocket 即時串流 MIDST 互動

Lyria RealTime 完整規格

Google 提供的即時音樂生成 API,透過 WebSocket 連線實現低延遲的串流音樂輸出,專為開發者打造的互動式音樂引擎。

項目規格備註
模型名稱models/lyria-realtime-exp實驗版(exp = experimental)
連線方式WebSocket 雙向即時通訊低延遲、持續串流
輸出格式原始 16-bit PCM無壓縮,最高品質
取樣率48,000 Hz(48kHz)CD 音質為 44.1kHz
聲道立體聲(Stereo)左右雙聲道
延遲控制變更到效果 ≤ 2 秒近乎即時反應
音樂類型僅支援純器樂人聲功能尚未開放給 API
最長串流持續生成(無硬性上限)免費工具限 10 分鐘
💡 適用場景:遊戲配樂(根據玩家行為即時變換)、互動裝置(展覽/藝術裝置)、即時 DJ 應用(文字操控音樂轉換)、直播背景音樂即時調整。

取得 API 金鑰

要使用 Lyria RealTime API,你需要先取得一組 API 金鑰。以下是詳細步驟:

1

前往 Google AI Studio

用瀏覽器打開 aistudio.google.com,使用你的 Google 帳號登入。

2

點擊「Get API Key」

在左側選單或頁面頂部找到「Get API Key」按鈕,點擊進入金鑰管理頁面。

3

建立新金鑰

點擊「Create API Key」,選擇一個 Google Cloud 專案(或建立新專案),系統會自動產生一組金鑰。

4

複製並安全保存

金鑰格式類似:AIzaSyB1234567890abcdefg。請立即複製並保存到安全的地方。

Google AI Studio 取得 API Key 的頁面
⚠️ 安全提醒:API 金鑰等同密碼,絕對不要公開分享!截圖時記得馬賽克遮住。建議使用環境變數或 .env 檔案管理金鑰。

環境設定:安裝 Python 套件

在寫程式之前,需要先安裝 Google 提供的 GenAI Python SDK。這個套件就像一座橋樑,讓你的 Python 程式可以跟 Lyria RealTime 模型溝通。

安裝指令

打開終端機(命令提示字元 / Terminal),輸入以下指令:

pip install google-genai

看到以下訊息代表安裝成功:

Successfully installed google-genai-x.x.x
終端機中 pip install google-genai 安裝成功畫面

常見安裝問題

錯誤訊息原因解決方法
pip 不是內部或外部命令 尚未安裝 Python python.org 下載安裝,記得勾選「Add to PATH」
Permission denied 權限不足 改用 pip install --user google-genai
Could not find a version pip 版本過舊 先執行 pip install --upgrade pip
💡 建議:如果你有使用虛擬環境(venv),建議在虛擬環境中安裝,避免與其他專案衝突。

程式碼結構概覽

我們要建立的 Python 程式 generate_music.py,提供兩種模式:「推薦組合」快速生成,或「自訂設定」依 MIDST 公式逐步選擇音樂參數,最終自動組合提示詞並呼叫 API 生成音樂。

程式主選單

推薦組合(快速模式)

提供 6 組經典搭配(咖啡廳 Lo-fi、歡樂流行、史詩配樂、深夜爵士、派對 EDM、浪漫民謠),選一個就能直接生成,適合新手

🎧

自訂設定(MIDST 公式)

依照 MIDST 公式逐步設定各項參數,自由搭配風格與樂器,適合進階玩家

自訂模式互動流程

M 🎸
情緒
I 🎹
樂器
D 🎧
動態
S 🎶
風格
T ⏱
節奏
✅ 確認
生成

每個步驟的選項數量

🎸

M - Mood 情緒

8 種選項:歡樂、憂傷、放鬆、激昂、浪漫、史詩、神秘、懷舊

🎹

I - Instrument 樂器

10 種選項(可多選,最多 3 個):鋼琴、木吉他、電吉他、弦樂、薩克斯風、合成器、鼓組、貝斯、長笛、烏克麗麗

🎧

D - Dynamic 動態

4 種選項:保守(0.5)、適中(1.0)、大膽(1.5)、極端(2.0)。新手建議選「適中」。

🎶

S - Style 風格

10 種選項:流行、搖滾、爵士、EDM、古典、Lo-fi、嘻哈、R&B、民謠、環境音樂(附建議 BPM 與情緒搭配)

T - Tempo 節奏

7 種預設 + 自訂:60/75/90/110/120/140/170 BPM,或自訂 60-200 之間

⚠️ 關於人聲:Lyria RealTime API 目前僅支援純器樂生成。人聲演唱功能僅在 Gemini App 的 Lyria 3 對話介面中可使用,尚未開放給 API。程式中提供「人聲功能說明」選項可查看詳細對照。

WeightedPrompt 權重設定

Lyria RealTime API 的核心特色之一是加權提示詞(WeightedPrompt),可以為不同類別的提示詞分別設定權重,讓 AI 更精準地理解你想要的音樂重點。

權重設定原理

每個 WeightedPrompt 包含兩個值:text(提示文字)和 weight(權重 0.0 ~ 1.0)。權重越高,AI 越重視該提示。

# 建立加權提示詞組合
prompts = [
    types.WeightedPrompt(text="jazz",                    weight=1.0),  # 風格 - 最高權重
    types.WeightedPrompt(text="relaxed calm peaceful",  weight=0.8),  # 情緒 - 第二優先
    types.WeightedPrompt(text="piano",                  weight=0.6),  # 樂器 1
    types.WeightedPrompt(text="saxophone",              weight=0.6),  # 樂器 2
]

# 送出給 API
await session.set_weighted_prompts(prompts=prompts)

建議的權重分配策略

類別建議權重說明
Style 風格1.0最重要,決定音樂的整體方向
Mood 情緒0.8情緒氛圍是次要核心
Instrument 樂器0.6輔助角色,微調音色搭配
💡 進階技巧:你可以在音樂播放過程中動態修改權重,例如慢慢把 "electronic ambient" 的權重從 0 增加到 0.5,音樂會平滑過渡到新風格!

可調整參數一覽表

除了提示詞之外,Lyria RealTime API 還提供多個可即時調整的參數,讓你精細控制音樂生成的結果。

參數範圍預設值說明
bpm 60 - 200 120 每分鐘節拍數,決定音樂速度
temperature 0.0 - 3.0 1.0 創意多樣性,越高越隨機、越有驚喜
guidance 0.0 - 6.0 3.0 提示遵從度,越高越嚴格遵循你的提示詞
density 0.0 - 1.0 0.5 音符密度,0 = 稀疏簡約,1 = 密集豐富
brightness 0.0 - 1.0 0.5 音色明亮度,0 = 暗沉溫暖,1 = 明亮清脆
scale 列舉值 自動 音階/調性(如 C major、A minor)
mute_bass True / False False 靜音貝斯聲部
mute_drums True / False False 靜音鼓組聲部
# 設定生成參數範例
await session.set_music_generation_config(
    config=types.LiveMusicGenerationConfig(
        bpm=90,               # 節奏:中慢速
        temperature=1.0,       # 創意度:適中
        guidance=3.5,          # 提示遵從度:中高
        density=0.4,           # 音符密度:偏稀疏
        brightness=0.6,        # 明亮度:略亮
    )
)
小技巧:這些參數都可以在音樂播放過程中即時調整,效果會在 2 秒內反映到音樂上,非常適合做 Live DJ 演出!

進階玩法:混合風格

WeightedPrompt 最強大的用法是混合多種風格,透過不同權重比例創造獨特的音樂融合效果。

# 範例 1:爵士 + 電子環境音樂融合
await session.set_weighted_prompts(prompts=[
    types.WeightedPrompt(text='jazz piano trio',      weight=1.0),
    types.WeightedPrompt(text='electronic ambient',   weight=0.3),
])

# 範例 2:古典 + Lo-fi 跨界混搭
await session.set_weighted_prompts(prompts=[
    types.WeightedPrompt(text='classical strings orchestra', weight=0.7),
    types.WeightedPrompt(text='lo-fi chill beats vinyl',    weight=0.5),
])

# 範例 3:動態漸變(播放中修改權重)
# 第 0 秒:純爵士
await session.set_weighted_prompts(prompts=[
    types.WeightedPrompt(text='smooth jazz', weight=1.0),
    types.WeightedPrompt(text='EDM drop',    weight=0.0),
])
# 第 15 秒:逐漸混入 EDM 元素
await session.set_weighted_prompts(prompts=[
    types.WeightedPrompt(text='smooth jazz', weight=0.5),
    types.WeightedPrompt(text='EDM drop',    weight=0.8),
])

執行結果展示

程式執行後的 MIDST 互動選單畫面 設定總覽確認畫面
💡 創意小提示:嘗試將看似不相容的風格混搭(如 Metal + Bossa Nova),有時會產生意想不到的驚喜效果!

完整執行流程展示

以下是程式從主選單到生成完成的完整互動過程:

*********************************************
*                                           *
*     Gemini Lyria RealTime 音樂生成器      *
*     依照 MIDST 公式,一步步設定你的音樂   *
*                                           *
*     作者:曾慶良(阿亮老師)              *
*     © 2026 僅供課程學員學習使用           *
*                                           *
*********************************************

  注意:RealTime API 僅支援純器樂生成。

==========================================================
  請選擇模式
==========================================================
  [1] 推薦組合(快速模式,適合新手)
  [2] 自訂設定(MIDST 公式,進階玩家)
  [3] 人聲功能說明
  [4] 關於作者 / 版權聲明
==========================================================

  請輸入編號:1

==========================================================
  推薦組合(選一個直接生成,適合新手)
==========================================================
  [1] 咖啡廳 Lo-fi    — 放鬆的低保真音樂,適合讀書、工作
  [2] 歡樂流行曲      — 開朗愉快的流行風格,適合日常背景
  [3] 史詩電影配樂    — 壯闘的管弦樂,適合影片、簡報開場
  [4] 深夜爵士        — 慵懶的爵士風情,適合夜晚放鬆
  [5] 派對電子舞曲    — 高能量 EDM,適合運動、派對
  [6] 浪漫民謠        — 溫暖柔和的民謠吉他,適合旅遊 Vlog
==========================================================

  請輸入編號:4

==========================================================
  已選擇:深夜爵士
==========================================================
  風格:jazz / 情緒:relaxed calm peaceful
  樂器:piano, saxophone, bass
  BPM:90 / 創意程度:1.0 / 長度:30 秒
==========================================================

  確認開始生成?(y/n):y
  正在連接 Lyria RealTime...
  開始生成音樂,請稍候...
  生成進度:#################### 100%
  生成完成!
  音樂已儲存為:output_music.wav
  長度:30 秒 / 格式:WAV 48kHz 立體聲
音樂生成過程 音樂生成過程 音樂生成完成
成功!程式會自動將音訊串流儲存為 WAV 檔案(48kHz 立體聲),你可以直接用任何播放器播放,或匯入 DAW 進行後製。

免費工具 A:Prompt DJ

最簡單的入門方式!打開網頁就能即時操控音樂生成,像 DJ 一樣混音。

基本資訊

操作步驟

  1. 用 Google 帳號登入
  2. 貼上你的 API 金鑰
  3. 在提示欄輸入風格,如 jazz piano, relaxed
  4. 按下 Play 開始播放
  5. 邊播邊改提示詞,音樂會平滑過渡
  6. 用 BPM / Temperature 滑桿微調
Prompt DJ 介面 Prompt DJ 操作畫面
💡 小技巧:不要一次大改提示詞,而是慢慢加入或替換關鍵字(例如先加 saxophone,再把 piano 換成 guitar),音樂轉場會更自然。

免費工具 B:MIDI DJ

跟 Prompt DJ 功能相同,但額外支援用實體 MIDI 控制器操控參數,適合有硬體設備的使用者。

基本資訊

操作步驟

  1. 用 USB 連接 MIDI 控制器到電腦
  2. Chrome 瀏覽器打開連結
  3. 允許瀏覽器存取 MIDI 裝置
  4. 輸入音樂風格,按 Play 播放
  5. 用旋鈕即時調整 BPM、風格混合比例
  6. 用按鍵觸發風格切換或靜音樂器
MIDI DJ 介面
⚠️ 沒有 MIDI 控制器?直接用工具 A(Prompt DJ)就好,功能幾乎完全一樣,差別只是操控方式不同。

免費工具 C:The Infinite Crate

Google Magenta 團隊推出的免費 DAW 外掛,可在 Ableton Live、Logic Pro 等音樂製作軟體中直接使用 Lyria RealTime。

基本資訊

支援平台

WindowsVST3 外掛 / 獨立應用程式
MacAU / VST3 外掛 / 獨立應用程式

操作步驟

  1. 下載並安裝對應系統的版本
  2. 在 DAW 中搜尋並載入外掛
  3. 第一次開啟時貼上 API 金鑰
  4. 在提示欄輸入風格,按 Play 生成
  5. BPM 設為 SYNC 可同步 DAW 速度
  6. 在 DAW 中直接錄製生成的音訊
⚠️ 限制:每次最多連續生成 10 分鐘,時間到了按 Reset 重新開始。沒有 DAW 的話,可選「獨立應用程式(Standalone)」模式單獨使用。
建議學習路線:先玩 Prompt DJ 體驗即時操控 ➔ 再嘗試寫 Python 程式自訂更多參數 ➔ 最後用 Infinite Crate 整合到音樂製作流程中。
下一章:Part 6 提示詞攻略 ➜