Tous les produits
Search
Centre de documentation

Alibaba Cloud Model Studio:Connexion WebSocket à Qwen-LiveTranslate-Realtime

Dernière mise à jour :Nov 06, 2026

Connexion WebSocket à Qwen-LiveTranslate-Realtime

Périmètre d’application

Ce document concerne Qwen-LiveTranslate-Realtime ; le modèle de l’exemple est qwen3.8-livetranslate-flash-realtime. La série de guides couvre également qwen3.5-livetranslate-flash-realtime et la version figée qwen3.5-livetranslate-flash-realtime-2026-05-19. Les configurations et champs d’événements diffèrent entre 3.8 et 3.5 ; consultez la référence des événements du modèle sélectionné.

  • Utilisez l’API Key et l’ID de l’espace de travail correspondant à la région et à l’espace de travail sélectionnés.
  • Domaine de Pékin : {WorkspaceId}.cn-beijing.maas.aliyuncs.com ; domaine de Singapour : {WorkspaceId}.ap-southeast-1.maas.aliyuncs.com.
  • Les API Keys à longue durée de validité sont stockées sur le serveur et ne doivent pas être placées dans les navigateurs ou les applications mobiles.

Adresses et authentification

Pékin : wss://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api-ws/v1/realtime?model=qwen3.8-livetranslate-flash-realtime

Singapour : wss://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api-ws/v1/realtime?model=qwen3.8-livetranslate-flash-realtime

Pour les autres domaines, consultez SDK Python.

Définissez Authorization: Bearer <API_KEY> dans l’en-tête de la requête de négociation WebSocket. Remplacez l’ID de l’espace de travail et le nom réel du modèle ; ne placez pas les API Keys à longue durée de validité dans les navigateurs ou les applications mobiles.

L’en-tête facultatif user-agent identifie le client. La documentation générale d’intégration WebSocket présente également X-DashScope-WorkSpace (ID de l’espace de travail) et X-DashScope-DataInspection (configuration de vérification de conformité des données), à utiliser selon les exigences du modèle.

Pour générer des API Keys temporaires et connaître leurs autorisations, consultez Générer une API Key temporaire.

Configuration de la session

Envoyez session.update après avoir établi la connexion et reçu session.created. N’envoyez les entrées qu’après la confirmation session.updated ; traitez les erreurs via les événements error.

Les exemples suivants s’appliquent à qwen3.8-livetranslate-flash-realtime ; pour les autres versions, utilisez les configurations de leurs références d’événements respectives sans mélanger les niveaux de champs. L’exemple active le clonage vocal en temps réel : frequency: once extrait la voix d’entrée une seule fois au début de la session et la réutilise ensuite, ce qui convient aux scénarios à un seul locuteur. Pour plus d’informations, consultez Clonage de voix.

{
  "type": "session.update",
  "session": {
    "output_modalities": [
      "text",
      "audio"
    ],
    "audio": {
      "input": {
        "turn_detection": {
          "type": "speaker_detection",
          "threshold": 0.5
        }
      }
    },
    "voice": "default",
    "enable_voice_clone": true,
    "voice_clone_options": {
      "frequency": "once"
    },
    "translation": {
      "language": "en",
      "corpus": {
        "phrases": {
          "人工智能": "Artificial Intelligence",
          "机器学习": "Machine Learning"
        }
      }
    }
  }
}

Avec qwen3.5-livetranslate-flash-realtime, la configuration et les événements diffèrent de l’exemple 3.8 ci-dessus :

  • Le mode de sortie utilise modalities dans session ; les valeurs disponibles et la valeur par défaut sont identiques à celles de output_modalities dans 3.8.
  • La langue source peut être indiquée via language dans l’objet input_audio_transcription de session ; si elle est omise, la reconnaissance automatique est utilisée.
  • La reconnaissance incrémentale du texte source utilise conversation.item.input_audio_transcription.text ; 3.8 utilise conversation.item.input_audio_transcription.delta.
  • Pour une sortie textuelle seule, 3.5 renvoie les incréments de traduction via response.text.text, et 3.8 utilise response.text.delta. Pour une sortie textuelle et audio, 3.5 les renvoie via response.audio_transcript.text, et 3.8 utilise response.audio_transcript.delta.

Pour les champs complets, les valeurs par défaut et les événements, consultez Événements client, Événements serveur et Guide de traduction vocale en temps réel.

Entrées, résultats et fin

L’audio est envoyé via input_audio_buffer.append ; les formats d’entrée, les conditions de soumission et les restrictions des entrées image sont décrits dans Événements client. Traitez les résultats, les états et les erreurs dans Événements serveur ; l’établissement de la connexion ne signifie pas que la requête métier est terminée.

La traduction en temps réel utilise la configuration et les événements de traduction de ce modèle ; n’appliquez pas le déroulement de dialogue response.create d’Omni. Après la fin de l’entrée, envoyez session.finish, gardez la connexion ouverte et continuez à recevoir les résultats restants ; ne fermez la connexion WebSocket qu’après avoir reçu session.finished. Si la lecture complète de l’audio traduit est nécessaire, terminez d’abord la lecture locale. Les champs d’événements sont détaillés dans Événements client et Événements serveur.

Gestion des erreurs

Si la négociation échoue, vérifiez le domaine, la région, l’espace de travail, l’API Key, le nom du modèle, son activation et ses autorisations. Après l’établissement de la connexion, localisez le problème à partir de l’événement error et consultez Codes d’erreur. Conservez l’ID de l’événement pour le diagnostic ; l’absence de réponse ne prouve pas que le protocole n’est pas pris en charge.

SDK et références