Lyria 3.5 output: MP3 or WAV at 44.1 kHz, and what Sume returns
Google lists MP3 by default or WAV, 44.1 kHz stereo, with a SynthID watermark. Sume's music docs say the artifact is typically audio/mpeg. Check it in code.

Google's Lyria 3.5 docs list MP3 as the default output with WAV as an option, 44.1 kHz stereo, and a SynthID watermark. Sume's Music 1.0 docs do not offer a format field: they say the audio artifact is typically audio/mpeg, hosted on media.sume.com.
So through Sume, plan for an MP3 file and check the content_type on the artifact instead of assuming it.
What each page says
Statements from the two pages as read on 2026-10-03. Where a page is silent, the table says so.
| Item | Gemini API docs | Sume docs |
|---|---|---|
| File type | MP3 default, WAV available | Typically audio/mpeg |
| Sample rate and channels | 44.1 kHz stereo | Not stated |
| Watermark | SynthID | Not stated |
| Format selector | Yes (MP3 or WAV) | No such request field in the docs |
| Where the file lives | In the API response | result.artifacts[] with type: audio |
Check the artifact in code
This script polls a music job, finds the audio artifact, and fails loudly if the content type is not the one you built your pipeline around. It calls the Music Router, which takes the same body as Music 1.0, and reads the artifact shape documented on the Music 1.0 page.
import os, time, requests
BASE = "https://api.sume.com"
H = {"Authorization": "Bearer " + os.environ["SUME_API_KEY"]}
def music(prompt, key):
r = requests.post(BASE + "/v1/music-router/generate",
headers={**H, "Idempotency-Key": key},
json={"prompt": prompt}, timeout=60)
r.raise_for_status()
body = r.json()
return body.get("data", body)
def wait_result(job_id):
while True:
s = requests.get(f"{BASE}/v1/jobs/{job_id}/status", headers=H, timeout=60).json()
d = s.get("data", s)
if d.get("terminal"):
break
time.sleep(d.get("next_poll_after_seconds") or 5)
res = requests.get(f"{BASE}/v1/jobs/{job_id}/result", headers=H, timeout=60).json()
return res.get("data", res)
job = music("Warm lo-fi bed, 84 BPM. Instrumental, no vocals.", "music-check-001")
job_id = job.get("id") or job["job"]["id"]
result = wait_result(job_id)
arts = (result.get("result") or result).get("artifacts", [])
audio = next(a for a in arts if a["type"] == "audio")
assert audio["content_type"] == "audio/mpeg", audio["content_type"]
print(audio["url"])What follows from an MP3 artifact
Practical consequences, limited to what the docs state.
- Decoding and re-encoding adds a generation of loss, so keep the first file as the master and cut copies from it.
- The timeline audio docs say an MP3 output re-adds priming padding at every edge and recommend WAV when a file will be joined again, so keep sample-exact work on WAV.
- Do not state a sample rate or channel count in your own docs for the Sume file until you have read it from the file. Google's 44.1 kHz stereo figure is for Google's output.
- Use only the Sume media URL from the result. The docs say raw provider URLs are not public outputs.
Watermark and disclosure
Google's docs state a SynthID watermark on Lyria output. Sume's page does not repeat that, so whether it survives to the Sume artifact is not something this page can confirm. If provenance matters for your delivery, test it with the detection tool of your choice on a Sume-returned file and record the result.
Sources
Related posts
More in Media tools
- MAI-Voice-2.1 Flash narration for a video cut
Narration from any voice model can be the audio spine of a Sume Timeline cut. Import the file first, then render at $0.10 per output minute.
- Mercado Libre Clips: 61 s needs two clips in Timeline
Mercado Libre Clips run 10 to 61 seconds. Some Sume models make 30 s clips, so two in Timeline give a 60 s vertical Clip for one billed minute.
- Meta Reels ads convert non-9:16 media: send your own 9:16 clip
Meta says Reels placement can apply automatic templates that convert non-9:16 media. Render the 9:16 yourself with Sume timeline fit modes and keep the framing.
- One music track for a whole Q4 campaign: $0.125, not $1.50
A Music Router generation is $0.125. One bed reused under 12 ads costs $0.125; a new bed for each costs $1.50. Duck it under voice in the Timeline render.
Written by Sume