Prata med en staty: Bygg en multimodal app med ElevenAgents
- Skriven av
- Joe Reeve
- Publicerad
- Senast uppdaterad
LyssnaLyssna på den här artikeln
Fotografera en staty. Identifiera personerna som avbildas. Ha sedan ett röstsamtal med dem i realtid – där varje karaktär talar med en egen röst som passar tidsperioden.
Det är vad du kan bygga med ElevenLabs API:er för Voice Design och Agents. I det här inlägget går vi igenom arkitekturen för en mobil webbapp som kombinerar datorseende med röstgenerering för att göra offentliga monument till interaktiva upplevelser. Allt här går att återskapa med API:erna och kodexemplen nedan.
Hoppa över guiden – bygg den med en enda prompt
Hela appen nedan byggdes med en enda prompt och testades framgångsrikt i ett enda försök i Cursor med Claude Opus 4.5 (high) från ett tomt NextJS-projekt. Vill du hoppa direkt till att bygga din egen klistrar du in detta i din kodredigerare:
Du kan också använda ElevenLabs Agent Skills i stället för att länka till dokumentationen. De bygger på dokumentationen och kan ge ännu bättre resultat.
Resten av inlägget förklarar vad den prompten skapar.
Så fungerar det
Flödet har fem steg:
- Ta en bild
- Identifiera konstverket och dess karaktärer (OpenAI)
- Undersök historien (OpenAI)
- Generera unika röster för varje karaktär (ElevenAPI)
- Starta ett röstsamtal i realtid via WebRTC (ElevenAgents)
Identifiera statyn med datorseende
När en användare fotograferar en staty skickas bilden till en OpenAI-modell med stöd för datorseende. En strukturerad systemprompt hämtar konstverkets namn, plats, konstnär, datum och – vilket är avgörande – en detaljerad röstbeskrivning för varje karaktär. Systemprompten innehåller det förväntade JSON-utdataformatet:
För ett foto av Boudica-statyn vid Westminster Bridge i London ser svaret ut så här:
Skriv effektiva röstbeskrivningar
Kvaliteten på röstbeskrivningen avgör direkt kvaliteten på den genererade rösten. Guiden för Voice Design-prompter beskriver detta i detalj, men de viktigaste attributen att ta med är: en markör för ljudkvalitet (”Perfect audio quality.”), ålder och kön, ton/klang (djup, resonant, sträv), en specifik accent (”thick Celtic British accent” i stället för bara ”British”) och taltempo. Mer beskrivande prompter ger mer träffsäkra resultat – ”en trött New York-bo i 60-årsåldern med torr humor” kommer alltid att prestera bättre än ”en äldre kvinnoröst”.
Några saker från guiden är värda att notera: använd ”thick” i stället för ”strong” för att beskriva hur tydlig accenten är, undvik vaga termer som ”foreign”, och för fiktiva eller historiska karaktärer kan du föreslå verkliga accenter som inspiration (t.ex. ”an ancient Celtic queen with a thick British accent, regal and commanding”).
Skapa karaktärsröster med Voice Design
Voice Design API:t genererar nya syntetiska röster från textbeskrivningar – inga röstprover eller kloning krävs. Därför passar det bra för historiska personer där det inte finns något källjud.
Processen har två steg.
Generera förhandsvisningar
Textparametern spelar roll. Längre exempeltexter som passar karaktären (minst 50 ord) ger stabilare resultat – anpassa dialogen till karaktären i stället för att använda en allmän hälsning. Guiden för Voice Design-prompter beskriver detta mer ingående.
Spara rösten
När förhandsvisningarna har genererats väljer du en och skapar en permanent röst:
För statyer med flera karaktärer skapas rösterna parallellt. Röster för fem karaktärer genereras på ungefär samma tid som en enda:
Bygg en ElevenLabs Agent med flera röster
När rösterna har skapats är nästa steg att konfigurera en ElevenLabs Agent som kan växla mellan karaktärsröster i realtid.
Växling mellan flera röster
Arrayen supportedVoices anger vilka röster agenten har tillgång till. Agents-plattformen hanterar röstväxlingen automatiskt – när LLM:ens svar visar att en annan karaktär talar dirigerar TTS-motorn segmentet till rätt röst.
Promptteknik för gruppsamtal
För att få flera karaktärer att kännas som en verklig grupp – snarare än en serie frågor och svar – krävs genomtänkt promptdesign:
Röst i realtid via WebRTC
Den sista delen är klientanslutningen. ElevenLabs Agents har stöd för WebRTC för röstsamtal med låg latens – märkbart snabbare än WebSocket-baserade anslutningar, vilket är viktigt för naturliga turbyten i samtalet.
På serversidan: hämta en samtalstoken
På klientsidan: starta sessionen
Hooken useConversation hanterar ljudupptagning, strömning, röstaktivitetsdetektering och uppspelning.
Ge efterforskningen mer djup med webbsökning
För användare som vill ha mer historisk kontext innan de startar ett samtal kan du lägga till ett utökat forskningsläge med OpenAI:s verktyg för webbsökning:
Vad vi lärde oss
Projektet visar att vi kan bygga upplevelser som rör sig mellan den digitala och verkliga världen när vi kombinerar olika AI-modaliteter – text, forskning, datorseende och ljud. Agenter med flera modaliteter har mycket outnyttjad potential som vi gärna vill se fler utforska för utbildning, arbete och nöje.
Börja bygga
API:erna som används i det här projektet – Voice Design, ElevenAgents och OpenAI – är alla tillgängliga i dag.
Joe arbetar med Growth-teamet på ElevenLabs och fokuserar på att hjälpa utvecklare att få ut det mesta av ElevenLabs banbrytande ljudmodeller




