Porozmawiaj z posągiem: jak stworzyć wielomodalną aplikację z ElevenAgents
- Autor
- Joe Reeve
- Opublikowano
- Ostatnia aktualizacja
PosłuchajPosłuchaj tego artykułu
Zrób zdjęcie pomnika. Rozpoznaj przedstawione postacie. Potem porozmawiaj z nimi głosowo w czasie rzeczywistym — każda postać będzie mówić innym głosem pasującym do epoki.
To możesz stworzyć z API Voice Design i Agent od ElevenLabs. W tym artykule pokazujemy architekturę mobilnej aplikacji webowej, która łączy wizję komputerową z generowaniem głosu, by zmienić publiczne pomniki w interaktywne doświadczenia. Wszystko możesz odtworzyć za pomocą poniższych API i przykładów kodu.
Pomiń poradnik — zbuduj to jednym promptem
Cała poniższa aplikacja powstała na podstawie jednego promptu i została pomyślnie przetestowana w trybie one-shot w Cursor z Claude Opus 4.5 (high), zaczynając od pustego projektu NextJS. Jeśli chcesz przejść od razu do działania i stworzyć własną aplikację, wklej to do edytora:
Możesz też użyć ElevenLabs Agent Skills zamiast linkować do dokumentacji. Bazują one na dokumentacji i mogą dać jeszcze lepsze wyniki.
W dalszej części artykułu omawiamy, co tworzy ten prompt.
Jak to działa
Proces składa się z pięciu etapów:
- Zrób zdjęcie
- Rozpoznaj dzieło i jego postacie (OpenAI)
- Zbadaj historię (OpenAI)
- Wygeneruj unikalne głosy dla każdej postaci (ElevenAPI)
- Rozpocznij rozmowę głosową w czasie rzeczywistym przez WebRTC (ElevenAgents)
Rozpoznawanie pomnika za pomocą wizji
Gdy użytkownik fotografuje pomnik, obraz trafia do modelu OpenAI z obsługą wizji. Ustrukturyzowany prompt systemowy wyodrębnia nazwę dzieła, lokalizację, artystę, datę, a przede wszystkim szczegółowy opis głosu każdej postaci. Prompt systemowy zawiera oczekiwany format wyjściowy JSON:
W przypadku zdjęcia pomnika Boudiki na Westminster Bridge w Londynie odpowiedź wygląda tak:
Jak pisać skuteczne opisy głosu
Jakość opisu głosu bezpośrednio wpływa na jakość wygenerowanego głosu. Poradnik promptowania Voice Design szczegółowo omawia ten temat, ale kluczowe cechy to: znacznik jakości audio ("Perfect audio quality."), wiek i płeć, ton/barwa (deep, resonant, gravelly), precyzyjny akcent ("thick Celtic British accent" zamiast samego "British") oraz tempo. Bardziej szczegółowe prompty dają trafniejsze wyniki — "a tired New Yorker in her 60s with a dry sense of humor" zawsze sprawdzi się lepiej niż "an older female voice".
Warto pamiętać o kilku wskazówkach z poradnika: używaj „thick”, a nie „strong”, gdy opisujesz wyrazistość akcentu, unikaj nieprecyzyjnych określeń, takich jak „foreign”, a dla postaci fikcyjnych lub historycznych możesz podawać jako inspirację akcenty z rzeczywistego świata (np. „an ancient Celtic queen with a thick British accent, regal and commanding”).
Tworzenie głosów postaci z Voice Design
API Voice Design generuje nowe syntetyczne głosy na podstawie opisów tekstowych — nie potrzebujesz próbek głosu ani klonowania. Dzięki temu świetnie nadaje się do postaci historycznych, dla których nie istnieją nagrania źródłowe.
Proces ma dwa kroki.
Wygeneruj podglądy
Parametr tekstowy ma znaczenie. Dłuższy tekst próbny pasujący do postaci (ponad 50 słów) daje stabilniejsze wyniki — dopasuj dialog do postaci, zamiast używać ogólnego powitania. Poradnik promptowania Voice Design omawia to szerzej.
Zapisz głos
Gdy wygenerujesz podglądy, wybierz jeden i utwórz stały głos:
W przypadku pomników z wieloma postaciami głosy tworzą się równolegle. Wygenerowanie głosów pięciu postaci trwa mniej więcej tyle samo co jednego:
Tworzenie ElevenLabs Agent z wieloma głosami
Po utworzeniu głosów kolejnym krokiem jest skonfigurowanie ElevenLabs Agent , który może przełączać głosy postaci w czasie rzeczywistym.
Przełączanie wielu głosów
Tablica supportedVoices informuje agenta, które głosy są dostępne. Platforma Agents automatycznie obsługuje przełączanie głosów — gdy odpowiedź LLM wskazuje, że mówi inna postać, silnik TTS kieruje ten fragment do właściwego głosu.
Prompt engineering dla rozmów grupowych
Aby wiele postaci brzmiało jak prawdziwa grupa, a nie seria pytań i odpowiedzi, potrzebujesz przemyślanego projektu promptu:
Głos w czasie rzeczywistym przez WebRTC
Ostatnim elementem jest połączenie po stronie klienta. ElevenLabs Agents obsługuje WebRTC dla rozmów głosowych o niskim opóźnieniu — jest zauważalnie szybsze niż połączenia oparte na WebSocket, co ma znaczenie dla naturalnej wymiany zdań.
Po stronie serwera: pobierz token rozmowy
Po stronie klienta: rozpocznij sesję
Hook useConversation obsługuje przechwytywanie audio, streaming, wykrywanie aktywności głosowej i odtwarzanie.
Więcej kontekstu dzięki wyszukiwaniu w sieci
Dla użytkowników, którzy chcą poznać więcej kontekstu historycznego przed rozpoczęciem rozmowy, możesz dodać rozszerzony tryb badawczy z narzędziem wyszukiwania w sieci od OpenAI:
Czego się nauczyliśmy
Ten projekt pokazuje, że łącząc różne modalności AI — tekst, badania, wizję i audio — możemy tworzyć doświadczenia łączące świat cyfrowy z rzeczywistym. Agenci multimodalni mają ogromny, wciąż niewykorzystany potencjał, który chcielibyśmy, by więcej osób odkrywało w nauce, pracy i zabawie.
Zacznij tworzyć
API użyte w tym projekcie — Voice Design, ElevenAgents i OpenAI — są już dostępne.
Joe pracuje w zespole Growth w ElevenLabs, skupiając się na pomaganiu deweloperom w pełnym wykorzystaniu nowatorskich modeli audio ElevenLabs




