Todos os produtos
Search
Central de documentação

Alibaba Cloud Model Studio:Referência da API de reconhecimento de fala não em tempo real (Qwen-ASR)

Última atualização: Sep 02, 2026

Parâmetros de entrada e saída do modelo Qwen-ASR. Chame a API usando o protocolo compatível com OpenAI ou DashScope.

Guia do usuário: Consulte Non-real-time speech recognition.

Tipos de conexão do modelo

Cada models oferece suporte a diferentes tipos de conexão.

Modelo

Tipo de conexão

Qwen3-ASR-Flash-Filetrans

Suporta apenas DashScope asynchronous invocation

Qwen3-ASR-Flash

OpenAI compatible e DashScope synchronous

Compatível com OpenAI

ImportanteA região US (Virginia) não oferece suporte ao modo compatível com OpenAI.

URL

Singapore

Endereço de requisição HTTP: POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/chat/completions

base_url para chamadas de SDK: https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1

Substitua {WorkspaceId} pelo seu workspace ID real.

Substitua {WorkspaceId} pelo seu workspace ID real.

China (Beijing)

Endereço de requisição HTTP: POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/chat/completions

base_url para chamadas de SDK: https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1

Substitua {WorkspaceId} pelo seu workspace ID real.

Substitua {WorkspaceId} pelo seu workspace ID real.

ImportanteO Alibaba Cloud Model Studio lançou domínios específicos por workspace para as regiões China (Beijing) e Singapore. Os novos domínios dedicados oferecem desempenho superior e maior estabilidade para requisições de inferência. Recomendamos a migração para os novos domínios:

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

Substitua {WorkspaceId} pelo seu Workspace ID real. Os domínios existentes permanecem totalmente funcionais.

Corpo da requisição

Entrada: URL de arquivo de áudio

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

A configuração abaixo refere-se à região Singapore. Substitua {WorkspaceId} pelo seu Workspace ID real. A configuração varia conforme a região.

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
        }
    }'

Entrada: Arquivo de áudio codificado em Base64

Transmita os dados codificados em Base64 como uma Data URL no formato data:<mediatype>;base64,<data>.

  • <mediatype>: o tipo MIME.

    O tipo MIME varia conforme o formato do áudio. Por exemplo:

    • WAV: audio/wav
    • MP3: audio/mpeg
  • <data>: a string do áudio codificada em Base64.

    A codificação Base64 aumenta o tamanho dos dados. Mantenha o arquivo de origem pequeno o suficiente para que o resultado codificado ainda respeite o limite de tamanho de entrada de áudio (10 MB).

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

    Clique para visualizar o código de exemplo

    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(Obrigatório)

Nome do model. Este parâmetro aplica-se apenas ao modelo Qwen3-ASR-Flash.

messagesarray(Obrigatório)

Lista de mensagens.

Tipos de mensagem

System Messageobject (Opcional)

Utilizada para fornecer contexto ao reconhecimento de fala, como texto de fundo e glossários de entidades. Não suporta a definição de função do modelo ou outros prompts tradicionais de sistema. Caso utilize uma system message, ela deve ser a primeira mensagem na lista messages.

Propriedades

rolestring(Obrigatório)

Defina como system.

User Messageobject(Obrigatório)

Mensagem enviada pelo usuário ao modelo.

Propriedades

contentarray(Obrigatório)

Conteúdo da mensagem do usuário. Apenas uma mensagem é permitida no array.

Propriedades

typestring(Obrigatório)

Defina como input_audio, indicando que a entrada é um áudio.

input_audiostring(Obrigatório)

Áudio a ser reconhecido. Para mais detalhes sobre como usar este parâmetro, consulte Quick start.

No modo compatível com OpenAI, o modelo Qwen3-ASR-Flash aceita dois formatos de entrada: arquivos codificados em Base64 e URLs de arquivos de áudio acessíveis pela rede pública.

Ao utilizar um SDK, se o arquivo de áudio estiver armazenado no OSS, URLs temporárias iniciadas com oss:// não são suportadas.

Ao utilizar uma API RESTful, se o arquivo de áudio estiver armazenado no OSS, URLs temporárias iniciadas com oss:// são suportadas. Observação:

Importante

  • As URLs temporárias têm validade de 48 horas. Após expirarem, não podem mais ser utilizadas. Não as utilize em ambientes de produção.
  • A API de credenciais de upload de arquivos possui um limite de taxa de 100 QPS e não pode ser escalonada. Não a utilize em cenários de produção, alta concorrência ou testes de estresse.
  • Para ambientes de produção, recomendamos o uso de serviços de armazenamento estáveis, como o Alibaba Cloud OSS, para garantir a disponibilidade de longo prazo dos arquivos e evitar problemas de limitação de taxa.

rolestring(Obrigatório)

Função da mensagem do usuário. Defina como user.

asr_optionsobject(Opcional)

Define se determinados recursos devem ser ativados.

asr_options não é um parâmetro padrão da OpenAI. Se você usar um SDK da OpenAI, transmita-o através de extra_body.

Propriedades

language string (Opcional) Sem valor padrão

Caso o idioma do áudio seja conhecido, especifique-o neste parâmetro para melhorar a precisão do reconhecimento.

É possível especificar apenas um idioma.

Se o idioma do áudio for incerto ou incluir múltiplos idiomas (como uma mistura de chinês, inglês, japonês e coreano), não defina este parâmetro.

Valores válidos

  • zh: Chinês (Mandarim, Sichuanês, Minnan e Wu)
  • yue: Cantonês
  • en: Inglês
  • ja: Japonês
  • de: Alemão
  • ko: Coreano
  • ru: Russo
  • fr: Francês
  • pt: Português
  • ar: Árabe
  • it: Italiano
  • es: Espanhol
  • hi: Hindi
  • id: Indonésio
  • th: Tailandês
  • tr: Turco
  • uk: Ucraniano
  • vi: Vietnamita
  • cs: Tcheco
  • da: Dinamarquês
  • fil: Filipino
  • fi: Finlandês
  • is: Islandês
  • ms: Malaio
  • no: Norueguês
  • pl: Polonês
  • sv: Sueco

enable_itnboolean (Opcional) Padrão: false

Define se a Normalização Inversa de Texto (ITN) deve ser ativada. Este recurso aplica-se apenas a áudios em chinês e inglês.

  • true
  • false (padrão)

streamboolean(Opcional) Padrão: false

Define se a saída em streaming deve ser utilizada. Consulte Streaming output.

Valores válidos:

  • false: O modelo retorna o conteúdo completo após a geração.
  • true: O modelo gera e transmite o conteúdo simultaneamente. Um bloco de dados (chunk) é retornado cada vez que uma parte do conteúdo é gerada. É necessário ler esses blocos em tempo real para montar a resposta completa.

Defina como true para reduzir o risco de timeout nas requisições.

stream_optionsobject(Opcional)

Itens de configuração para saída em streaming. Este parâmetro só tem efeito quando stream estiver definido como true.

Propriedades

include_usageboolean(Opcional) Padrão: false

Define se as informações de consumo de tokens devem ser incluídas no último bloco de dados da resposta.

Valores válidos:

  • true
  • false (padrão)

Durante a saída em streaming, as informações de consumo de tokens aparecem apenas no último bloco de dados da resposta.

Corpo da resposta

{
    "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

Identificador único desta chamada.

choicesarray

Informações de saída do modelo.

Propriedades

finish_reasonstring

Valores válidos:

  • null: A saída ainda está sendo gerada.
  • stop: A saída terminou naturalmente ou foi interrompida por uma condição de parada.
  • length: A saída excedeu o limite máximo de comprimento.

indexinteger

Índice do objeto atual no array choices.

messageobject

Objeto de mensagem gerado pelo modelo.

Propriedades

rolestring

Função da mensagem de saída. Definida como assistant.

contentarray

Resultado do reconhecimento de fala.

annotationsarray

Informações de anotação da saída, como o idioma.

Propriedades

languagestring

Idioma do áudio reconhecido. Se o parâmetro de requisição language for especificado, este valor será igual ao parâmetro definido.

Valores válidos

  • zh: Chinês (Mandarim, Sichuanês, Minnan e Wu)
  • yue: Cantonês
  • en: Inglês
  • ja: Japonês
  • de: Alemão
  • ko: Coreano
  • ru: Russo
  • fr: Francês
  • pt: Português
  • ar: Árabe
  • it: Italiano
  • es: Espanhol
  • hi: Hindi
  • id: Indonésio
  • th: Tailandês
  • tr: Turco
  • uk: Ucraniano
  • vi: Vietnamita
  • cs: Tcheco
  • da: Dinamarquês
  • fil: Filipino
  • fi: Finlandês
  • is: Islandês
  • ms: Malaio
  • no: Norueguês
  • pl: Polonês
  • sv: Sueco

typestring

Definido como audio_info, indicando informações de áudio.

emotionstring

Emoção detectada no áudio reconhecido. As seguintes emoções são suportadas:

  • surprised: surpreso
  • neutral: neutro
  • happy: feliz
  • sad: triste
  • disgusted: enojado
  • angry: com raiva
  • fearful: amedrontado

createdinteger

Timestamp UNIX (em segundos) de criação da requisição.

modelstring

Modelo utilizado nesta requisição.

objectstring

Sempre chat.completion.

usageobject

Informações de consumo de tokens desta requisição.

Propriedades

completion_tokens integer

Quantidade de tokens na saída do modelo.

completion_tokens_details object

Detalhes granulares dos tokens na saída do modelo.

Propriedades

text_tokens integer

Quantidade de tokens no texto de saída do modelo.

prompt_tokens object

Quantidade de tokens na entrada.

prompt_tokens_details object

Detalhes granulares dos tokens na entrada.

Propriedades

audio_tokens integer

Duração do áudio de entrada em tokens. Regra de conversão de áudio para token: Cada segundo de áudio é convertido em 25 tokens. Durações inferiores a 1 segundo são contabilizadas como 1 segundo.

text_tokens integer

Este parâmetro pode ser ignorado.

seconds integer

Duração do áudio em segundos.

total_tokens integer

Número total de tokens de entrada e saída (total_tokens = completion_tokens + prompt_tokens).

DashScope síncrono

URL

Singapore

Endereço de requisição HTTP: POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation

base_url para chamadas via SDK: https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1

Substitua {WorkspaceId} pelo seu workspace ID real.

Substitua {WorkspaceId} pelo seu workspace ID real.

US (Virginia)

Se você selecionar o escopo de implantação US, os recursos computacionais de inferência do modelo ficarão restritos aos Estados Unidos. Os dados estáticos são armazenados na região selecionada. Região suportada: US (Virginia).

Endereço de requisição HTTP: POST https://dashscope-us.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation

base_url para chamadas via SDK: https://dashscope-us.aliyuncs.com/api/v1

China (Beijing)

Endereço de requisição HTTP: POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation

base_url para chamadas via SDK: https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1

Substitua {WorkspaceId} pelo seu workspace ID real.

ImportanteO Alibaba Cloud Model Studio lançou domínios específicos por workspace para as regiões China (Beijing) e Singapore. Os novos domínios dedicados oferecem desempenho superior e maior estabilidade para requisições de inferência. Recomendamos a migração para os novos domínios:

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

Substitua {WorkspaceId} pelo seu Workspace ID real. Os domínios existentes permanecem totalmente funcionais.

Request body

O exemplo a seguir mostra como reconhecer um arquivo de áudio a partir de uma URL. Para ver um exemplo de reconhecimento de arquivo de áudio local, consulte Quick start.

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)

Nome do model. Este parâmetro aplica-se apenas ao modelo Qwen3-ASR-Flash.

messagesarray(Required)

Lista de mensagens.

Ao fazer uma chamada HTTP, coloque messages dentro do objeto input.

Tipos de mensagem

Mensagem do sistemaobject (Optional)

Fornece contexto para o reconhecimento de fala, como texto de fundo e glossários de entidades. Não suporta a definição de função do modelo ou outros prompts tradicionais de sistema. Se definir uma mensagem de sistema, coloque-a no início da lista de mensagens.

Apenas o Qwen3-ASR-Flash suporta este parâmetro.

Propriedades

rolestring(Required)

Defina como system.

Mensagem do usuárioobject(Required)

Mensagem enviada pelo usuário ao modelo.

Propriedades

contentarray(Required)

Conteúdo da mensagem do usuário. Apenas uma mensagem é permitida no array.

Propriedades

audiostring(Required)

Áudio a ser reconhecido. Para mais informações sobre como usar este parâmetro, consulte Quick start.

Ao usar o DashScope, o modelo Qwen3-ASR-Flash suporta três formatos de entrada: arquivos codificados em Base64, caminhos absolutos de arquivos locais e URLs de arquivos de áudio acessíveis pela rede pública.

Ao usar um SDK, se o arquivo de áudio estiver armazenado no OSS, URLs temporárias que começam com oss:// não são suportadas.

Ao usar uma API RESTful, se o arquivo de áudio estiver armazenado no OSS, URLs temporárias que começam com oss:// são suportadas. Observação:

Importante

  • As URLs temporárias têm validade de 48 horas. Após o vencimento, não podem mais ser utilizadas. Não as utilize em ambientes de produção.
  • A API de credenciais de upload de arquivos possui limite de taxa de 100 QPS e não pode ser escalonada. Não a utilize em cenários de produção, alta concorrência ou testes de estresse.
  • Para ambientes de produção, recomendamos o uso de serviços de armazenamento estáveis, como o Alibaba Cloud OSS, para garantir disponibilidade de longo prazo dos arquivos e evitar problemas de limitação de taxa.

rolestring(Required)

Função da mensagem do usuário. Defina como user.

asr_optionsobject(Optional)

Define se determinados recursos devem ser ativados.

Este parâmetro é suportado apenas pelo modelo Qwen3-ASR-Flash.

Propriedades

language string (Optional) Sem valor padrão

Caso o idioma do áudio seja conhecido, especifique-o neste parâmetro para melhorar a precisão do reconhecimento.

É possível especificar apenas um idioma.

Se o idioma do áudio for incerto ou incluir múltiplos idiomas (como uma mistura de chinês, inglês, japonês e coreano), não especifique este parâmetro.

Valores válidos

  • zh: Chinês (Mandarim, Sichuanês, Minnan e Wu)
  • yue: Cantonês
  • en: Inglês
  • ja: Japonês
  • de: Alemão
  • ko: Coreano
  • ru: Russo
  • fr: Francês
  • pt: Português
  • ar: Árabe
  • it: Italiano
  • es: Espanhol
  • hi: Hindi
  • id: Indonésio
  • th: Tailandês
  • tr: Turco
  • uk: Ucraniano
  • vi: Vietnamita
  • cs: Tcheco
  • da: Dinamarquês
  • fil: Filipino
  • fi: Finlandês
  • is: Islandês
  • ms: Malaio
  • no: Norueguês
  • pl: Polonês
  • sv: Sueco

enable_itnboolean (Optional) Padrão: false

Define se a Normalização Inversa de Texto (ITN) deve ser ativada. Este recurso aplica-se apenas a áudios em chinês e inglês.

  • true
  • false (padrão)

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

Identificador único desta chamada.

O parâmetro retornado pelo SDK Java é requestId

outputobject

Informações do resultado da chamada.

Propriedades

choicesarray

Saída do modelo. Retornado quando result_format é message.

Propriedades

finish_reasonstring

Valores válidos:

  • null: A saída ainda está sendo gerada.
  • stop: A saída terminou naturalmente ou foi interrompida por uma condição de parada.
  • length: A saída excedeu o limite máximo de comprimento.

messageobject

Objeto de mensagem gerado pelo modelo.

Propriedades

rolestring

Função da mensagem de saída. Definida como assistant.

contentarray

Conteúdo da mensagem de saída.

Propriedades

textstring

Resultado do reconhecimento de fala.

annotationsarray

Informações de anotação da saída, como o idioma.

Propriedades

languagestring

Idioma do áudio reconhecido. Se o parâmetro de requisição language for especificado, este valor será igual ao parâmetro definido.

Valores válidos

  • zh: Chinês (Mandarim, Sichuanês, Minnan e Wu)
  • yue: Cantonês
  • en: Inglês
  • ja: Japonês
  • de: Alemão
  • ko: Coreano
  • ru: Russo
  • fr: Francês
  • pt: Português
  • ar: Árabe
  • it: Italiano
  • es: Espanhol
  • hi: Hindi
  • id: Indonésio
  • th: Tailandês
  • tr: Turco
  • uk: Ucraniano
  • vi: Vietnamita
  • cs: Tcheco
  • da: Dinamarquês
  • fil: Filipino
  • fi: Finlandês
  • is: Islandês
  • ms: Malaio
  • no: Norueguês
  • pl: Polonês
  • sv: Sueco

typestring

Definido como audio_info, indicando informações de áudio.

emotionstring

Emoção detectada no áudio reconhecido. As seguintes emoções são suportadas:

  • surprised: surpreso
  • neutral: neutro
  • happy: feliz
  • sad: triste
  • disgusted: enojado
  • angry: com raiva
  • fearful: com medo

usageobject

Informações sobre o consumo de tokens nesta requisição.

Propriedades

input_tokens_details object

Comprimento do conteúdo de entrada para o Qwen3-ASR-Flash em tokens.

Propriedades

text_tokens integer

Você pode ignorar este parâmetro.

output_tokens_details object

Comprimento do conteúdo de saída do Qwen3-ASR-Flash em tokens.

Propriedades

text_tokens integer

Comprimento do texto reconhecido gerado pelo Qwen3-ASR-Flash em tokens.

seconds integer

Duração do áudio processado pelo Qwen3-ASR-Flash em segundos.

Invocação assíncrona do DashScope

Descrição do processo

A invocação assíncrona foi projetada para arquivos de áudio longos ou tarefas que demandam muito tempo. Ela utiliza um processo de duas etapas, "enviar-consultar", para evitar timeouts nas requisições:

  1. Etapa 1: Enviar uma tarefa

    • O cliente inicia uma requisição de processamento assíncrono.
    • Após validar a requisição, o servidor não executa a tarefa imediatamente. Em vez disso, ele retorna um task_id único, indicando que a tarefa foi criada com sucesso.
  2. Etapa 2: Obter o resultado

    • O cliente usa o task_id para consultar a API de resultados periodicamente.
    • Quando a tarefa é concluída, a API de resultados retorna o resultado final do reconhecimento.

Escolha usar um SDK ou chamar a API RESTful diretamente, dependendo do seu ambiente de integração.

  • Use um SDK. Para exemplos de código, consulte QuickStart. Para parâmetros de requisição, veja a Request body da operação Submit a task. Para informações sobre a resposta, consulte Description of asynchronous call results.

    Os SDKs gerenciam automaticamente os detalhes subjacentes das chamadas de API.

    1. Envie uma tarefa: Chame o método async_call() (Python) ou asyncCall() (Java) para enviar a tarefa. Este método retorna um objeto de tarefa contendo um task_id.
    2. Obtenha o resultado: Use o objeto de tarefa retornado na etapa anterior ou o task_id para chamar o método fetch() e recuperar o resultado. O SDK lida automaticamente com a lógica interna de consulta até que a tarefa seja concluída ou atinja o timeout.
  • Use uma API RESTful

    Chamar a API RESTful diretamente oferece máxima flexibilidade.

    1. Submit the task. Se a requisição for bem-sucedida, a response body conterá um task_id.
    2. Utilize o task_id da etapa anterior para retrieve the task execution result.

Enviar uma tarefa

URL

Singapore

Endereço de requisição HTTP: POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/audio/asr/transcription

base_url para chamadas de SDK: https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1

Substitua {WorkspaceId} pelo seu workspace ID real.

Substitua {WorkspaceId} pelo seu workspace ID real.

China (Beijing)

Endereço de requisição HTTP: POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/audio/asr/transcription

base_url para chamadas de SDK: https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1

Substitua {WorkspaceId} pelo seu workspace ID real.

ImportanteO Alibaba Cloud Model Studio lançou domínios específicos por workspace para as regiões China (Beijing) e Singapore. Os novos domínios dedicados oferecem desempenho superior e maior estabilidade para requisições de inferência. Recomendamos migrar para os novos domínios:

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

Substitua {WorkspaceId} pelo seu Workspace ID real. Os domínios existentes permanecem totalmente funcionais.

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

Para exemplos de SDK, consulte 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

Para exemplos de SDK, consulte 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)

Nome do model. Este parâmetro aplica-se apenas ao modelo Qwen3-ASR-Flash-Filetrans.

inputobject(Required)

Properties

file_url string(Required)

URL do arquivo de áudio a ser reconhecido. A URL deve ser acessível pela rede pública.

Ao usar um SDK, se o arquivo de áudio estiver armazenado no OSS, URLs temporárias que começam com oss:// não são suportadas.

Ao usar uma API RESTful, se o arquivo de áudio estiver armazenado no OSS, URLs temporárias que começam com oss:// são suportadas. Observação:

Importante

  • As URLs temporárias têm validade de 48 horas. Após o vencimento, elas não podem ser usadas. Não as utilize em ambientes de produção.
  • A API de credenciais de upload de arquivos tem limite de taxa de 100 QPS e não pode ser escalonada. Não a use em cenários de produção, alta concorrência ou testes de estresse.
  • Para ambientes de produção, recomendamos usar serviços de armazenamento estáveis, como o Alibaba Cloud OSS, para garantir disponibilidade de longo prazo dos arquivos e evitar problemas de limitação de taxa.

parametersobject(Optional)

Properties

language string (Optional) Sem valor padrão

Se o idioma do áudio for conhecido, especifique-o usando este parâmetro para melhorar a precisão do reconhecimento.

É possível especificar apenas um idioma.

Caso o idioma do áudio seja incerto ou inclua múltiplos idiomas (como uma mistura de chinês, inglês, japonês e coreano), não especifique este parâmetro.

Valid values

  • zh: Chinês (Mandarim, Sichuanês, Minnan e Wu)
  • yue: Cantonês
  • en: Inglês
  • ja: Japonês
  • de: Alemão
  • ko: Coreano
  • ru: Russo
  • fr: Francês
  • pt: Português
  • ar: Árabe
  • it: Italiano
  • es: Espanhol
  • hi: Hindi
  • id: Indonésio
  • th: Tailandês
  • tr: Turco
  • uk: Ucraniano
  • vi: Vietnamita
  • cs: Tcheco
  • da: Dinamarquês
  • fil: Filipino
  • fi: Finlandês
  • is: Islandês
  • ms: Malaio
  • no: Norueguês
  • pl: Polonês
  • sv: Sueco

enable_itnboolean (Optional) Padrão: false

Define se a Normalização Inversa de Texto (ITN) deve ser ativada. Este recurso aplica-se apenas a áudios em chinês e inglês.

  • true
  • false (padrão)

enable_wordsboolean(Optional) Padrão: false

Define se timestamps no nível de palavra devem ser retornados:

  • false: Retorna timestamps no nível de sentença.

  • true: Retorna timestamps no nível de palavra.

    Timestamps no nível de palavra são suportados apenas para os seguintes idiomas: chinês, inglês, japonês, coreano, alemão, francês, espanhol, italiano, português e russo. A precisão para outros idiomas não pode ser garantida.

Este parâmetro também afeta as regras de segmentação de sentenças:

  • false: A segmentação de sentenças baseia-se na Detecção de Atividade de Voz (VAD).
  • true: A segmentação de sentenças baseia-se em VAD e pontuação.

channel_idarray(Optional) Padrão: [0]

Especifica os índices das faixas de áudio a serem reconhecidas em um arquivo de áudio com múltiplas faixas. O índice começa em 0. Por exemplo, [0] indica que a primeira faixa de áudio será reconhecida, e [0, 1] indica que a primeira e a segunda faixas serão reconhecidas simultaneamente. Se este parâmetro for omitido, a primeira faixa de áudio será processada por padrão.

ImportanteCada faixa de áudio especificada é cobrada separadamente. Por exemplo, solicitar [0, 1] para um único arquivo resultará em duas cobranças distintas.

Response body

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

request_idstring

Identificador único para esta chamada.

outputobject

Informações sobre o resultado da chamada.

Properties

task_idstring

ID da tarefa. Este ID é passado como parâmetro de requisição na API para consultar tarefas de reconhecimento de fala.

task_statusstring

Status da tarefa:

  • PENDING
  • RUNNING
  • SUCCEEDED
  • FAILED
  • UNKNOWN: A tarefa não existe ou seu status é desconhecido.

Obter o resultado da execução da tarefa

URL

Singapore

Endereço de requisição HTTP: GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id}

base_url para chamadas de SDK: https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1

Substitua {WorkspaceId} pelo seu workspace ID real.

Substitua {WorkspaceId} pelo seu workspace ID real.

China (Beijing)

Endereço de requisição HTTP: GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id}

base_url para chamadas de SDK: https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1

Substitua {WorkspaceId} pelo seu workspace ID real.

ImportanteO Alibaba Cloud Model Studio lançou domínios específicos por workspace para as regiões China (Beijing) e Singapore. Os novos domínios dedicados oferecem desempenho superior e maior estabilidade para requisições de inferência. Recomendamos a migração para os novos domínios:

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

Substitua {WorkspaceId} pelo seu Workspace ID real. Os domínios existentes permanecem totalmente funcionais.

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 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

Para exemplos de SDK, consulte 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

Para exemplos de SDK, consulte 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(Required)

ID da tarefa. Passe o task_id da resposta da operação Submit a task para consultar o resultado do reconhecimento de fala.

Response body

{
    "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

Identificador único desta chamada.

outputobject

Informações sobre o resultado da chamada.

Properties

task_idstring

ID da tarefa. Este ID é passado como parâmetro de requisição na API para consulta de tarefas de reconhecimento de fala.

task_statusstring

Status da tarefa:

  • PENDING
  • RUNNING
  • SUCCEEDED
  • FAILED
  • UNKNOWN: A tarefa não existe ou seu status é desconhecido.

resultobject

Resultado do reconhecimento de fala.

Properties

transcription_urlstring

URL de download do arquivo de resultado do reconhecimento. O link é válido por 24 horas. Após a expiração, não será possível consultar a tarefa ou baixar o resultado usando a URL anterior.
O resultado do reconhecimento é salvo como um arquivo JSON. Baixe o arquivo através deste link ou leia o conteúdo diretamente via requisição HTTP.

Para mais informações, consulte Description of asynchronous call results.

submit_timestring

Horário em que a tarefa foi enviada.

schedule_timestring

Horário em que a tarefa foi agendada, correspondendo ao início da execução.

end_timestring

Horário de término da tarefa.

task_metricsobject

Métricas da tarefa, incluindo estatísticas sobre o status das subtarefas.

Properties

TOTALinteger

Número total de subtarefas.

SUCCEEDEDinteger

Quantidade de subtarefas concluídas com sucesso.

FAILEDinteger

Quantidade de subtarefas que falharam.

codestring

Código de erro. Retornado apenas quando a tarefa falha.

messagestring

Mensagem de erro. Retornada apenas quando a tarefa falha.

usageobject

Informações sobre o consumo de tokens nesta requisição.

Properties

seconds integer

Duração do áudio para Qwen3-ASR-Flash em segundos.

Descrição dos resultados de chamada assíncrona

{
        "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 do arquivo de áudio reconhecido.

audio_infoobject

Informações sobre o arquivo de áudio reconhecido.

Properties

format string

Formato do áudio.

sample_rate integer

Taxa de amostragem do áudio.

transcriptsarray

Lista completa dos resultados de reconhecimento. Cada elemento corresponde ao conteúdo reconhecido de uma faixa de áudio.

Properties

channel_idinteger

Índice da faixa de áudio, iniciando em 0.

textstring

Texto reconhecido.

sentencesobject

Lista de resultados de reconhecimento no nível de sentença.

Properties

begin_time integer

Timestamp inicial da sentença em milissegundos.

end_time integer

Timestamp final da sentença em milissegundos.

textstring

Texto reconhecido.

sentence_idinteger

Índice da sentença, iniciando em 0.

languagestring

Idioma do áudio reconhecido. Se o parâmetro de requisição language for especificado, este valor será igual ao parâmetro definido.

Valid values

  • zh: Chinês (Mandarim, Sichuanês, Minnan e Wu)
  • yue: Cantonês
  • en: Inglês
  • ja: Japonês
  • de: Alemão
  • ko: Coreano
  • ru: Russo
  • fr: Francês
  • pt: Português
  • ar: Árabe
  • it: Italiano
  • es: Espanhol
  • hi: Hindi
  • id: Indonésio
  • th: Tailandês
  • tr: Turco
  • uk: Ucraniano
  • vi: Vietnamita
  • cs: Tcheco
  • da: Dinamarquês
  • fil: Filipino
  • fi: Finlandês
  • is: Islandês
  • ms: Malaio
  • no: Norueguês
  • pl: Polonês
  • sv: Sueco

emotionstring

Emoção detectada no áudio reconhecido. As seguintes emoções são suportadas:

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

wordsobject

Lista de resultados de reconhecimento no nível de palavra. Este resultado é exibido quando o parâmetro de requisição enable_words está definido como true.

Properties

begin_time integer

Timestamp inicial em milissegundos.

end_time integer

Timestamp final em milissegundos.

textstring

Texto reconhecido.

punctuationstring

Sinal de pontuação.