Tous les produits
Search
Centre de documentation

Alibaba Cloud Model Studio:Référence de l'API de reconnaissance vocale non temps réel (Qwen-ASR)

Dernière mise à jour :Sep 07, 2026

Paramètres d'entrée et de sortie du modèle Qwen-ASR. Appelez l'API via le protocole compatible OpenAI ou DashScope.

Guide utilisateur : Consultez la rubrique Reconnaissance vocale non temps réel.

Types de connexion des modèles

Les types de connexion pris en charge varient selon les modèles.

Modèle

Type de connexion

Qwen3-ASR-Flash-Filetrans

Prise en charge exclusive de l'invocation asynchrone DashScope

Qwen3-ASR-Flash

Compatible OpenAI et synchrone DashScope

Compatible OpenAI

ImportantLa région États-Unis ne prend pas en charge le mode compatible OpenAI.

URL

Singapore

Adresse de requête HTTP : POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/chat/completions

base_url pour les appels SDK : https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1

Remplacez {WorkspaceId} par votre véritable ID d'espace de travail.

Remplacez {WorkspaceId} par votre véritable ID d'espace de travail.

China (Beijing)

Adresse de requête HTTP : POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/chat/completions

base_url pour les appels SDK : https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1

Remplacez {WorkspaceId} par votre véritable ID d'espace de travail.

Remplacez {WorkspaceId} par votre véritable ID d'espace de travail.

ImportantAlibaba Cloud Model Studio a publié des domaines spécifiques à chaque espace de travail pour les régions China (Beijing) et Singapore. Ces nouveaux domaines dédiés offrent des performances supérieures et une stabilité accrue pour les requêtes d'inférence. Nous vous recommandons de migrer vers ces nouveaux domaines :

  • China (Beijing) : passez de dashscope.aliyuncs.com à {WorkspaceId}.cn-beijing.maas.aliyuncs.com
  • Singapore : passez de dashscope-intl.aliyuncs.com à {WorkspaceId}.ap-southeast-1.maas.aliyuncs.com

Remplacez {WorkspaceId} par votre véritable ID d'espace de travail. Les domaines existants restent pleinement fonctionnels.

Corps de la requête

Entrée : URL du fichier audio

Python SDK

from openai import OpenAI
    import os

    try:
        client = OpenAI(
            # The API Key differs between the Singapore/US regions and the Beijing region. Get an API Key: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
            # If you have not configured the environment variable, replace the following line with your Alibaba Cloud Model Studio API Key: api_key = "sk-xxx",
            api_key=os.getenv("DASHSCOPE_API_KEY"),
            # The following is the configuration for the Singapore region. When calling, replace "{WorkspaceId}" with your actual workspace ID. The configuration differs by region.
            base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
        )

        stream_enabled = False  # Whether to enable streaming output
        completion = client.chat.completions.create(
            model="qwen3-asr-flash",
            messages=[
                {
                    "content": [
                        {
                            "type": "input_audio",
                            "input_audio": {
                                "data": "{YOUR_AUDIO_URL}"
                            }
                        }
                    ],
                    "role": "user"
                }
            ],
            stream=stream_enabled,
            # When stream is set to False, the stream_options parameter cannot be set
            # stream_options={"include_usage": True},
            extra_body={
                "asr_options": {
                    # "language": "zh",
                    "enable_itn": False
                }
            }
        )
        if stream_enabled:
            full_content = ""
            print("The streaming output is:")
            for chunk in completion:
                # If stream_options.include_usage is True, the choices field of the last chunk is an empty list and needs to be skipped (you can get the Token usage via chunk.usage)
                print(chunk)
                if chunk.choices and chunk.choices[0].delta.content:
                    full_content += chunk.choices[0].delta.content
            print(f"The complete content is: {full_content}")
        else:
            print(f"The non-streaming output is: {completion.choices[0].message.content}")
    except Exception as e:
        print(f"Error message: {e}")

Node.js SDK

// Preparations before running:
    // Common to Windows/Mac/Linux:
    // 1. Make sure Node.js is installed (version >= 14 recommended)
    // 2. Run the following command to install the required dependencies: npm install openai

    import OpenAI from "openai";

    const client = new OpenAI({
      // The API Key differs between the Singapore/US regions and the Beijing region. Get an API Key: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
      // If you have not configured the environment variable, replace the following line with your Alibaba Cloud Model Studio API Key: apiKey: "sk-xxx",
      apiKey: process.env.DASHSCOPE_API_KEY,
      // The following is the configuration for the Singapore region. When calling, replace "{WorkspaceId}" with your actual workspace ID. The configuration differs by region.
      baseURL: "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
    });

    async function main() {
      try {
        const streamEnabled = false; // Whether to enable streaming output
        const completion = await client.chat.completions.create({
          model: "qwen3-asr-flash",
          messages: [
            {
              role: "user",
              content: [
                {
                  type: "input_audio",
                  input_audio: {
                    data: "{YOUR_AUDIO_URL}"
                  }
                }
              ]
            }
          ],
          stream: streamEnabled,
          // When stream is set to False, the stream_options parameter cannot be set
          // stream_options: {
          //   "include_usage": true
          // },
          asr_options: {
            // language: "zh",
            enable_itn: false
          }
        });

        if (streamEnabled) {
          let fullContent = "";
          console.log("The streaming output is:");
          for await (const chunk of completion) {
            console.log(JSON.stringify(chunk));
            if (chunk.choices && chunk.choices.length > 0) {
              const delta = chunk.choices[0].delta;
              if (delta && delta.content) {
                fullContent += delta.content;
              }
            }
          }
          console.log(`The complete content is: ${fullContent}`);
        } else {
          console.log(`The non-streaming output is: ${completion.choices[0].message.content}`);
        }
      } catch (err) {
        console.error(`Error message: ${err}`);
      }
    }

    main();

cURL

La configuration suivante concerne la région Singapore. Remplacez {WorkspaceId} par votre véritable ID d'espace de travail. La configuration varie selon la région.

curl -X POST 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/chat/completions' \
    -H "Authorization: Bearer $DASHSCOPE_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
        "model": "qwen3-asr-flash",
        "messages": [
            {
                "content": [
                    {
                        "type": "input_audio",
                        "input_audio": {
                            "data": "{YOUR_AUDIO_URL}"
                        }
                    }
                ],
                "role": "user"
            }
        ],
        "stream":false,
        "asr_options": {
            "enable_itn": false
        }
    }'

Entrée : Fichier audio encodé en Base64

Transmettez les données encodées en Base64 sous forme de Data URL au format data:<mediatype>;base64,<data>.

  • <mediatype> : le type MIME.

    Le type MIME dépend du format audio. Par exemple :

    • WAV : audio/wav
    • MP3 : audio/mpeg
  • <data> : la chaîne encodée en Base64 de l'audio.

    L'encodage Base64 augmente la taille des données. Veillez à ce que le fichier source soit suffisamment petit pour que le résultat encodé respecte la limite de taille d'entrée audio (10 Mo).

  • Exemple : data:audio/wav;base64,SUQzBAAAAAAAI1RTU0UAAAAPAAADTGF2ZjU4LjI5LjEwMAAAAAAAAAAAAAAA//PAxABQ/BXRbMPe4IQAhl9

    Cliquez pour afficher l'exemple de code

    import base64, pathlib
    
        # input.mp3 is the local audio file used for voice cloning. Replace it with the path to your own audio file and make sure it meets the audio requirements.
        file_path = pathlib.Path("{YOUR_AUDIO_FILE}")
        base64_str = base64.b64encode(file_path.read_bytes()).decode()
        data_uri = f"data:audio/mpeg;base64,{base64_str}"
    
    import java.nio.file.*;
        import java.util.Base64;
    
        public class Main {
            /**
             * filePath is the local audio file used for voice cloning. Replace it with the path to your own audio file and make sure it meets the audio requirements.
             */
            public static String toDataUrl(String filePath) throws Exception {
                byte[] bytes = Files.readAllBytes(Paths.get(filePath));
                String encoded = Base64.getEncoder().encodeToString(bytes);
                return "data:audio/mpeg;base64," + encoded;
            }
    
            // Usage example
            public static void main(String[] args) throws Exception {
                System.out.println(toDataUrl("{YOUR_AUDIO_FILE}"));
            }
        }
    
import base64
    from openai import OpenAI
    import os
    import pathlib

    try:
        # Replace with the actual audio file path
        file_path = "{YOUR_AUDIO_FILE}"
        # Replace with the actual MIME type of the audio file
        audio_mime_type = "audio/mpeg"

        file_path_obj = pathlib.Path(file_path)
        if not file_path_obj.exists():
            raise FileNotFoundError(f"Audio file does not exist: {file_path}")

        base64_str = base64.b64encode(file_path_obj.read_bytes()).decode()
        data_uri = f"data:{audio_mime_type};base64,{base64_str}"

        client = OpenAI(
            # The API Key differs between the Singapore/US regions and the Beijing region. Get an API Key: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
            # If you have not configured the environment variable, replace the following line with your Alibaba Cloud Model Studio API Key: api_key = "sk-xxx",
            api_key=os.getenv("DASHSCOPE_API_KEY"),
            # The following is the configuration for the Singapore region. When calling, replace "{WorkspaceId}" with your actual workspace ID. The configuration differs by region.
            base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
        )

        stream_enabled = False  # Whether to enable streaming output
        completion = client.chat.completions.create(
            model="qwen3-asr-flash",
            messages=[
                {
                    "content": [
                        {
                            "type": "input_audio",
                            "input_audio": {
                                "data": data_uri
                            }
                        }
                    ],
                    "role": "user"
                }
            ],
            stream=stream_enabled,
            # When stream is set to False, the stream_options parameter cannot be set
            # stream_options={"include_usage": True},
            extra_body={
                "asr_options": {
                    # "language": "zh",
                    "enable_itn": False
                }
            }
        )
        if stream_enabled:
            full_content = ""
            print("The streaming output is:")
            for chunk in completion:
                # If stream_options.include_usage is True, the choices field of the last chunk is an empty list and needs to be skipped (you can get the Token usage via chunk.usage)
                print(chunk)
                if chunk.choices and chunk.choices[0].delta.content:
                    full_content += chunk.choices[0].delta.content
            print(f"The complete content is: {full_content}")
        else:
            print(f"The non-streaming output is: {completion.choices[0].message.content}")
    except Exception as e:
        print(f"Error message: {e}")
// Preparations before running:
    // Common to Windows/Mac/Linux:
    // 1. Make sure Node.js is installed (version >= 14 recommended)
    // 2. Run the following command to install the required dependencies: npm install openai

    import OpenAI from "openai";
    import { readFileSync } from 'fs';

    const client = new OpenAI({
      // The API Key differs between the Singapore/US regions and the Beijing region. Get an API Key: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
      // If you have not configured the environment variable, replace the following line with your Alibaba Cloud Model Studio API Key: apiKey: "sk-xxx",
      apiKey: process.env.DASHSCOPE_API_KEY,
      // The following is the configuration for the Singapore region. When calling, replace "{WorkspaceId}" with your actual workspace ID. The configuration differs by region.
      baseURL: "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
    });

    const encodeAudioFile = (audioFilePath) => {
        const audioFile = readFileSync(audioFilePath);
        return audioFile.toString('base64');
    };

    // Replace with the actual audio file path
    const dataUri = `data:audio/mpeg;base64,${encodeAudioFile("{YOUR_AUDIO_FILE}")}`;

    async function main() {
      try {
        const streamEnabled = false; // Whether to enable streaming output
        const completion = await client.chat.completions.create({
          model: "qwen3-asr-flash",
          messages: [
            {
              role: "user",
              content: [
                {
                  type: "input_audio",
                  input_audio: {
                    data: dataUri
                  }
                }
              ]
            }
          ],
          stream: streamEnabled,
          // When stream is set to False, the stream_options parameter cannot be set
          // stream_options: {
          //   "include_usage": true
          // },
          asr_options: {
            // language: "zh",
            enable_itn: false
          }
        });

        if (streamEnabled) {
          let fullContent = "";
          console.log("The streaming output is:");
          for await (const chunk of completion) {
            console.log(JSON.stringify(chunk));
            if (chunk.choices && chunk.choices.length > 0) {
              const delta = chunk.choices[0].delta;
              if (delta && delta.content) {
                fullContent += delta.content;
              }
            }
          }
          console.log(`The complete content is: ${fullContent}`);
        } else {
          console.log(`The non-streaming output is: ${completion.choices[0].message.content}`);
        }
      } catch (err) {
        console.error(`Error message: ${err}`);
      }
    }

    main();

modelstring(Obligatoire)

Nom du modèle. Ce paramètre s'applique uniquement au modèle Qwen3-ASR-Flash.

messagesarray(Obligatoire)

Liste des messages.

Types de messages

Message systèmeobject (Facultatif)

Permet de fournir un contexte pour la reconnaissance vocale, tel que du texte d'arrière-plan ou des glossaires d'entités. Ne permet pas de définir un rôle de modèle ni d'autres invites système traditionnelles. Si vous utilisez un message système, il doit être le premier de la liste messages.

Propriétés

rolestring(Obligatoire)

Définissez cette valeur sur system.

Message utilisateurobject(Obligatoire)

Message envoyé par l'utilisateur au modèle.

Propriétés

contentarray(Obligatoire)

Contenu du message utilisateur. Un seul message est autorisé dans le tableau.

Propriétés

typestring(Obligatoire)

Définissez cette valeur sur input_audio, ce qui indique que l'entrée est un fichier audio.

input_audiostring(Obligatoire)

Fichier audio à reconnaître. Pour plus d'informations sur l'utilisation de ce paramètre, consultez Démarrage rapide.

En mode compatible OpenAI, le modèle Qwen3-ASR-Flash prend en charge deux formats d'entrée : les fichiers encodés en Base64 et les URL de fichiers audio accessibles via le réseau public.

Lorsque vous utilisez un SDK, si le fichier audio est stocké dans OSS, les URL temporaires commençant par oss:// ne sont pas prises en charge.

Lorsque vous utilisez une API RESTful, si le fichier audio est stocké dans OSS, les URL temporaires commençant par oss:// sont prises en charge. Remarque :

Important

  • Les URL temporaires sont valides pendant 48 heures. Une fois expirées, elles ne peuvent plus être utilisées. Ne les utilisez pas dans des environnements de production.
  • L'API d'identifiant de téléchargement de fichier est limitée à 100 QPS et ne peut pas être mise à l'échelle. Ne l'utilisez pas en production, dans des scénarios à forte concurrence ou lors de tests de charge.
  • Pour les environnements de production, nous recommandons d'utiliser des services de stockage stables tels qu'Alibaba Cloud OSS afin de garantir la disponibilité à long terme des fichiers et d'éviter les problèmes de limitation de débit.

rolestring(Obligatoire)

Rôle du message utilisateur. Définissez cette valeur sur user.

asr_optionsobject(Facultatif)

Indique s'il faut activer certaines fonctionnalités.

asr_options n'est pas un paramètre OpenAI standard. Si vous utilisez un SDK OpenAI, transmettez-le via extra_body.

Propriétés

language string (Facultatif) Aucune valeur par défaut

Si la langue de l'audio est connue, vous pouvez la spécifier à l'aide de ce paramètre pour améliorer la précision de la reconnaissance.

Une seule langue peut être spécifiée.

Si la langue de l'audio est incertaine ou comprend plusieurs langues (par exemple un mélange de chinois, d'anglais, de japonais et de coréen), ne spécifiez pas ce paramètre.

Valeurs valides

  • zh : Chinois (Mandarin, Sichuanais, Minnan et Wu)
  • yue : Cantonais
  • en : Anglais
  • ja : Japonais
  • de : Allemand
  • ko : Coréen
  • ru : Russe
  • fr : Français
  • pt : Portugais
  • ar : Arabe
  • it : Italien
  • es : Espagnol
  • hi : Hindi
  • id : Indonésien
  • th : Thaï
  • tr : Turc
  • uk : Ukrainien
  • vi : Vietnamien
  • cs : Tchèque
  • da : Danois
  • fil : Filipino
  • fi : Finnois
  • is : Islandais
  • ms : Malais
  • no : Norvégien
  • pl : Polonais
  • sv : Suédois

enable_itnboolean (Facultatif) Valeur par défaut : false

Indique s'il faut activer la normalisation inverse de texte (ITN). Cette fonctionnalité s'applique uniquement aux audios en chinois et en anglais.

  • true
  • false (par défaut)

streamboolean(Facultatif) Valeur par défaut : false

Indique s'il faut utiliser la sortie en streaming. Consultez Sortie en streaming.

Valeurs valides :

  • false : Le modèle renvoie le contenu complet après la génération.
  • true : Le modèle génère et produit le contenu simultanément. Un bloc de données (chunk) est renvoyé à chaque fois qu'une partie du contenu est générée. Vous devez lire ces blocs en temps réel pour assembler la réponse complète.

Définissez cette valeur sur true pour réduire le risque de délais d'expiration des requêtes.

stream_optionsobject(Facultatif)

Éléments de configuration pour la sortie en streaming. Ce paramètre prend effet uniquement lorsque stream est défini sur true.

Propriétés

include_usageboolean(Facultatif) Valeur par défaut : false

Indique s'il faut inclure les informations de consommation de tokens dans le dernier bloc de données de la réponse.

Valeurs valides :

  • true
  • false (par défaut)

Lors de la sortie en streaming, les informations de consommation de tokens apparaissent uniquement dans le dernier bloc de données de la réponse.

Corps de la réponse

{
    "choices": [
        {
            "finish_reason": "stop",
            "index": 0,
            "message": {
                "annotations": [
                    {
                        "emotion": "neutral",
                        "language": "zh",
                        "type": "audio_info"
                    }
                ],
                "content": "Welcome to Alibaba Cloud.",
                "role": "assistant"
            }
        }
    ],
    "created": 1767683986,
    "id": "chatcmpl-487abe5f-d4f2-9363-a877-xxxxxxx",
    "model": "qwen3-asr-flash",
    "object": "chat.completion",
    "usage": {
        "completion_tokens": 12,
        "completion_tokens_details": {
            "text_tokens": 12
        },
        "prompt_tokens": 42,
        "prompt_tokens_details": {
            "audio_tokens": 42,
            "text_tokens": 0
        },
        "seconds": 1,
        "total_tokens": 54
    }
}
data: {"model":"qwen3-asr-flash","id":"chatcmpl-3fb97803-d27f-9289-8889-xxxxx","created":1767685989,"object":"chat.completion.chunk","usage":null,"choices":[{"logprobs":null,"index":0,"delta":{"content":"","role":"assistant"}}]}

    data: {"model":"qwen3-asr-flash","id":"chatcmpl-3fb97803-d27f-9289-8889-xxxxx","choices":[{"delta":{"annotations":[{"type":"audio_info","language":"zh","emotion":"neutral"}],"content":"Welcome","role":null},"index":0}],"created":1767685989,"object":"chat.completion.chunk","usage":null}

    data: {"model":"qwen3-asr-flash","id":"chatcmpl-3fb97803-d27f-9289-8889-xxxxx","choices":[{"delta":{"annotations":[{"type":"audio_info","language":"zh","emotion":"neutral"}],"content":" to","role":null},"index":0}],"created":1767685989,"object":"chat.completion.chunk","usage":null}

    data: {"model":"qwen3-asr-flash","id":"chatcmpl-3fb97803-d27f-9289-8889-xxxxx","choices":[{"delta":{"annotations":[{"type":"audio_info","language":"zh","emotion":"neutral"}],"content":" Alibaba","role":null},"index":0}],"created":1767685989,"object":"chat.completion.chunk","usage":null}

    data: {"model":"qwen3-asr-flash","id":"chatcmpl-3fb97803-d27f-9289-8889-xxxxx","choices":[{"delta":{"annotations":[{"type":"audio_info","language":"zh","emotion":"neutral"}],"content":" Cloud","role":null},"index":0}],"created":1767685989,"object":"chat.completion.chunk","usage":null}

    data: {"model":"qwen3-asr-flash","id":"chatcmpl-3fb97803-d27f-9289-8889-xxxxx","choices":[{"delta":{"annotations":[{"type":"audio_info","language":"zh","emotion":"neutral"}],"content":".","role":null},"index":0}],"created":1767685989,"object":"chat.completion.chunk","usage":null}

    data: {"model":"qwen3-asr-flash","id":"chatcmpl-3fb97803-d27f-9289-8889-xxxxx","choices":[{"delta":{"role":null},"index":0,"finish_reason":"stop"}],"created":1767685989,"object":"chat.completion.chunk","usage":null}

    data: [DONE]

idstring

Identifiant unique de cet appel.

choicesarray

Informations de sortie du modèle.

Propriétés

finish_reasonstring

Valeurs valides :

  • null : La sortie est toujours en cours de génération.
  • stop : La sortie s'est terminée naturellement ou a été interrompue par une condition d'arrêt.
  • length : La sortie a dépassé la limite de longueur maximale.

indexinteger

Index de l'objet actuel dans le tableau choices.

messageobject

Objet message produit par le modèle.

Propriétés

rolestring

Rôle du message de sortie. Défini sur assistant.

contentarray

Résultat de la reconnaissance vocale.

annotationsarray

Informations d'annotation de sortie, telles que la langue.

Propriétés

languagestring

Langue de l'audio reconnu. Si le paramètre de requête language est spécifié, cette valeur correspond au paramètre indiqué.

Valeurs valides

  • zh : Chinois (Mandarin, Sichuanais, Minnan et Wu)
  • yue : Cantonais
  • en : Anglais
  • ja : Japonais
  • de : Allemand
  • ko : Coréen
  • ru : Russe
  • fr : Français
  • pt : Portugais
  • ar : Arabe
  • it : Italien
  • es : Espagnol
  • hi : Hindi
  • id : Indonésien
  • th : Thaï
  • tr : Turc
  • uk : Ukrainien
  • vi : Vietnamien
  • cs : Tchèque
  • da : Danois
  • fil : Filipino
  • fi : Finnois
  • is : Islandais
  • ms : Malais
  • no : Norvégien
  • pl : Polonais
  • sv : Suédois

typestring

Défini sur audio_info, ce qui indique des informations audio.

emotionstring

Émotion de l'audio reconnu. Les émotions suivantes sont prises en charge :

  • surprised : surpris
  • neutral : neutre
  • happy : joyeux
  • sad : triste
  • disgusted : dégoûté
  • angry : en colère
  • fearful : craintif

createdinteger

Horodatage UNIX (en secondes) correspondant au moment où la requête a été créée.

modelstring

Modèle utilisé pour cette requête.

objectstring

Toujours chat.completion.

usageobject

Informations sur la consommation de tokens pour cette requête.

Propriétés

completion_tokens integer

Nombre de tokens dans la sortie du modèle.

completion_tokens_details object

Détails granulaires des tokens dans la sortie du modèle.

Propriétés

text_tokens integer

Nombre de tokens dans le texte de sortie du modèle.

prompt_tokens object

Nombre de tokens dans l'entrée.

prompt_tokens_details object

Détails granulaires des tokens dans l'entrée.

Propriétés

audio_tokens integer

Longueur de l'audio d'entrée en tokens. Règle de conversion audio-token : Chaque seconde d'audio est convertie en 25 tokens. Les durées inférieures à 1 seconde sont comptabilisées comme 1 seconde.

text_tokens integer

Vous pouvez ignorer ce paramètre.

seconds integer

Durée de l'audio en secondes.

total_tokens integer

Nombre total de tokens d'entrée et de sortie (total_tokens = completion_tokens + prompt_tokens).

DashScope synchrone

URL

Singapore

Adresse de requête HTTP : POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation

base_url pour les appels SDK : https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1

Remplacez {WorkspaceId} par votre véritable ID d'espace de travail.

Remplacez {WorkspaceId} par votre véritable ID d'espace de travail.

US (Virginia)

Si vous sélectionnez le périmètre de déploiement US, les ressources de calcul d'inférence du modèle sont limitées aux États-Unis. Les données statiques sont stockées dans la région que vous avez choisie. Région prise en charge : US (Virginia).

Adresse de requête HTTP : POST https://dashscope-us.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation

base_url pour les appels SDK : https://dashscope-us.aliyuncs.com/api/v1

China (Beijing)

Adresse de requête HTTP : POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation

base_url pour les appels SDK : https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1

Remplacez {WorkspaceId} par votre véritable ID d'espace de travail.

ImportantAlibaba Cloud Model Studio a publié des domaines spécifiques à chaque espace de travail pour les régions China (Beijing) et Singapore. Ces nouveaux domaines dédiés offrent de meilleures performances et une stabilité accrue pour les requêtes d'inférence. Nous vous recommandons de migrer vers ces nouveaux domaines :

  • China (Beijing) : passez de dashscope.aliyuncs.com à {WorkspaceId}.cn-beijing.maas.aliyuncs.com
  • Singapore : passez de dashscope-intl.aliyuncs.com à {WorkspaceId}.ap-southeast-1.maas.aliyuncs.com

Remplacez {WorkspaceId} par votre véritable ID d'espace de travail. Les domaines existants restent pleinement fonctionnels.

Request body

L'exemple suivant montre comment reconnaître un fichier audio à partir d'une URL. Pour un exemple de reconnaissance d'un fichier audio local, consultez Démarrage rapide.

curl -X POST "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation" \
    -H "Authorization: Bearer $DASHSCOPE_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
        "model": "qwen3-asr-flash",
        "input": {
            "messages": [
                {
                    "content": [
                        {
                            "audio": "{YOUR_AUDIO_URL}"
                        }
                    ],
                    "role": "user"
                }
            ]
        },
        "parameters": {
            "asr_options": {
                "enable_itn": false
            }
        }
    }'
import java.util.Arrays;
    import java.util.Collections;
    import java.util.HashMap;
    import java.util.Map;

    import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
    import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
    import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
    import com.alibaba.dashscope.common.MultiModalMessage;
    import com.alibaba.dashscope.common.Role;
    import com.alibaba.dashscope.exception.ApiException;
    import com.alibaba.dashscope.exception.NoApiKeyException;
    import com.alibaba.dashscope.exception.UploadFileException;
    import com.alibaba.dashscope.utils.Constants;
    import com.alibaba.dashscope.utils.JsonUtils;

    public class Main {
        public static void simpleMultiModalConversationCall()
                throws ApiException, NoApiKeyException, UploadFileException {
            MultiModalConversation conv = new MultiModalConversation();
            MultiModalMessage userMessage = MultiModalMessage.builder()
                    .role(Role.USER.getValue())
                    .content(Arrays.asList(
                            Collections.singletonMap("audio", "{YOUR_AUDIO_URL}")))
                    .build();

            Map<String, Object> asrOptions = new HashMap<>();
            asrOptions.put("enable_itn", false);
            // asrOptions.put("language", "zh"); // Optional. If you know the language of the audio, you can use this parameter to specify the language to recognize, to improve recognition accuracy
            MultiModalConversationParam param = MultiModalConversationParam.builder()
                    // The API Key differs between the Singapore/US regions and the Beijing region. Get an API Key: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
                    // If you have not configured the environment variable, replace the following line with your Alibaba Cloud Model Studio API Key: .apiKey("sk-xxx")
                    .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                    // If you use a model in the US region, add the "-us" suffix after the model name, for example, qwen3-asr-flash-us
                    .model("qwen3-asr-flash")
                    .message(userMessage)
                    .parameter("asr_options", asrOptions)
                    .build();
            MultiModalConversationResult result = conv.call(param);
            System.out.println(JsonUtils.toJson(result));
        }
        public static void main(String[] args) {
            try {
                // The following is the configuration for the Singapore region. When calling, replace "{WorkspaceId}" with your actual workspace ID. The configuration differs by region.
                Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
                simpleMultiModalConversationCall();
            } catch (ApiException | NoApiKeyException | UploadFileException e) {
                System.out.println(e.getMessage());
            }
            System.exit(0);
        }
    }
import os
    import dashscope

    # The following is the configuration for the Singapore region. When calling, replace "{WorkspaceId}" with your actual workspace ID. The configuration differs by region.
    dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'

    messages = [
        {"role": "user", "content": [{"audio": "{YOUR_AUDIO_URL}"}]}
    ]

    response = dashscope.MultiModalConversation.call(
        # The API Key differs between the Singapore/US regions and the Beijing region. Get an API Key: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
        # If you have not configured the environment variable, replace the following line with your Alibaba Cloud Model Studio API Key: api_key = "sk-xxx"
        api_key=os.getenv("DASHSCOPE_API_KEY"),
        # If you use a model in the US region, add the "-us" suffix after the model name, for example, qwen3-asr-flash-us
        model="qwen3-asr-flash",
        messages=messages,
        result_format="message",
        asr_options={
            #"language": "zh", # Optional. If you know the language of the audio, you can use this parameter to specify the language to recognize, to improve recognition accuracy
            "enable_itn":False
        }
    )
    print(response)

modelstring(Required)

Nom du modèle. Ce paramètre s'applique uniquement au modèle Qwen3-ASR-Flash.

messagesarray(Required)

Liste des messages.

Lors d'un appel HTTP, placez messages dans l'objet input.

Types de messages

Message systèmeobject (Optional)

Permet de fournir un contexte pour la reconnaissance vocale, tel que du texte d'arrière-plan ou des glossaires d'entités. Ne prend pas en charge la définition d'un rôle de modèle ni d'autres invites système traditionnelles. Si vous définissez un message système, placez-le au début de la liste des messages.

Seul Qwen3-ASR-Flash prend en charge ce paramètre.

Propriétés

rolestring(Required)

Définir sur system.

Message utilisateurobject(Required)

Message envoyé par l'utilisateur au modèle.

Propriétés

contentarray(Required)

Contenu du message utilisateur. Un seul message est autorisé dans le tableau.

Propriétés

audiostring(Required)

Audio à reconnaître. Pour plus d'informations sur l'utilisation de ce paramètre, consultez Démarrage rapide.

Avec DashScope, le modèle Qwen3-ASR-Flash accepte trois formats d'entrée : les fichiers encodés en Base64, les chemins absolus de fichiers locaux et les URL de fichiers audio accessibles via le réseau public.

Lors de l'utilisation d'un SDK, si le fichier audio est stocké dans OSS, les URL temporaires commençant par oss:// ne sont pas prises en charge.

Lors de l'utilisation d'une API RESTful, si le fichier audio est stocké dans OSS, les URL temporaires commençant par oss:// sont prises en charge. Remarque :

Important

  • Les URL temporaires sont valides pendant 48 heures. Une fois expirées, elles ne peuvent plus être utilisées. Ne les utilisez pas dans des environnements de production.
  • L'API d'identifiant de téléchargement de fichier est limitée à 100 QPS et ne peut pas être mise à l'échelle. Ne l'utilisez pas en production, dans des scénarios à haute concurrence ou lors de tests de charge.
  • Pour les environnements de production, nous recommandons d'utiliser des services de stockage stables tels qu'Alibaba Cloud OSS afin de garantir la disponibilité à long terme des fichiers et d'éviter les problèmes de limitation de débit.

rolestring(Required)

Rôle du message utilisateur. Définir sur user.

asr_optionsobject(Optional)

Indique s'il faut activer certaines fonctionnalités.

Ce paramètre est pris en charge uniquement par le modèle Qwen3-ASR-Flash.

Propriétés

language string (Optional) Aucune valeur par défaut

Si la langue de l'audio est connue, vous pouvez la spécifier via ce paramètre pour améliorer la précision de la reconnaissance.

Une seule langue peut être spécifiée.

Si la langue de l'audio est incertaine ou comprend plusieurs langues (par exemple un mélange de chinois, d'anglais, de japonais et de coréen), ne spécifiez pas ce paramètre.

Valeurs valides

  • zh : Chinois (Mandarin, Sichuanais, Minnan et Wu)
  • yue : Cantonais
  • en : Anglais
  • ja : Japonais
  • de : Allemand
  • ko : Coréen
  • ru : Russe
  • fr : Français
  • pt : Portugais
  • ar : Arabe
  • it : Italien
  • es : Espagnol
  • hi : Hindi
  • id : Indonésien
  • th : Thaï
  • tr : Turc
  • uk : Ukrainien
  • vi : Vietnamien
  • cs : Tchèque
  • da : Danois
  • fil : Filipino
  • fi : Finnois
  • is : Islandais
  • ms : Malais
  • no : Norvégien
  • pl : Polonais
  • sv : Suédois

enable_itnboolean (Optional) Valeur par défaut : false

Indique s'il faut activer la normalisation inverse de texte (ITN). Cette fonctionnalité s'applique uniquement aux audios en chinois et en anglais.

  • true
  • false (par défaut)

Response body

{
    "output": {
        "choices": [
            {
                "finish_reason": "stop",
                "message": {
                    "annotations": [
                        {
                            "language": "zh",
                            "type": "audio_info",
                            "emotion": "neutral"
                        }
                    ],
                    "content": [
                        {
                            "text": "Welcome to Alibaba Cloud."
                        }
                    ],
                    "role": "assistant"
                }
            }
        ]
    },
    "usage": {
        "input_tokens_details": {
            "text_tokens": 0
        },
        "output_tokens_details": {
            "text_tokens": 6
        },
        "seconds": 1
    },
    "request_id": "568e2bf0-d6f2-97f8-9f15-a57b11dc6977"
}

request_idstring

Identifiant unique de cet appel.

Le paramètre retourné par le SDK Java est requestId

outputobject

Informations sur le résultat de l'appel.

Propriétés

choicesarray

Sortie du modèle. Retournée lorsque result_format est message.

Propriétés

finish_reasonstring

Valeurs valides :

  • null : La sortie est toujours en cours de génération.
  • stop : La sortie s'est terminée naturellement ou a été interrompue par une condition d'arrêt.
  • length : La sortie a dépassé la limite de longueur maximale.

messageobject

Objet message généré par le modèle.

Propriétés

rolestring

Rôle du message de sortie. Défini sur assistant.

contentarray

Contenu du message de sortie.

Propriétés

textstring

Résultat de la reconnaissance vocale.

annotationsarray

Informations d'annotation de la sortie, telles que la langue.

Propriétés

languagestring

Langue de l'audio reconnu. Si le paramètre de requête language est spécifié, cette valeur correspond au paramètre indiqué.

Valeurs valides

  • zh : Chinois (Mandarin, Sichuanais, Minnan et Wu)
  • yue : Cantonais
  • en : Anglais
  • ja : Japonais
  • de : Allemand
  • ko : Coréen
  • ru : Russe
  • fr : Français
  • pt : Portugais
  • ar : Arabe
  • it : Italien
  • es : Espagnol
  • hi : Hindi
  • id : Indonésien
  • th : Thaï
  • tr : Turc
  • uk : Ukrainien
  • vi : Vietnamien
  • cs : Tchèque
  • da : Danois
  • fil : Filipino
  • fi : Finnois
  • is : Islandais
  • ms : Malais
  • no : Norvégien
  • pl : Polonais
  • sv : Suédois

typestring

Défini sur audio_info, ce qui indique des informations audio.

emotionstring

Émotion détectée dans l'audio reconnu. Les émotions suivantes sont prises en charge :

  • surprised : surpris
  • neutral : neutre
  • happy : joyeux
  • sad : triste
  • disgusted : dégoûté
  • angry : en colère
  • fearful : craintif

usageobject

Informations sur la consommation de tokens pour cette requête.

Propriétés

input_tokens_details object

Longueur du contenu d'entrée pour Qwen3-ASR-Flash, exprimée en tokens.

Propriétés

text_tokens integer

Vous pouvez ignorer ce paramètre.

output_tokens_details object

Longueur du contenu de sortie de Qwen3-ASR-Flash, exprimée en tokens.

Propriétés

text_tokens integer

Longueur du texte reconnu généré par Qwen3-ASR-Flash, exprimée en tokens.

seconds integer

Durée de l'audio pour Qwen3-ASR-Flash, en secondes.

Invocation asynchrone de DashScope

Description du processus

L'invocation asynchrone est conçue pour les fichiers audio volumineux ou les tâches nécessitant un temps de traitement important. Elle repose sur un mécanisme en deux étapes, « soumission puis interrogation », afin d'éviter les délais d'expiration des requêtes :

  1. Étape 1 : Soumettre une tâche

    • Le client initie une requête de traitement asynchrone.
    • Après validation de la requête, le serveur n'exécute pas immédiatement la tâche. Il retourne plutôt un identifiant unique task_id, confirmant ainsi la création réussie de la tâche.
  2. Étape 2 : Obtenir le résultat

    • Le client utilise le task_id pour interroger l'API de récupération des résultats.
    • Une fois la tâche terminée, l'API renvoie le résultat final de la reconnaissance.

Selon votre environnement d'intégration, choisissez d'utiliser un SDK ou d'appeler directement l'API RESTful.

  • Utilisation d'un SDK. Pour consulter des exemples de code, reportez-vous à la rubrique QuickStart. Concernant les paramètres de requête, consultez la section Request body de l'opération Submit a task. Pour plus d'informations sur la réponse, voir Description of asynchronous call results.

    Les SDK gèrent automatiquement les détails sous-jacents des appels API.

    1. Soumettre une tâche : Appelez la méthode async_call() (Python) ou asyncCall() (Java) pour soumettre la tâche. Cette méthode retourne un objet de tâche contenant un task_id.
    2. Obtenir le résultat : Utilisez l'objet de tâche retourné à l'étape précédente ou le task_id pour appeler la méthode fetch() et récupérer le résultat. Le SDK gère automatiquement la logique d'interne d'interrogation jusqu'à l'achèvement de la tâche ou son expiration.
  • Utilisation d'une API RESTful

    L'appel direct à l'API RESTful offre une flexibilité maximale.

    1. Submit the task. Si la requête aboutit, le response body contient un task_id.
    2. Utilisez le task_id obtenu à l'étape précédente pour retrieve the task execution result.

Soumettre une tâche

URL

Singapore

Adresse de requête HTTP : POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/audio/asr/transcription

base_url pour les appels SDK : https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1

Remplacez {WorkspaceId} par votre véritable workspace ID.

Remplacez {WorkspaceId} par votre véritable workspace ID.

China (Beijing)

Adresse de requête HTTP : POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/audio/asr/transcription

base_url pour les appels SDK : https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1

Remplacez {WorkspaceId} par votre véritable workspace ID.

ImportantAlibaba Cloud Model Studio a publié des domaines spécifiques aux espaces de travail pour les régions China (Beijing) et Singapore. Ces nouveaux domaines dédiés offrent des performances supérieures et une stabilité accrue pour les requêtes d'inférence. Nous vous recommandons de migrer vers ces nouveaux domaines :

  • China (Beijing) : passez de dashscope.aliyuncs.com à {WorkspaceId}.cn-beijing.maas.aliyuncs.com
  • Singapore : passez de dashscope-intl.aliyuncs.com à {WorkspaceId}.ap-southeast-1.maas.aliyuncs.com

Remplacez {WorkspaceId} par votre véritable Workspace ID. Les domaines existants restent pleinement fonctionnels.

Request body

cURL

# ======= Important =======
    # The following configuration is for the Singapore region. Replace "{WorkspaceId}" with your actual workspace ID. The configuration varies by region.
    # The API keys for the Singapore and Beijing regions are different. For more information about how to obtain an API key, see https://www.alibabacloud.com/help/en/model-studio/get-api-key
    # === Delete this comment before running the command. ===

    curl --location --request POST 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/audio/asr/transcription' \
    --header "Authorization: Bearer $DASHSCOPE_API_KEY" \
    --header "Content-Type: application/json" \
    --header "X-DashScope-Async: enable" \
    --data '{
        "model": "qwen3-asr-flash-filetrans",
        "input": {
            "file_url": "{YOUR_AUDIO_URL}"
        },
        "parameters": {
            "channel_id":[
                0
            ],
            "enable_itn": false
        }
    }'

Java

Pour obtenir des exemples de SDK, consultez la rubrique QuickStart.

import com.google.gson.Gson;
    import com.google.gson.annotations.SerializedName;
    import okhttp3.*;

    import java.io.IOException;

    public class Main {
        // The following configuration is for the Singapore region. Replace "{WorkspaceId}" with your actual workspace ID. The configuration varies by region.
        private static final String API_URL = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/audio/asr/transcription";

        public static void main(String[] args) {
            // The API keys for the Singapore and Beijing regions are different. For more information about how to obtain an API key, see https://www.alibabacloud.com/help/en/model-studio/get-api-key
            // If the environment variable is not configured, replace the following line with your Model Studio API key: String apiKey = "sk-xxx"
            String apiKey = System.getenv("DASHSCOPE_API_KEY");

            OkHttpClient client = new OkHttpClient();
            Gson gson = new Gson();

            /*String payloadJson = """
                    {
                        "model": "qwen3-asr-flash-filetrans",
                        "input": {
                            "file_url": "{YOUR_AUDIO_URL}"
                        },
                        "parameters": {
                            "channel_id": [0],
                            "enable_itn": false,
                            "language": "zh",
                            "corpus": {
                                "text": ""
                            }
                        }
                    }
                    """;*/
            String payloadJson = """
                    {
                        "model": "qwen3-asr-flash-filetrans",
                        "input": {
                            "file_url": "{YOUR_AUDIO_URL}"
                        },
                        "parameters": {
                            "channel_id": [0],
                            "enable_itn": false
                        }
                    }
                    """;

            RequestBody body = RequestBody.create(payloadJson, MediaType.get("application/json; charset=utf-8"));
            Request request = new Request.Builder()
                    .url(API_URL)
                    .addHeader("Authorization", "Bearer " + apiKey)
                    .addHeader("Content-Type", "application/json")
                    .addHeader("X-DashScope-Async", "enable")
                    .post(body)
                    .build();

            try (Response response = client.newCall(request).execute()) {
                if (response.isSuccessful() && response.body() != null) {
                    String respBody = response.body().string();
                    // Parse JSON using Gson
                    ApiResponse apiResp = gson.fromJson(respBody, ApiResponse.class);
                    if (apiResp.output != null) {
                        System.out.println("task_id: " + apiResp.output.taskId);
                    } else {
                        System.out.println(respBody);
                    }
                } else {
                    System.out.println("task failed! HTTP code: " + response.code());
                    if (response.body() != null) {
                        System.out.println(response.body().string());
                    }
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        static class ApiResponse {
            @SerializedName("request_id")
            String requestId;

            Output output;
        }

        static class Output {
            @SerializedName("task_id")
            String taskId;

            @SerializedName("task_status")
            String taskStatus;
        }
    }

Python

Pour obtenir des exemples de SDK, consultez la rubrique QuickStart.

import requests
    import json
    import os

    # The following configuration is for the Singapore region. Replace "{WorkspaceId}" with your actual workspace ID. The configuration varies by region.
    url = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/audio/asr/transcription"

    # The API keys for the Singapore and Beijing regions are different. For more information about how to obtain an API key, see https://www.alibabacloud.com/help/en/model-studio/get-api-key
    # If the environment variable is not configured, replace the following line with your Model Studio API key: DASHSCOPE_API_KEY = "sk-xxx"
    DASHSCOPE_API_KEY = os.getenv("DASHSCOPE_API_KEY")

    headers = {
        "Authorization": f"Bearer {DASHSCOPE_API_KEY}",
        "Content-Type": "application/json",
        "X-DashScope-Async": "enable"
    }

    payload = {
        "model": "qwen3-asr-flash-filetrans",
        "input": {
            "file_url": "{YOUR_AUDIO_URL}"
        },
        "parameters": {
            "channel_id": [0],
            # "language": "zh",
            "enable_itn": False
            # "corpus": {
            #     "text": ""
            # }
        }
    }

    response = requests.post(url, headers=headers, data=json.dumps(payload))
    if response.status_code == 200:
        print(f"task_id: {response.json()["output"]["task_id"]}")
    else:
        print("task failed!")
        print(response.json())

modelstring(Required)

Nom du modèle. Ce paramètre s'applique uniquement au modèle Qwen3-ASR-Flash-Filetrans.

inputobject(Required)

Properties

file_url string(Required)

URL du fichier audio à reconnaître. Cette URL doit être accessible via le réseau public.

Lorsque vous utilisez un SDK, si le fichier audio est stocké dans OSS, les URL temporaires commençant par oss:// ne sont pas prises en charge.

Lorsque vous utilisez une API RESTful, si le fichier audio est stocké dans OSS, les URL temporaires commençant par oss:// sont prises en charge. Remarque :

Important

  • Les URL temporaires sont valides pendant 48 heures. Passé ce délai, elles deviennent inutilisables. Ne les utilisez pas dans des environnements de production.
  • L'API d'identifiants de téléchargement de fichiers est limitée à 100 QPS et ne peut pas monter en charge. Ne l'utilisez pas en production, dans des scénarios à forte concurrence ou lors de tests de charge.
  • Pour les environnements de production, nous recommandons d'utiliser des services de stockage stables tels qu'Alibaba Cloud OSS afin de garantir la disponibilité à long terme des fichiers et d'éviter les problèmes de limitation de débit.

parametersobject(Optional)

Properties

language string (Optional) Aucune valeur par défaut

Si la langue de l'audio est connue, spécifiez-la via ce paramètre pour améliorer la précision de la reconnaissance.

Une seule langue peut être spécifiée.

Si la langue de l'audio est incertaine ou comprend plusieurs langues (par exemple un mélange de chinois, d'anglais, de japonais et de coréen), ne définissez pas ce paramètre.

Valeurs valides

  • zh : Chinois (Mandarin, Sichuanais, Minnan et Wu)
  • yue : Cantonais
  • en : Anglais
  • ja : Japonais
  • de : Allemand
  • ko : Coréen
  • ru : Russe
  • fr : Français
  • pt : Portugais
  • ar : Arabe
  • it : Italien
  • es : Espagnol
  • hi : Hindi
  • id : Indonésien
  • th : Thaï
  • tr : Turc
  • uk : Ukrainien
  • vi : Vietnamien
  • cs : Tchèque
  • da : Danois
  • fil : Filipino
  • fi : Finnois
  • is : Islandais
  • ms : Malais
  • no : Norvégien
  • pl : Polonais
  • sv : Suédois

enable_itnboolean (Optional) Valeur par défaut : false

Indique s'il faut activer la normalisation inverse du texte (ITN). Cette fonctionnalité s'applique uniquement aux audios en chinois et en anglais.

  • true
  • false (par défaut)

enable_wordsboolean(Optional) Valeur par défaut : false

Détermine si les horodatages au niveau des mots doivent être retournés :

  • false : Retourne les horodatages au niveau des phrases.

  • true : Retourne les horodatages au niveau des mots.

    Les horodatages au niveau des mots sont pris en charge uniquement pour les langues suivantes : chinois, anglais, japonais, coréen, allemand, français, espagnol, italien, portugais et russe. La précision pour les autres langues ne peut être garantie.

Ce paramètre influence également les règles de segmentation des phrases :

  • false : La segmentation des phrases repose sur la détection d'activité vocale (VAD).
  • true : La segmentation des phrases repose sur la VAD et la ponctuation.

channel_idarray(Optional) Valeur par défaut : [0]

Spécifie les index des pistes audio à reconnaître dans un fichier audio multipiste. L'index commence à 0. Par exemple, [0] indique que seule la première piste audio est reconnue, tandis que [0, 1] indique que les première et deuxième pistes sont reconnues simultanément. Si ce paramètre est omis, la première piste audio est traitée par défaut.

ImportantChaque piste audio spécifiée est facturée séparément. Par exemple, demander [0, 1] pour un seul fichier entraînera deux facturations distinctes.

Response body

{
    "request_id": "92e3decd-0c69-47a8-************",
    "output": {
        "task_id": "8fab76d0-0eed-4d20-************",
        "task_status": "PENDING"
    }
}

request_idstring

Identifiant unique de cet appel.

outputobject

Informations sur le résultat de l'appel.

Properties

task_idstring

ID de la tâche. Cet ID est transmis en tant que paramètre de requête dans l'API d'interrogation des tâches de reconnaissance vocale.

task_statusstring

État de la tâche :

  • PENDING
  • RUNNING
  • SUCCEEDED
  • FAILED
  • UNKNOWN : La tâche n'existe pas ou son état est inconnu.

Obtenir le résultat de l'exécution de la tâche

URL

Singapore

Adresse de requête HTTP : GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id}

base_url pour les appels SDK : https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1

Remplacez {WorkspaceId} par votre véritable ID d'espace de travail.

Remplacez {WorkspaceId} par votre véritable ID d'espace de travail.

China (Beijing)

Adresse de requête HTTP : GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id}

base_url pour les appels SDK : https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1

Remplacez {WorkspaceId} par votre véritable ID d'espace de travail.

ImportantAlibaba Cloud Model Studio a publié des domaines spécifiques à chaque espace de travail pour les régions China (Beijing) et Singapore. Ces nouveaux domaines dédiés offrent des performances supérieures et une stabilité accrue pour les requêtes d'inférence. Nous vous recommandons de migrer vers ces nouveaux domaines :

  • China (Beijing) : passez de dashscope.aliyuncs.com à {WorkspaceId}.cn-beijing.maas.aliyuncs.com
  • Singapore : passez de dashscope-intl.aliyuncs.com à {WorkspaceId}.ap-southeast-1.maas.aliyuncs.com

Remplacez {WorkspaceId} par votre véritable ID d'espace de travail. Les domaines existants restent pleinement fonctionnels.

Corps de la requête

cURL

# ======= Important =======
    # The following configuration is for the Singapore region. Replace "{WorkspaceId}" with your actual workspace ID. The configuration varies by region.
    # The API keys for the Singapore and Beijing regions are different. For more information about how to obtain an API key, see https://www.alibabacloud.com/help/en/model-studio/get-api-key
    # === Delete this comment before running the command. ===

    curl --location --request GET 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id}' \
    --header "Authorization: Bearer $DASHSCOPE_API_KEY" \
    --header "Content-Type: application/json"

Java

Pour des exemples SDK, consultez QuickStart.

import okhttp3.*;

    import java.io.IOException;

    public class Main {
        public static void main(String[] args) {
            // Replace with the actual task_id.
            String taskId = "xxx";
            // The API keys for the Singapore and Beijing regions are different. For more information about how to obtain an API key, see https://www.alibabacloud.com/help/en/model-studio/get-api-key
            // If the environment variable is not configured, replace the following line with your Model Studio API key: String apiKey = "sk-xxx"
            String apiKey = System.getenv("DASHSCOPE_API_KEY");

            // The following configuration is for the Singapore region. Replace "{WorkspaceId}" with your actual workspace ID. The configuration varies by region.
            String apiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/" + taskId;

            OkHttpClient client = new OkHttpClient();

            Request request = new Request.Builder()
                    .url(apiUrl)
                    .addHeader("Authorization", "Bearer " + apiKey)
                    .addHeader("Content-Type", "application/json")
                    .get()
                    .build();

            try (Response response = client.newCall(request).execute()) {
                if (response.body() != null) {
                    System.out.println(response.body().string());
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

Python

Pour des exemples SDK, consultez QuickStart.

import os
    import requests

    # The API keys for the Singapore and Beijing regions are different. For more information about how to obtain an API key, see https://www.alibabacloud.com/help/en/model-studio/get-api-key
    # If the environment variable is not configured, replace the following line with your Model Studio API key: DASHSCOPE_API_KEY = "sk-xxx"
    DASHSCOPE_API_KEY = os.getenv("DASHSCOPE_API_KEY")

    # Replace with the actual task_id.
    task_id = "xxx"
    # The following configuration is for the Singapore region. Replace "{WorkspaceId}" with your actual workspace ID. The configuration varies by region.
    url = f"https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id}"

    headers = {
        "Authorization": f"Bearer {DASHSCOPE_API_KEY}",
        "Content-Type": "application/json"
    }

    response = requests.get(url, headers=headers)
    print(response.json())

task_idstring(Obligatoire)

Identifiant de la tâche. Transmettez le task_id obtenu dans la réponse de l'opération Soumettre une tâche afin d'interroger le résultat de la reconnaissance vocale.

Corps de la réponse

{
    "request_id": "6769df07-2768-4fb0-ad59-************",
    "output": {
        "task_id": "9be1700a-0f8e-4778-be74-************",
        "task_status": "RUNNING",
        "submit_time": "2025-10-27 14:19:31.150",
        "scheduled_time": "2025-10-27 14:19:31.233",
        "task_metrics": {
            "TOTAL": 1,
            "SUCCEEDED": 0,
            "FAILED": 0
        }
    }
}
{
        "request_id": "1dca6c0a-0ed1-4662-aa39-************",
        "output": {
            "task_id": "8fab76d0-0eed-4d20-929f-************",
            "task_status": "SUCCEEDED",
            "submit_time": "2025-10-27 13:57:45.948",
            "scheduled_time": "2025-10-27 13:57:46.018",
            "end_time": "2025-10-27 13:57:47.079",
            "result": {
                "transcription_url": "http://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/pre/pre-funasr-mlt-v1/20251027/13%3A57/7a3a8236-ffd1-4099-a280-0299686ac7da.json?Expires=1761631066&OSSAccessKeyId=YOUR_ACCESS_KEY_ID&Signature=YOUR_SIGNATURE&response-content-disposition=attachment%3Bfilename%3D7a3a8236-ffd1-4099-a280-0299686ac7da.json"
            }
        },
        "usage": {
            "seconds": 3
        }
    }
{
        "request_id": "3d141841-858a-466a-9ff9-************",
        "output": {
            "task_id": "c58c7951-7789-4557-9ea3-************",
            "task_status": "FAILED",
            "submit_time": "2025-10-27 15:06:06.915",
            "scheduled_time": "2025-10-27 15:06:06.967",
            "end_time": "2025-10-27 15:06:07.584",
            "code": "FILE_403_FORBIDDEN",
            "message": "FILE_403_FORBIDDEN"
        }
    }

request_idstring

Identifiant unique de cet appel.

outputobject

Informations sur le résultat de l'appel.

Propriétés

task_idstring

Identifiant de la tâche. Cet ID est transmis en tant que paramètre de requête dans l'API d'interrogation des tâches de reconnaissance vocale.

task_statusstring

État de la tâche :

  • PENDING
  • RUNNING
  • SUCCEEDED
  • FAILED
  • UNKNOWN : La tâche n'existe pas ou son état est inconnu.

resultobject

Résultat de la reconnaissance vocale.

Propriétés

transcription_urlstring

URL de téléchargement du fichier de résultats de reconnaissance. Ce lien reste valide pendant 24 heures. Une fois expiré, il n'est plus possible d'interroger la tâche ni de télécharger le résultat via cette URL.
Le résultat de la reconnaissance est enregistré au format JSON. Vous pouvez télécharger ce fichier via le lien fourni ou lire directement son contenu à l'aide d'une requête HTTP.

Pour plus d'informations, consultez Description des résultats d'appels asynchrones.

submit_timestring

Heure de soumission de la tâche.

schedule_timestring

Heure de planification de la tâche, correspondant au début de son exécution.

end_timestring

Heure de fin de la tâche.

task_metricsobject

Métriques de la tâche, comprenant des statistiques sur l'état des sous-tâches.

Propriétés

TOTALinteger

Nombre total de sous-tâches.

SUCCEEDEDinteger

Nombre de sous-tâches réussies.

FAILEDinteger

Nombre de sous-tâches ayant échoué.

codestring

Code d'erreur. Renvoyé uniquement en cas d'échec de la tâche.

messagestring

Message d'erreur. Renvoyé uniquement en cas d'échec de la tâche.

usageobject

Informations sur la consommation de tokens pour cette requête.

Propriétés

seconds integer

Durée audio pour Qwen3-ASR-Flash, exprimée en secondes.

Description des résultats d'appels asynchrones

{
        "file_url": "https://***.wav",
        "audio_info": {
            "format": "wav",
            "sample_rate": 16000
        },
        "transcripts": [
            {
                "channel_id": 0,
                "text": "Senior staff, Principal Doris Jackson, Wakefield faculty, and of course my fellow classmates.I am honored to have been chosen to speak before my classmates along with the students across America today.",
                "sentences": [
                    {
                        "sentence_id": 0,
                        "begin_time": 240,
                        "end_time": 6720,
                        "language": "en",
                        "emotion": "happy",
                        "text": "Senior staff, Principal Doris Jackson, Wakefield faculty, and of course my fellow classmates.",
                        "words": [
                            {
                                "begin_time": 240,
                                "end_time": 1120,
                                "text": "Senior ",
                                "punctuation": ""
                            },
                            {
                                "begin_time": 1120,
                                "end_time": 1200,
                                "text": "staff",
                                "punctuation": ","
                            },
                            {
                                "begin_time": 1680,
                                "end_time": 1920,
                                "text": " Principal ",
                                "punctuation": ""
                            },
                            {
                                "begin_time": 2000,
                                "end_time": 2320,
                                "text": "Doris ",
                                "punctuation": ""
                            },
                            {
                                "begin_time": 2320,
                                "end_time": 2960,
                                "text": "Jackson",
                                "punctuation": ","
                            },
                            {
                                "begin_time": 3360,
                                "end_time": 3840,
                                "text": " Wakefield ",
                                "punctuation": ""
                            },
                            {
                                "begin_time": 3840,
                                "end_time": 4480,
                                "text": "faculty",
                                "punctuation": ","
                            },
                            {
                                "begin_time": 4800,
                                "end_time": 4960,
                                "text": " and ",
                                "punctuation": ""
                            },
                            {
                                "begin_time": 4960,
                                "end_time": 5040,
                                "text": "of ",
                                "punctuation": ""
                            },
                            {
                                "begin_time": 5040,
                                "end_time": 5520,
                                "text": "course ",
                                "punctuation": ""
                            },
                            {
                                "begin_time": 5520,
                                "end_time": 5680,
                                "text": "my ",
                                "punctuation": ""
                            },
                            {
                                "begin_time": 5760,
                                "end_time": 6000,
                                "text": "fellow ",
                                "punctuation": ""
                            },
                            {
                                "begin_time": 6000,
                                "end_time": 6720,
                                "text": "classmates",
                                "punctuation": "."
                            }
                        ]
                    },
                    {
                        "sentence_id": 1,
                        "begin_time": 12268,
                        "end_time": 17388,
                        "language": "en",
                        "emotion": "neutral",
                        "text": "I am honored to have been chosen to speak before my classmates along with the students across America today.",
                        "words": [
                            {
                                "begin_time": 12268,
                                "end_time": 12428,
                                "text": "I ",
                                "punctuation": ""
                            },
                            {
                                "begin_time": 12428,
                                "end_time": 12508,
                                "text": "am ",
                                "punctuation": ""
                            },
                            {
                                "begin_time": 12588,
                                "end_time": 12828,
                                "text": "honored ",
                                "punctuation": ""
                            },
                            {
                                "begin_time": 12908,
                                "end_time": 12908,
                                "text": "to ",
                                "punctuation": ""
                            },
                            {
                                "begin_time": 12908,
                                "end_time": 13068,
                                "text": "have ",
                                "punctuation": ""
                            },
                            {
                                "begin_time": 13068,
                                "end_time": 13228,
                                "text": "been ",
                                "punctuation": ""
                            },
                            {
                                "begin_time": 13228,
                                "end_time": 13628,
                                "text": "chosen ",
                                "punctuation": ""
                            },
                            {
                                "begin_time": 13628,
                                "end_time": 13708,
                                "text": "to ",
                                "punctuation": ""
                            },
                            {
                                "begin_time": 13708,
                                "end_time": 14028,
                                "text": "speak ",
                                "punctuation": ""
                            },
                            {
                                "begin_time": 14028,
                                "end_time": 14268,
                                "text": "before ",
                                "punctuation": ""
                            },
                            {
                                "begin_time": 14268,
                                "end_time": 14428,
                                "text": "my ",
                                "punctuation": ""
                            },
                            {
                                "begin_time": 14428,
                                "end_time": 15148,
                                "text": "classmates ",
                                "punctuation": ""
                            },
                            {
                                "begin_time": 15308,
                                "end_time": 15468,
                                "text": "as ",
                                "punctuation": ""
                            },
                            {
                                "begin_time": 15468,
                                "end_time": 15628,
                                "text": "well ",
                                "punctuation": ""
                            },
                            {
                                "begin_time": 15628,
                                "end_time": 15788,
                                "text": "as ",
                                "punctuation": ""
                            },
                            {
                                "begin_time": 15788,
                                "end_time": 15788,
                                "text": "the ",
                                "punctuation": ""
                            },
                            {
                                "begin_time": 15788,
                                "end_time": 16188,
                                "text": "students ",
                                "punctuation": ""
                            },
                            {
                                "begin_time": 16188,
                                "end_time": 16588,
                                "text": "across ",
                                "punctuation": ""
                            },
                            {
                                "begin_time": 16588,
                                "end_time": 16988,
                                "text": "America ",
                                "punctuation": ""
                            },
                            {
                                "begin_time": 16988,
                                "end_time": 17388,
                                "text": "today",
                                "punctuation": "."
                            }
                        ]
                    }
                ]
            }
        ]
    }

file_url string

URL du fichier audio reconnu.

audio_infoobject

Informations relatives au fichier audio reconnu.

Propriétés

format string

Format audio.

sample_rate integer

Taux d'échantillonnage audio.

transcriptsarray

Liste des résultats complets de reconnaissance. Chaque élément correspond au contenu reconnu d'une piste audio.

Propriétés

channel_idinteger

Index de la piste audio, commençant à 0.

textstring

Texte reconnu.

sentencesobject

Liste des résultats de reconnaissance au niveau des phrases.

Propriétés

begin_time integer

Horodatage de début de la phrase, en millisecondes.

end_time integer

Horodatage de fin de la phrase, en millisecondes.

textstring

Texte reconnu.

sentence_idinteger

Index de la phrase, commençant à 0.

languagestring

Langue de l'audio reconnu. Si le paramètre de requête language est spécifié, cette valeur correspond au paramètre indiqué.

Valeurs valides

  • zh : Chinois (mandarin, sichuanais, minnan et wu)
  • yue : Cantonais
  • en : Anglais
  • ja : Japonais
  • de : Allemand
  • ko : Coréen
  • ru : Russe
  • fr : Français
  • pt : Portugais
  • ar : Arabe
  • it : Italien
  • es : Espagnol
  • hi : Hindi
  • id : Indonésien
  • th : Thaï
  • tr : Turc
  • uk : Ukrainien
  • vi : Vietnamien
  • cs : Tchèque
  • da : Danois
  • fil : Filipino
  • fi : Finnois
  • is : Islandais
  • ms : Malais
  • no : Norvégien
  • pl : Polonais
  • sv : Suédois

emotionstring

Émotion détectée dans l'audio reconnu. Les émotions suivantes sont prises en charge :

  • surprised
  • neutral
  • happy
  • sad
  • disgusted
  • angry
  • fearful

wordsobject

Liste des résultats de reconnaissance au niveau des mots. Ce résultat s'affiche lorsque le paramètre de requête enable_words est défini sur true.

Propriétés

begin_time integer

Horodatage de début, en millisecondes.

end_time integer

Horodatage de fin, en millisecondes.

textstring

Texte reconnu.

punctuationstring

Signe de ponctuation.