Tous les produits
Search
Centre de documentation

Alibaba Cloud Model Studio:Qwen-Audio-ASR-Streaming Événements client

Dernière mise à jour :Oct 11, 2026

Cette rubrique décrit les événements client que le client envoie au serveur via WebSocket dans le service de reconnaissance vocale en temps réel Qwen-Audio-ASR-Streaming, y compris les structures de données et les définitions de champs pour run-task (démarrer une tâche) et finish-task (terminer une tâche).

run-task

Démarre une tâche de reconnaissance vocale et définit des paramètres tels que le modèle, le format audio et le taux d'échantillonnage.

Quand envoyer : Envoyer immédiatement après l'établissement de la connexion WebSocket.

Événement de réponse : Vous pouvez envoyer de l'audio uniquement après que le serveur a renvoyé l'événement task-started.

headerobject(Obligatoire)

Propriétés

actionstring(Obligatoire)

Le type de commande. Définir sur run-task.

task_idstring(Obligatoire)

Un ID de tâche généré par le client (format UUID) qui lie les événements suivants à cette tâche.

streamingstring(Obligatoire)

Définir sur duplex.

payloadobject(Obligatoire)

Propriétés

task_groupstring(Obligatoire)

Le groupe de tâches. Définir sur audio.

taskstring(Obligatoire)

Le type de tâche. Définir sur asr.

functionstring(Obligatoire)

Le type de fonction. Définir sur recognition.

modelstring(Obligatoire)

Le nom du modèle.

inputobject(Obligatoire)

L'objet d'entrée. Passer {} lorsqu'aucun contexte n'est fourni.

Propriétés

contextarray(object)(Facultatif)

Le contexte de conversation, qui améliore la précision de la reconnaissance pour le vocabulaire spécifique au domaine. Pour plus de détails sur l'utilisation, voir Amélioration du contexte.

ImportantLimites : Vous pouvez fournir au maximum 5 messages de contexte de chaque type (input_text et text). Si vous dépassez cette limite, seuls les 5 messages les plus récents sont conservés. La longueur totale du texte par tour (la longueur combinée des champs text des messages user et assistant) ne peut pas dépasser 400 caractères (comptés par caractère, où chaque caractère compte pour 1). Le texte dépassant cette limite est tronqué à partir de la fin.

ImportantLorsque vous fournissez un contexte, les messages dans context doivent suivre un ordre spécifique. Les messages de contexte doivent être organisés par tour de conversation, et au sein de chaque tour, le message user (de type input_text) doit précéder son message assistant correspondant (de type text).

Propriétés

rolestring(Obligatoire)

Le rôle du message. Valeurs valides :

  • user : Les résultats de reconnaissance des tours précédents de parole utilisateur, ou une liste de mots spécifiques au domaine.
  • assistant : Les réponses du grand modèle linguistique lors des tours précédents.

contentarray(object)(Obligatoire)

La liste des contenus de message.

Propriétés

typestring(Obligatoire)

Le type de contenu. Valeurs valides :

  • input_text : Les résultats de reconnaissance des tours précédents de parole utilisateur, ou une liste de mots spécifiques au domaine (utilisé lorsque le rôle est user). Vous devez également fournir le champ text.
  • text : Les réponses du grand modèle linguistique lors des tours précédents (utilisé lorsque le rôle est assistant). Vous devez également fournir le champ text.

textstring(Obligatoire)

Le contenu textuel. Lorsque type est input_text, saisissez les résultats de reconnaissance des tours précédents de parole utilisateur ou une liste de mots spécifique au domaine. Lorsque type est text, saisissez les réponses du grand modèle linguistique des tours précédents.

parametersobject(Obligatoire)

Les paramètres de reconnaissance vocale.

Propriétés

keep_dialect boolean (Facultatif)

Pris en charge uniquement par qwen-audio-3.1-asr-flash-streaming. Spécifie s'il faut conserver les expressions dialectales. Par défaut : false. Définir sur false pour transcrire la parole dialectale en texte mandarin standard, ou sur true pour conserver les expressions dialectales.

vad_model string (Facultatif)

Pris en charge uniquement par qwen-audio-3.1-asr-flash-streaming. Le modèle VAD. Par défaut : far_field_meeting_16k.

  • near_meeting_16k : scénarios en champ proche.
  • far_field_meeting_16k : scénarios en champ lointain.

formatstring(Obligatoire)

Le format audio.

Valeurs valides :

  • pcm
  • wav
  • mp3
  • opus
  • speex
  • aac
  • amr

Importantopus/speex : Doit utiliser l'encapsulation Ogg.

wav : Doit utiliser l'encodage PCM.

amr : Seul le type AMR-NB est pris en charge.

sample_rateinteger(Obligatoire)

Le taux d’échantillonnage en Hz. Tous les taux sont pris en charge.

vocabulary_idstring(Facultatif)

L'identifiant d'une liste de mots-clés précompilée.

Générez cet ID à l'avance en appelant l'API de création de liste de mots chauds. Transmettez l'ID lors de la reconnaissance pour utiliser les mots chauds de la liste.

Convient aux scénarios où le vocabulaire est connu et relativement stable, et où vous devez réutiliser la même liste de mots entre les requêtes.

Pour plus de détails sur l'utilisation, voir Mots chauds précompilés.

vocabularyobject(Facultatif)

Mots-clés instantanés.

Transmis sous forme de paires clé-valeur, où la clé est le texte du mot chaud (string) et la valeur est le poids du mot chaud (integer). Aucune liste de mots chauds ne doit être créée à l'avance. Le poids varie de [1, 5] ou est défini sur 50 : une valeur dans [1, 5] rend le modèle plus susceptible de produire le mot à mesure que la valeur augmente ; une valeur de 50 désigne un super mot chaud, ce qui améliore considérablement le rappel, mais le nombre de super mots chauds ne peut pas dépasser 50.

Convient à l'optimisation temporaire des mots-clés au niveau de la session.

Lorsque des mots chauds instantanés et précompilés sont configurés ensemble, le système fusionne les deux ensembles. Si l'ensemble fusionné contient plus de 2000 mots chauds, le système en sélectionne aléatoirement 2000 à utiliser. Pour plus de détails sur l'utilisation, voir Mots chauds instantanés.

language_hintsarray[string](Facultatif)

La langue de l'audio à reconnaître. Il n'y a pas de valeur par défaut ; si elle n'est pas définie, le modèle détecte automatiquement la langue.

Vous pouvez définir jusqu’à 4 valeurs. Au-delà, seules les 4 premières prennent effet.

Cliquez pour afficher les codes de langue pris en charge

  • zh : Chinois
  • en : Anglais
  • ja : Japonais
  • ko : Coréen
  • vi : Vietnamien
  • th : Thaï
  • id : Indonésien
  • ms : Malais
  • tl : Filipino
  • hi : Hindi
  • ar : Arabe
  • fr : Français
  • de : Allemand
  • es : Espagnol
  • pt : Portugais
  • ru : Russe
  • it : Italien
  • nl : Néerlandais
  • sv : Suédois
  • da : Danois
  • fi : Finnois
  • no : Norvégien
  • el : Grec
  • pl : Polonais
  • cs : Tchèque
  • hu : Hongrois
  • ro : Roumain
  • bg : Bulgare
  • hr : Croate
  • sk : Slovaque

semantic_punctuation_enabledboolean(Facultatif)

Indique s'il faut activer la segmentation sémantique.

Valeur par défaut : false.

  • true : Active la segmentation sémantique et désactive la segmentation VAD.
  • false (par défaut) : Active la segmentation VAD et désactive la segmentation sémantique.

La segmentation sémantique est plus précise et convient mieux aux scénarios de transcription. La segmentation VAD (détection d'activité vocale) a une latence plus faible et convient mieux aux scénarios interactifs.

max_sentence_silenceinteger(Facultatif)

Le seuil de silence VAD pour la segmentation, en ms. Lorsque le silence suivant un segment de parole dépasse ce seuil, le système détermine que la phrase est terminée. Lorsque semantic_punctuation_enabled est défini sur true, ce paramètre n'est pas utilisé comme critère pour retourner sentence_end, mais le définir trop bas peut affecter les performances de reconnaissance.

Valeur par défaut : 800.

Valeurs valides : [200, 6000].

multi_threshold_mode_enabledboolean(Facultatif)

ImportantPrend effet uniquement lorsque semantic_punctuation_enabled est false.

Indique s'il faut activer le mode multi-seuil. Lorsqu'il est activé, cela empêche les segments VAD de devenir trop longs.

Valeur par défaut : false.

heartbeatboolean(Facultatif)

Indique s'il faut activer les paquets de battement de cœur.

Valeur par défaut : false.

  • true : Maintient la connexion au serveur active même lorsque de l'audio silencieux est envoyé en continu.
  • false (par défaut) : Même lorsque de l'audio silencieux est envoyé en continu, la connexion expire et se ferme après un certain temps.

L'audio silencieux désigne le contenu d'un fichier audio ou d'un flux de données qui ne contient aucun signal sonore. Vous pouvez générer de l'audio silencieux de plusieurs manières, par exemple en utilisant un logiciel d'édition audio comme Audacity ou Adobe Audition, ou en utilisant un outil en ligne de commande comme FFmpeg.

speech_noise_thresholdfloat(Facultatif)

Le seuil pour distinguer la parole du bruit, utilisé pour ajuster la sensibilité de la détection d'activité vocale (VAD).

Valeurs valides : [-1.0, 1.0].

Descriptions des valeurs :

  • Plus la valeur est proche de -1 : Le seuil de bruit diminue, donc le bruit est plus susceptible d'être reconnu comme de la parole, ce qui peut entraîner la transcription de davantage de bruit.
  • Plus la valeur est proche de +1 : Le seuil de bruit augmente, donc la parole est plus susceptible d'être jugée à tort comme du bruit, ce qui peut entraîner le filtrage de certaines paroles.

Il s'agit d'un paramètre de configuration avancé. Son ajustement peut affecter considérablement les résultats de la reconnaissance. Recommandations :

  • Effectuer des tests et vérifier minutieusement les résultats avant tout ajustement.
  • Ajustez par petits incréments en fonction de l'environnement audio réel (un pas de 0.1 est recommandé).

special_word_filter string(Facultatif)

Spécifie les mots sensibles à traiter lors de la reconnaissance vocale et permet de définir différentes méthodes de traitement pour différents mots sensibles. Pour plus de détails, voir Filtrage des mots sensibles.

{
    "header": {
        "action": "run-task",
        "task_id": "2bf83b9a-baeb-4fda-8d9a-xxxxxxxxxxxx",
        "streaming": "duplex"
    },
    "payload": {
        "task_group": "audio",
        "task": "asr",
        "function": "recognition",
        "model": "qwen-audio-3.1-asr-flash-streaming",
        "parameters": {
            "format": "pcm",
            "sample_rate": 16000
        },
        "input": {}
    }
}
{
    "header": {
        "action": "run-task",
        "task_id": "2bf83b9a-baeb-4fda-8d9a-xxxxxxxxxxxx",
        "streaming": "duplex"
    },
    "payload": {
        "task_group": "audio",
        "task": "asr",
        "function": "recognition",
        "model": "qwen-audio-3.1-asr-flash-streaming",
        "parameters": {
            "format": "pcm",
            "sample_rate": 16000
        },
        "input": {
            "context": [
                {
                    "role": "user",
                    "content": [
                        {
                            "type": "input_text",
                            "text": "Hello there"
                        }
                    ]
                },
                {
                    "role": "assistant",
                    "content": [
                        {
                            "type": "text",
                            "text": "Hello, I am Qwen. How can I help you?"
                        }
                    ]
                }
            ]
        }
    }
}
{
    "header": {
        "action": "run-task",
        "task_id": "2bf83b9a-baeb-4fda-8d9a-xxxxxxxxxxxx",
        "streaming": "duplex"
    },
    "payload": {
        "task_group": "audio",
        "task": "asr",
        "function": "recognition",
        "model": "qwen-audio-3.1-asr-flash-streaming",
        "parameters": {
            "format": "pcm",
            "sample_rate": 16000,
            "vocabulary": {"John Smith": 5, "Jane Doe": 5}
        },
        "input": {}
    }
}

continue-task

Met à jour le contexte de conversation pendant l'exécution de la tâche pour améliorer la reconnaissance.

Quand envoyer : Envoyer pendant l'exécution de la tâche lorsque vous devez mettre à jour le contexte de conversation.

headerobject(Obligatoire)

Propriétés

actionstring(Obligatoire)

Le type de commande. Définir sur continue-task.

task_idstring(Obligatoire)

Un ID de tâche généré par le client (format UUID) qui doit correspondre au task_id dans l'événement run-task.

streamingstring(Obligatoire)

Définir sur duplex.

payloadobject(Obligatoire)

Propriétés

inputobject(Obligatoire)

L'objet d'entrée.

Propriétés

context _array(object)___ (Facultatif) Le contexte de conversation, qui améliore la précision de la reconnaissance pour le vocabulaire spécifique au domaine. Pour plus de détails sur l'utilisation, voir Démarrage rapide.

ImportantLimites : Vous pouvez fournir au maximum 5 messages de contexte de chaque type (input_text et text). Si vous dépassez cette limite, seuls les 5 messages les plus récents sont conservés. La longueur totale du texte par tour (la longueur combinée des champs text des messages user et assistant) ne peut pas dépasser 400 caractères (comptés par caractère, où chaque caractère compte pour 1). Le texte dépassant cette limite est tronqué à partir de la fin.

ImportantLorsque vous fournissez un contexte, les messages dans context doivent suivre un ordre spécifique. Les messages de contexte doivent être organisés par tour de conversation, et au sein de chaque tour, le message user (de type input_text) doit précéder son message assistant correspondant (de type text).

Propriétés role _string_ __(Obligatoire) Le rôle du message. Valeurs valides :

user : Les résultats de reconnaissance des tours précédents de parole utilisateur, ou une liste de mots spécifiques au domaine.

assistant : Les réponses du grand modèle linguistique lors des tours précédents.

content _array(object)___(Obligatoire) La liste des contenus de message. Propriétés type _string_ __(Obligatoire) Le type de contenu. Valeurs valides :

input_text : Les résultats de reconnaissance des tours précédents de parole utilisateur, ou une liste de mots spécifiques au domaine (utilisé lorsque le rôle est user). Vous devez également fournir le champ text.

text : Les réponses du grand modèle linguistique lors des tours précédents (utilisé lorsque le rôle est assistant). Vous devez également fournir le champ text.

text _string_ __(Obligatoire) Le contenu textuel. Lorsque type est input_text, saisissez les résultats de reconnaissance des tours précédents de parole utilisateur ou une liste de mots spécifique au domaine. Lorsque type est text, saisissez les réponses du grand modèle linguistique des tours précédents.

{
    "header": {
        "action": "continue-task",
        "task_id": "2bf83b9a-baeb-4fda-8d9a-xxxxxxxxxxxx",
        "streaming": "duplex"
    },
    "payload": {
        "input": {
            "context": [
                {
                    "role": "user",
                    "content": [
                        {
                            "type": "input_text",
                            "text": "Hello there"
                        }
                    ]
                },
                {
                    "role": "assistant",
                    "content": [
                        {
                            "type": "text",
                            "text": "Hello, I am Qwen. How can I help you?"
                        }
                    ]
                }
            ]
        }
    }
}

finish-task

Notifie au serveur que tout l'audio a été envoyé et demande la fin de la tâche.

Quand envoyer : Envoyer après que toutes les données audio ont été envoyées.

Événement de réponse : Le serveur renvoie l'événement task-finished.

headerobject(Obligatoire)

Propriétés

actionstring(Obligatoire)

Le type de commande. Définir sur finish-task.

task_idstring(Obligatoire)

Un ID de tâche généré par le client (format UUID) qui doit correspondre au task_id dans l'événement run-task.

streamingstring(Obligatoire)

Définir sur duplex.

payloadobject(Obligatoire)

Propriétés

inputobject(Obligatoire)

Définir sur {}.

{
    "header": {
        "action": "finish-task",
        "task_id": "2bf83b9a-baeb-4fda-8d9a-xxxxxxxxxxxx",
        "streaming": "duplex"
    },
    "payload": {
        "input": {}
    }
}