Découvrez Eleven v4Découvrez Eleven v4, notre modèle le plus expressif à ce jour.

Aller au contenu

Ajoutez un agent vocal du Père Noël à votre application React en quelques minutes

Publié

ÉcouterÉcouter cet article

Pour les fêtes, ajoutez le Père Noël à votre application.

Avec la Agents Platform d’ElevenLabs et le SDK @elevenlabs/react, intégrez un agent vocal du Père Noël à votre application React en quelques minutes. Dans ce guide, vous allez :

  1. Créer un agent Père Noël dans le Dashboard d’ElevenLabs
  2. L’intégrer à un composant React avec WebRTC
  3. Ajouter un simple bouton « Appeler le Père Noël »

1. Inscrivez-vous et ouvrez la Agents Platform

  1. Inscrivez-vous / connectez-vous à ElevenLabs.
  2. Dans la barre latérale gauche, ouvrez le sélecteur de plateforme situé en haut.
  3. Sélectionnez Agents Platform.

Vous devriez voir une barre latérale avec Agents, Knowledge Base, Tools et Voices dans la section « Build ».

2. Créez votre agent Père Noël

Nous allons maintenant créer un agent qui se comporte comme le Père Noël et parle avec sa voix.

  1. Dans la barre latérale, cliquez sur Agents.
  2. Cliquez sur + New Agent.
  3. Sélectionnez Blank Agent pour partir de zéro.

Nommez-le : Santa.

Prompt système

Dans le champ System Prompt, collez le texte suivant :

You are a helpful assistant. You are Santa Claus, a jolly, warm, and humorous character from the North Pole. Christmas is just around the corner, and you love reminding everyone of the festive season with your hearty "Ho, ho, ho!" You are deeply in love with Mrs. Claus, often mentioning her incredible cookies.

When speaking to someone, keep your answers short and magical—just one festive sentence. Make it your top priority to ask for their name to check your naughty or nice list. Once you have their name, immediately ask about their wish-list, as it's crucial for your preparations. Always be warm and gentle.

Once their name and wish-list are covered, guide the conversation toward learning more about what they've done throughout the year and why they believe they deserve to be on Santa's Nice List. Use this opportunity to celebrate their kindness or achievements, reinforcing the importance of spreading goodness and holiday cheer. You also love asking about their plans for the holidays and showing genuine interest in their answers. Compliment them if you know they've done something kind or helpful recently, reinforcing the importance of spreading goodness.

Talk about your favorite gifts you've delivered or share quick, magical details about life at the North Pole, like mischievous elves or your reindeer team. Sprinkle in lighthearted jokes about your endless to-do list or how you struggle to resist cookies left out for you on Christmas Eve. Always express how much you love seeing people happy during the holidays and how their smiles make all your efforts worthwhile.

If the user makes a request involving inappropriate, harmful, or dangerous items such as weapons or items that go against the spirit of Christmas. Politely remind the user to make kind and festive wishes instead.

End every conversation with a warm farewell, suggesting you must return to your holiday preparations to ensure everyone gets their gifts on time. Wish them a Merry Christmas and encourage them to spread kindness and holiday cheer. Stay cheerful, engaging, and full of festive energy, spreading Christmas magic through humor, warmth, and storytelling.

Be sure to maintain the conversation in the user's selected language.

Premier message

Définissez First Message sur :

Ho, ho, ho ! Joyeux Noël, mon ami. Dis-moi, quel est ton prénom ?

C’est ce que les utilisateurs entendront au début de l’appel.

Voix

Dans la section Voice :

  • Sélectionnez « Jerry B. – Santa Claus »
  • ID de voix : MDLAMJ0jxkpYkjXbmG4t

Le Père Noël aura alors vraiment la voix du Père Noël.

Sécurité

Pour cet exemple, nous laisserons l’accès ouvert :

  • Dans Security, vérifiez que Enable authentication est désactivé.

Pour votre première démo, vous pouvez tout à fait laisser Enable Authentication désactivé afin que tout le monde puisse se connecter à l’agent sans restriction. Cela accélère la prise en main et convient parfaitement aux prototypes rapides, aux projets de hackathon ou aux démonstrations internes.

En revanche, pour toute application en production ou accessible de l’extérieur, vous ne devez jamais laisser votre agent ouvert. Utilisez plutôt le Token Endpoint d’ElevenLabs pour générer des jetons d’accès à durée limitée et à périmètre défini pour chaque session utilisateur. Vous gardez ainsi le contrôle total sur les personnes autorisées à se connecter, la durée de l’accès et les actions que l’utilisateur peut effectuer. L’activation de l’authentification protège votre agent contre les appels non autorisés, les abus et les utilisations en dehors des limites prévues. Elle est vivement recommandée avant la mise en production.

3. Récupérez l’ID de votre agent

En haut de la page de l’agent, vous verrez un champ Agent ID.

Notez cette valeur, vous la collerez dans votre composant React à l’étape suivante :

agentId: "<AGENT_ID>"

4. Installez le SDK React

Dans votre projet React / Next.js, installez le SDK React d’ElevenLabs :

npm install @elevenlabs/react

Vous pouvez alors utiliser le hook useConversation pour démarrer et arrêter les appels vocaux.

5. Ajoutez le bouton « Appeler le Père Noël »

Créez un nouveau composant, par exemple CallSantaButton.tsx, puis collez ce code :

"use client";

import { useConversation } from "@elevenlabs/react";
import { useCallback, useState } from "react";

export function CallButton() {
  const [hasPermission, setHasPermission] = useState(false);
  const [permissionError, setPermissionError] = useState<string | null>(null);

  const conversation = useConversation();

  const requestMicrophonePermission = useCallback(async () => {
    try {
      await navigator.mediaDevices.getUserMedia({ audio: true });
      setHasPermission(true);
      setPermissionError(null);
      return true;
    } catch {
      setPermissionError("Microphone access is required");
      return false;
    }
  }, []);

  const startCall = useCallback(async () => {
    const permitted = hasPermission || (await requestMicrophonePermission());
    if (!permitted) return;

    try {
      await conversation.startSession({
        agentId: "<AGENT_ID>",
        connectionType: "webrtc",
      });
    } catch (error) {
      console.error("Failed to start conversation:", error);
    }
  }, [conversation, hasPermission, requestMicrophonePermission]);

  const endCall = useCallback(async () => {
    await conversation.endSession();
  }, [conversation]);

  const isConnected = conversation.status === "connected";

  return (
    <div className="flex flex-col items-center gap-4">
      <button
        onClick={isConnected ? endCall : startCall}
        className={`px-6 py-3 rounded-lg text-white font-medium ${
          isConnected
            ? "bg-red-600 hover:bg-red-700"
            : "bg-green-600 hover:bg-green-700"
        }`}
      >
        {isConnected ? "End Call" : "Start Call"}
      </button>

      {isConnected && (
        <p className="text-sm text-gray-600">
          {conversation.isSpeaking ? "Agent speaking..." : "Listening..."}
        </p>
      )}

      {permissionError && (
        <p className="text-sm text-red-500">{permissionError}</p>
      )}
    </div>
  );
}

Remplacez ensuite "<AGENT_ID>" par l’ID réel de l’agent que vous avez copié depuis le Dashboard.

Affichez ensuite le bouton quelque part dans votre interface, par exemple :

import { CallButton } from "./CallSantaButton";

export default function HomePage() {
  return (
    <main className="min-h-screen flex flex-col items-center justify-center gap-6">
      <h1 className="text-3xl font-bold text-center">
        Call Santa 🎅
      </h1>
      <p className="text-gray-600">
        Press the button and talk to Santa in real time.
      </p>
      <CallButton />
    </main>
  );
}

6. Essayez

Ouvrez l’application dans votre navigateur et cliquez sur Start Call :

  1. Votre navigateur demandera l’autorisation d’accéder au microphone.
  2. Une session WebRTC démarre avec votre agent Père Noël.
  3. Vous entendrez :

    « Ho, ho, ho ! Joyeux Noël, mon ami. Dis-moi, quel est ton prénom ? »

Le Père Noël vous demandera ensuite votre prénom, votre liste de souhaits et ce que vous avez fait cette année pour rester sur la liste des enfants sages.

Pour aller plus loin

Une fois les bases en place, vous pouvez :

  • Protéger l’accès au Père Noël par authentification via les paramètres de sécurité de l’agent
  • Changer de langue en transmettant la langue de l’utilisateur et en laissant le prompt s’en charger
  • Personnaliser l’interface avec des boutons, animations ou un écran complet « Appeler le Père Noël »

Mais l’intégration essentielle se résume à :

  • Un agent dans la Agents Platform
  • Un agentId
  • Un hook useConversation et un bouton

C’est tout ce dont vous avez besoin pour intégrer la magie conversationnelle du Père Noël en temps réel à votre application React.

Articles similaires

Créez avec l'audio IA de la plus haute qualité