惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
G
Google Developers Blog
有赞技术团队
有赞技术团队
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Blog — PlanetScale
Blog — PlanetScale
罗磊的独立博客
博客园 - 聂微东
V
Visual Studio Blog
博客园_首页
D
DataBreaches.Net
腾讯CDC
I
InfoQ
F
Fortinet All Blogs
量子位
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 【当耐特】
Google DeepMind News
Google DeepMind News
人人都是产品经理
人人都是产品经理
云风的 BLOG
云风的 BLOG
月光博客
月光博客
Recent Announcements
Recent Announcements
MongoDB | Blog
MongoDB | Blog
C
Check Point Blog

TanStack Blog

TanStack + Vercel Partnership | TanStack Blog TanStack AI Enters the RC Phase | TanStack Blog Inside a TanStack Router Navigation | TanStack Blog Form v2 is here: All you need to know about the alpha | TanStack Blog Announcing TanStack Table V9 | TanStack Blog TanStack Has a New Look | TanStack Blog Introducing TanStack Markdown and TanStack Highlight | TanStack Blog We Removed React Server Components from TanStack.com | TanStack Blog We Stopped Using RSC on TanStack.com | TanStack Blog Inside TanStack Table V9 Reactivity | TanStack Blog Run Any Coding Agent in a Sandbox, With One chat() Call | TanStack Blog TanStack Start and TanStack AI Win 2026 Open Source Awards | TanStack Blog How an Underrated Refactor Saved 90% Memory Usage | TanStack Blog TypeScript Performance in TanStack Table V9 | TanStack Blog TanStack AI Beta: The Switzerland of AI Tooling Grows Up | TanStack Blog TanStack Table V9: Taking Form | TanStack Blog TanStack AI: Your MCP, your way | TanStack Blog TanStack Start Adds First-Class Rsbuild Support | TanStack Blog Introducing Experimental Workflows and Orchestrators in TanStack AI | TanStack Blog Chat UIs Are Lists Until They Aren't | TanStack Blog Structured Output That Remembers Across Turns | TanStack Blog TanStack Virtual just got a lot faster, and finally handles iOS | TanStack Blog TanStack AI now fully speaks AG-UI | TanStack Blog Stop Waiting on JSON: Stream Structured Output with One Schema | TanStack Blog Hardening TanStack After the npm Compromise | TanStack Blog Postmortem: TanStack npm supply-chain compromise | TanStack Blog Who Owns the Tree? RSC as a Protocol, Not an Architecture | TanStack Blog Your AI Tool Calls Should Fail at Compile Time, Not in Production | TanStack Blog One Flag, Every Chunk: Debug Logging Lands in TanStack AI | TanStack Blog How We Test TanStack AI Across 7 Providers on Every PR | TanStack Blog
TanStack AI Just Learned to Compose Music | TanStack Blog
Alem Tuzlak · 2026-04-24 · via TanStack Blog

by Alem Tuzlak on Apr 24, 2026.

TanStack AI Just Learned to Compose Music

The AI audio ecosystem is a mess. Gemini's Lyria wants a natural-language prompt and returns raw PCM you have to wrap in a RIFF header yourself. Fal hosts dozens of audio models where one wants music_length_ms in milliseconds, the next wants seconds_total, and most want plain duration. ElevenLabs has its own shape. Whisper has another. Every provider disagrees on whether you get a URL, a base64 blob, or a raw buffer.

If you are shipping an AI product that needs music, sound effects, speech, or transcription, you end up writing the same boring glue code five times.

TanStack AI just removed that glue. The latest release lands a full audio stack: a new generateAudio activity, streaming support, fal and Gemini Lyria adapters, and framework hooks for React, Solid, Vue, and Svelte. One typed API, any provider.

Here is what shipped and why you should care.

The new generateAudio() activity sits alongside generateImage, generateSpeech, generateVideo, and generateTranscription in @tanstack/ai. It takes a text prompt, dispatches to whatever adapter you hand it, and returns a GeneratedAudio object with exactly one of url or b64Json.

Swap geminiAudio for falAudio and the exact same call generates music through MiniMax, DiffRhythm, Stable Audio 2.5, or any of the other models in fal's catalog. The adapter translates per-model details (like fal's music_length_ms vs seconds_total vs duration naming) so your app code never sees them.

Music and SFX generation is slow. Lyria 3 Pro takes several seconds. Stable Audio takes longer. If you are building a UI, blocking the request the whole time is a bad experience.

generateAudio now supports stream: true, returning an AsyncIterable<StreamChunk> you can pipe straight through toServerSentEventsResponse():

The client receives progress events and the final audio over a single SSE connection, the same transport model already used by generateImage and generateVideo. No new infrastructure, no special-case code paths.

Every framework integration gets a new hook matching the existing media-hook shape:

  • @tanstack/ai-react: useGenerateAudio
  • @tanstack/ai-solid: useGenerateAudio
  • @tanstack/ai-vue: useGenerateAudio
  • @tanstack/ai-svelte: createGenerateAudio

The API is identical to useGenerateImage and friends:

Both connection (SSE) and fetcher (plain HTTP) transports are supported, so this works with TanStack Start, Next.js, Remix, or any backend you already have.

Gemini gets two new entry points:

  • geminiAudio() for Lyria 3 Pro and Lyria 3 Clip music generation. Lyria Pro reads duration from the natural-language prompt; Clip is fixed at 30 seconds and returns MP3.
  • A new gemini-3.1-flash-tts-preview TTS model with 70+ languages, 200+ audio tags, and multi-speaker dialogue via multiSpeakerVoiceConfig.

Fal gets three tree-shakeable adapters:

  • falSpeech() for TTS via fal-ai/gemini-3.1-flash-tts, fal-ai/minimax/speech-2.6-hd, and the fal-ai/kokoro/* family.
  • falTranscription() for STT via fal-ai/whisper, fal-ai/wizper, and fal-ai/speech-to-text/turbo.
  • falAudio() for music, SFX, and the wider fal catalog: audio-to-audio, voice conversion and cloning, enhancement, separation, isolation, understanding, and merge.

All four follow the tree-shakeable subpath-import pattern, so your bundle only grows by the adapters you actually import.

The new activity is live in @tanstack/ai and the two provider packages:

Then open the audio generation guide for the full adapter matrix, or pull the ts-react-chat example to see working TTS and transcription tabs plus a /generations/audio route covering Lyria and fal side by side.

Star TanStack AI on GitHub if you want to see where this goes next.