Praat met een standbeeld: een multimodale app bouwen met ElevenAgents
- Geschreven door
- Joe Reeve
- Gepubliceerd
- Laatst bijgewerkt
LuisterenLuister naar dit artikel
Fotografeer een standbeeld. Identificeer de afgebeelde figuren. Voer vervolgens in realtime een stemgesprek met hen, waarbij elk personage met een eigen stem spreekt die bij de periode past.
Dat kun je bouwen met de Voice Design- en Agent-API's van ElevenLabs. In dit artikel nemen we de architectuur door van een mobiele webapp die computervisie combineert met spraakgeneratie om openbare monumenten om te zetten in interactieve ervaringen. Alles hier is te reproduceren met de onderstaande API's en codevoorbeelden.
Sla de tutorial over: bouw het met één prompt
De volledige app hieronder is gebouwd met één prompt en getest om in één keer succesvol te werken in Cursor met Claude Opus 4.5 (high) vanuit een leeg NextJS-project. Wil je vooruitspoelen en je eigen app bouwen? Plak dit dan in je editor:
Je kunt ook de ElevenLabs Agent Skills gebruiken in plaats van naar de documentatie te linken. Deze zijn gebaseerd op de documentatie en kunnen nog betere resultaten opleveren.
In de rest van dit artikel leggen we uit wat die prompt oplevert.
Hoe het werkt
De pipeline bestaat uit vijf stappen:
- Leg een afbeelding vast
- Identificeer het kunstwerk en de personages (OpenAI)
- Onderzoek de geschiedenis (OpenAI)
- Genereer unieke stemmen voor elk personage (ElevenAPI)
- Start een realtime stemgesprek via WebRTC (ElevenAgents)
Het standbeeld identificeren met visie
Wanneer een gebruiker een standbeeld fotografeert, wordt de afbeelding naar een OpenAI-model met visuele mogelijkheden gestuurd. Een gestructureerde systeemprompt haalt de naam van het kunstwerk, de locatie, de kunstenaar, de datum en – cruciaal – een gedetailleerde stembeschrijving voor elk personage op. De systeemprompt bevat de verwachte JSON-outputindeling:
Voor een foto van het standbeeld van Boudica op Westminster Bridge in Londen ziet het antwoord er als volgt uit:
Effectieve stembeschrijvingen schrijven
De kwaliteit van de stembeschrijving bepaalt rechtstreeks de kwaliteit van de gegenereerde stem. De Voice Design prompting guide behandelt dit uitgebreid, maar de belangrijkste kenmerken om op te nemen zijn: een markering voor audiokwaliteit ("Perfect audio quality."), leeftijd en gender, toon/timbre (diep, resonant, gruizig), een precies accent ("thick Celtic British accent" in plaats van alleen "British") en tempo. Beschrijvende prompts leveren nauwkeurigere resultaten op: "a tired New Yorker in her 60s with a dry sense of humor" presteert elke keer beter dan "an older female voice".
Een paar aandachtspunten uit de gids: gebruik "thick" in plaats van "strong" om de nadrukkelijkheid van een accent te beschrijven, vermijd vage termen als "foreign" en gebruik voor fictieve of historische personages echte accenten als inspiratie (bijvoorbeeld: "an ancient Celtic queen with a thick British accent, regal and commanding").
Personagestemmen maken met Voice Design
De Voice Design API genereert nieuwe synthetische stemmen op basis van tekstbeschrijvingen – geen stemvoorbeelden of klonen vereist. Daardoor is deze API zeer geschikt voor historische personen van wie geen bronmateriaal met audio bestaat.
Het proces bestaat uit twee stappen.
Previews genereren
De tekstparameter is belangrijk. Langere voorbeeldteksten die bij het personage passen (50+ woorden) leveren stabielere resultaten op – laat de dialoog aansluiten bij het personage in plaats van een algemene begroeting te gebruiken. De Voice Design prompting guide behandelt dit uitgebreider.
De stem opslaan
Zodra previews zijn gegenereerd, selecteer je er één en maak je een permanente stem:
Voor standbeelden met meerdere personages worden stemmen parallel gemaakt. De stemmen voor vijf personages worden ongeveer even snel gegenereerd als die voor één personage:
Een ElevenLabs Agent met meerdere stemmen bouwen
Nadat de stemmen zijn gemaakt, is de volgende stap het configureren van een ElevenLabs Agent die in realtime kan wisselen tussen stemmen van personages.
Wisselen tussen meerdere stemmen
De supportedVoices-array vertelt de agent welke stemmen beschikbaar zijn. Het Agents-platform verwerkt het wisselen van stem automatisch: wanneer het antwoord van de LLM aangeeft dat een ander personage spreekt, stuurt de TTS-engine dat segment naar de juiste stem.
Prompt engineering voor groepsgesprekken
Om meerdere personages als een echte groep te laten voelen, in plaats van als een opeenvolgende vraag-en-antwoordsessie, is bewust promptontwerp nodig:
Realtime spraak via WebRTC
Het laatste onderdeel is de clientverbinding. ElevenLabs Agents ondersteunen WebRTC voor stemgesprekken met lage latency – merkbaar sneller dan verbindingen op basis van WebSocket, wat belangrijk is voor natuurlijke beurtwisseling.
Server-side: een gesprekstoken ophalen
Client-side: de sessie starten
De useConversation-hook verwerkt audio-opname, streaming, spraakactiviteitsdetectie en afspelen.
Onderzoek verdiepen met zoeken op het web
Voor gebruikers die meer historische context willen voordat ze een gesprek starten, kun je een uitgebreide onderzoeksmodus toevoegen met de webzoektool van OpenAI:
Wat we hebben geleerd
Dit project laat zien dat we ervaringen kunnen bouwen die zowel de digitale als de echte wereld overstijgen wanneer we verschillende AI-modaliteiten combineren: tekst, onderzoek, visie en audio. Er is veel onontdekt potentieel in multimodale agents dat we graag door meer mensen zien verkennen voor onderwijs, werk en plezier.
Begin met bouwen
De API's die in dit project worden gebruikt – Voice Design, ElevenAgents, en OpenAI – zijn vandaag allemaal beschikbaar.
Joe is on the Growth team at ElevenLabs, focused on helping developers get the most out of the company's frontier audio models. Previously, he was an Engineering Manager at Amplitude and served as CTO of the Coronavirus Tech Handbook, building a real-time collaborative editing platform used by thousands of contributors.




