Deux nouveaux modèles de voix Alibaba sont en direct sur EmpirioLabs, et les deux sont des conversations plutôt que des requêtes. Vous ouvrez un WebSocket, diffusez le son du microphone en direct, et l’audio revient tant que le haut-parleur est encore en train de parler.
Qwen3.8 Omni Flash Temps Réel c’est celui qui peut aussi voir. En plus de l’audio que vous envoyez déjà, vous pouvez pousser des images vidéo en direct, et il répondra aux questions sur ce qui est à l’écran dans le même tour. Il diffuse 56 voix et appelle vos fonctions en plein milieu d’une conversation.
Qwen Audio 3.1 Realtime Plus c’est celui qui peut rechercher des choses. Il propose une recherche native que tu peux activer par session, 27 voix propres et un contexte 256K.
Essayez l’un ou l’autre dans le playground: Omni Flash Temps Réel ou Audio 3.1 Temps Réel Plus. Clique sur Lancer la session et discute.
Connexion
Il y a un point de terminaison temps réel pour chaque modèle sur la plateforme, et vous choisissez le modèle avec un paramètre de requête. Authentifiez la poignée de main avec la même clé API que vous utilisez partout ailleurs:
wss://api.empiriolabs.ai/v1/realtime ?model=qwen3-8-omni-flash-realtime Autorisation: Porteur YOUR_EMPIRIOLABS_API_KEY
Le protocole suit la forme d’événement en temps réel largement utilisée, de sorte qu’un client écrit selon cette convention fonctionne inchangé. Configurez la session sur le socket avec session.update, ajouter l’audio du microphone comme input_audio_buffer.append, et relis l’audio depuis response.audio.delta avec la transcription correspondante sur response.audio_transcript.delta.
{"type »: « session.update », « session »: { « voice »: « Tina », « modalities »: ["texte », « audio"] }}
L’audio circule dans les deux sens en tant que PCM 16 bits. Ces deux modèles prennent 16 kHz en montant et reviennent à 24 kHz. Le session.created Si vous recevez sur Connect rapporte les formats de cette session, donc lisez-les là-bas plutôt que de supposer.
Images vidéo sur Omni Flash Realtime
Les images vont dans leur propre tampon, à côté du tampon audio:
{"type »: « input_image_buffer.append », « image »: « <base64 JPEG ou PNG>"}
Envoyez-les comme des images d’une caméra, puis demandez ce que vous montrez dans le même tour parlé. Cela conserve jusqu’à 50 tours et 240 secondes d’historique vidéo, et jusqu’à 100 tours et 600 secondes d’audio. L’histoire ancienne sort de son contexte à mesure que ces limites sont dépassées.
Recherche sur Internet sur Audio 3.1
La recherche est désactivée sauf si vous la demandiez, et que vous la demandiez pendant la séance:
{"type »: « session.update », « session »: {"enable_search »: vrai}}
Avec ce modèle activé, le modèle peut répondre à des questions sur ce qui s’est passé après son entraînement. Les résultats sont ajoutés à la conversation, de sorte qu’un tour de recherche rapporte un nombre de jetons d’entrée nettement plus élevé qu’un modèle qui ne le fait pas.
Prix
Les deux modèles facturent chacun un tour complet à partir de l’utilisation rapportée par le modèle, avec des débits séparés pour les jetons audio et les jetons texte dans les deux sens. Cette répartition est importante: une réponse vocale est principalement composée de jetons audio, et demande une réponse uniquement texte en supprimant audio de Modalités En réalité, cela coûte moins cher. Les tarifs actuels sont en cours sur le Omni Flash Temps Réel et Audio 3.1 Temps Réel Plus Pages de modèles et sur le page de prix, qui restent synchronisés avec ce qui vous est facturé. Aucun des deux modèles n’a de palier d’entrée en cache, donc chaque jeton d’entrée facture au débit normal.
Des choses qui valent la peine d’être connues avant ta première séance
- Ne renvoyez pas la voix rapportée par la session. Les deux modèles annoncent une voix sur connexion que leur propre générateur refuse alors, ce qui coupe le premier tour. Si vous laissez la voix non réglée, la plateforme définit un modèle par défaut fonctionnel, ou choisissez vous-même une voix dans la liste vocale. Les deux listes ne partagent aucun nom, donc une voix qui fonctionne sur l’une ne fonctionnera pas sur l’autre.
- La détection de l’activité vocale nécessite un moment de silence pour s’activer. Ces modèles décident que vous avez arrêté de parler en vous entendant arrêter. Si votre client coupe le flux audio dès que l’intervenant termine le dernier mot, rien n’est engagé et aucune réponse n’arrive, ce qui ressemble exactement à une session interrompue. Continuez à diffuser environ une seconde après la fin du discours.
- Les images vidéo ne sont pas du contenu de message. Ils passent
input_image_buffer.append. Mettre une image à l’intérieur d’unconversation.item.createContent Array est rejeté, et sur certains modèles, il quitte le tour sans aucun message utilisateur. - Sur Audio 3.1, la recherche web et l’appel de fonction sont mutuellement exclusifs. Activez un par session, pas les deux.
- Une nouvelle prise est une nouvelle conversation. Il n’y a pas de mémoire côté serveur entre les connexions, donc un client qui se reconnecte doit rejouer le contexte qu’il souhaite que le modèle aille encore.
Les tableaux complets des événements, les listes vocales et les formats audio se trouvent dans le API vocale en temps réel Docs. Les deux modèles sont disponibles dès maintenant.



