
Conversation vocale duplex sur un socket, avec 27 voix, recherche web native, appels d’outils, et des débits séparés de jetons texte et audio.
Conversation vocale duplex sur un socket, avec 27 voix, recherche web native, appels d’outils, et des débits séparés de jetons texte et audio.
La session est configurée avec des événements session.update via le socket plutôt que des paramètres de requête. La recherche web est désactivée par défaut et ne peut pas être combinée avec l’appel de fonction. Les jetons texte et audio facturent à des débits différents.
Aussi connu sous le nom Qwen Audio Realtime Plus, Qwen Audio Realtime, Alibaba Cloud Qwen Audio 3.1 Realtime Plus
qwen-audio-3-1-realtime-plus/v1/realtimeqwen-audio-3.1-realtime-plusalibaba/qwen-audio-3-1-realtime-plusTarifs à l'usage en direct du catalogue EmpirioLabs. Vous ne payez que ce que vous utilisez, sans minimum mensuel.
Qwen Audio 3.1 Realtime Plus tient une conversation en direct via un WebSocket sur wss://api.empiriolabs.ai/v1/realtime?model=qwen-audio-3-1-realtime-plus, et non via les endpoints HTTP. Connectez-vous avec l'id de modèle qwen-audio-3-1-realtime-plus et envoyez votre clé API EmpirioLabs dans un en-tête Authorization: Bearer lors du handshake. L'audio circule dans les deux sens en PCM 16 bits encodé en base64. Un navigateur ne peut pas définir d'en-têtes sur un WebSocket : ouvrez donc cette connexion depuis votre serveur et relayez l'audio vers le navigateur via votre propre socket. Obtenez une clé API depuis le tableau de bord EmpirioLabs.
import asyncio, json, os, websockets
async def main():
async with websockets.connect(
"wss://api.empiriolabs.ai/v1/realtime?model=qwen-audio-3-1-realtime-plus",
additional_headers=[
("Authorization", f"Bearer {os.environ['EMPIRIOLABS_API_KEY']}"),
],
max_size=None,
) as ws:
print(json.loads(await ws.recv())["type"]) # session.created
await ws.send(json.dumps({
"type": "conversation.item.create",
"item": {
"type": "message",
"role": "user",
"content": [{"type": "input_text", "text": "Say hello."}],
},
}))
await ws.send(json.dumps({"type": "response.create"}))
async for raw in ws:
event = json.loads(raw)
if event["type"] == "response.audio.delta":
... # base64 audio chunk, append to your playback buffer
elif event["type"] == "response.done":
break
asyncio.run(main())Paramètres de requête pris en charge par l'API Qwen Audio 3.1 Realtime Plus sur EmpirioLabs. Les valeurs par défaut s'appliquent quand un champ est omis.
| Paramètre | Type | Par défaut | Plage / valeurs | Description |
|---|---|---|---|---|
| voice | enum | longanqian_v3.1 | longanqian_v3.1, longanhuan_v3.1, longanlingxin_v3.1, longanf... | Voix parlée pour la session. Configurez-la avec session.update avant que le modèle ne produise un quelconque audio. Ces voix sont spécifiques à ce modèle. |
| instructions | string | - | - | Des conseils système sur la façon dont le modèle doit se comporter et parler pendant la conversation. |
| enable_search | boolean | false | - | Recherchez sur le web des informations en temps réel. Ne peuvent pas être utilisés dans la même session que l’appel de fonction. Les résultats de recherche sont... |
| modalities | string | ["text","audio"] | - | Quels types de sortie le modèle retourne pour un tour. Coupez l’audio pour une réponse textuelle uniquement. |
| input_audio_format | enum | pcm16 | pcm16 | Encodage de l’audio que vous ajoutez au tampon d’entrée: PCM base64 16 bits à 16 kHz. |
| output_audio_format | enum | pcm24 | pcm24 | Encodage de l’audio que le modèle diffuse en retour: PCM 16 bits à 24 kHz. |
| turn_detection | string | {"type":"server_vad"} | - | Détection d’activité vocale côté serveur. Décide quand vous avez arrêté de parler et le modèle doit répondre. C’est activé par défaut sur ce modèle. |
Connexion Voix full-duplex via un WebSocket à wss://api.empiriolabs.ai/v1/realtime?model=qwen-audio-3-1-realtime-plus, authentifiée avec l’en-tête Authorization Bearer classique. Configurez la session avec session.update sur le socket: voix, instructions, modalités et détection de rotation. Envoi de l’audio - Ajoutez l’audio du microphone en input_audio_buffer.append événements. - La détection d’activité vocale détermine quand vous avez arrêté de parler, donc continuez à diffuser environ une seconde après la fin de la parole. Voix Les voix de ce modèle sont un ensemble à part. Choisissez une voix dans la liste vocale plutôt que de porter une voix en face d’un autre modèle, ou laissez-la non activée et la détection par défaut vous sera fournie. Recherche web La recherche web est désactivée par défaut. Activez-la avec enable_search. Elle ne peut pas être activée dans la même session que l’appel de fonction, et les résultats de recherche sont ajoutés à la conversation et comptabilisés comme jetons d’entrée. Facturation Les jetons audio et texte sont tarifés séparément dans les deux sens, et chaque tour effectué est facturé séparément selon l’utilisation rapportée par le modèle.
Sur EmpirioLabs, Qwen Audio 3.1 Realtime Plus est facturé à l'usage : Entrée: audio $12.80 par 1M de jetons d’entrée audio; Entrée $1.60 par 1M de jetons d’invite; Produit $12.80 par 1M de jetons générés; Sortie: audio $48.00 par 1M de jetons audio générés; Recherche Web $0.00 par appel lors de l’invocation. La grille tarifaire en direct de cette page correspond toujours à ce que l'API facture.
Qwen Audio 3.1 Realtime Plus prend en charge une fenêtre de contexte de 256K tokens avec jusqu'à 16 384 tokens de sortie par réponse.
Qwen Audio 3.1 Realtime Plus est servi via WEBSOCKET /v1/realtime sur api.empiriolabs.ai avec une authentification standard par token Bearer.
Ouvrez le playground EmpirioLabs et appuyez sur Start session pour l'essayer dans votre navigateur. Qwen Audio 3.1 Realtime Plus fonctionne sur un WebSocket plutôt qu'en requête et réponse, donc pour l'intégrer commencez par le guide de démarrage voix en temps réel. Connectez-vous depuis votre serveur avec votre clé API EmpirioLabs et l'id de modèle qwen-audio-3-1-realtime-plus, puis diffusez l'audio dans les deux sens.
Créez un compte EmpirioLabs, puis générez une clé sous API Keys dans le tableau de bord. La facturation utilise des crédits à l'usage : vous ne payez que vos requêtes.
Consultez nos tarifs ou contactez-nous si vous souhaitez que votre propre modèle soit déployé sur notre stack.