全部產品
Search
文件中心

Alibaba Cloud Model Studio:非即時語音辨識(Qwen-Audio-3.0-ASR-Flash/Fun-ASR-Flash)API參考

更新時間:Aug 26, 2026

本文介紹Qwen-Audio-3.0-ASR-Flash/Fun-ASR-Flash非即時語音辨識HTTP API的參數和介面細節。

使用者指南:非即時語音辨識。關於支援的音頻格式、檔案大小限制、時間長度限制等輸入要求,請參見音頻規格

重要該功能不支援SDK調用。

介面地址

新加坡

POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation

調用時請將{WorkspaceId}替換為真實的Workspace ID

華北2(北京)

POST https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation

調用時請將{WorkspaceId}替換為真實的Workspace ID

重要阿里雲百鍊為華北2(北京)、新加坡地區推出了業務空間專屬網域名稱,能夠為推理請求提供卓越的效能和更高的穩定性,建議遷移至新網域名稱:

  • 華北2(北京)地區:從 dashscope.aliyuncs.com 遷移至 {WorkspaceId}.cn-beijing.maas.aliyuncs.com
  • 新加坡地區:從 dashscope-intl.aliyuncs.com 遷移至 {WorkspaceId}.ap-southeast-1.maas.aliyuncs.com

{WorkspaceId}需要替換為真實的Workspace ID。現有網域名稱仍可正常使用。

要求標頭

參數

類型

是否必選

說明

Authorization

string

鑒權令牌,格式為Bearer <your_api_key>,使用時將"<your_api_key>"替換為實際的API Key。

Content-Type

string

請求參數的媒體類型,固定為application/json

X-DashScope-SSE

string

用於控制是否以SSE流式方式返回結果。設定為enable時開啟SSE流式返回模式。僅當音頻時間長度不少於1分鐘時,服務端才會分多次返回中間識別結果和最終結果;設定為disable或不傳該參數則僅返回最終結果。

請求參數

modelstring(必選)

指定模型名。支援Qwen-Audio-3.0-ASR-Flash和Fun-ASR-Flash系列模型,詳情請參見支援的模型與地區

inputobject(必選)

輸入資訊。

屬性

messagesarray(object)(必選)

訊息列表。包含當前待識別的音頻,以及可選的對話上下文(用於提升識別效果)。

重要上下文功能用於提升專有詞彙的識別準確率,使用方法詳見上下文增強

約束:上下文訊息(input_texttext 類型)各最多 5 條,超出時保留最近的 5 條。每輪上下文文本總長度(userassistanttext 欄位長度之和)不超過 400 個字元(按字元數計算,每個字元計為 1),超出部分從末尾截斷。

重要攜帶上下文時,messages 中的訊息順序有要求:上下文訊息必須按對話輪次排列,每輪中 userinput_text 類型)必須在對應的 assistanttext 類型)之前;包含 input_audiouser 訊息必須放在 messages 數組的最後。

屬性

rolestring(必選)

訊息角色。取值範圍:

  • user(必選):使用者訊息。type為input_audio時表示當前待識別的音頻;type為input_text時表示前幾輪的識別結果或領域相關的詞表(可選,上下文)。
  • assistant(可選,上下文):前幾輪大語言模型的回複內容。

contentarray(object)(必選)

訊息內容列表。

屬性

typestring(必選)

內容類型。每個請求至少需要一條input_audio類型的訊息。取值範圍:

  • input_audio(必選):當前待識別的音頻輸入(role為user),需同時傳入input_audio對象。
  • input_text(可選,上下文):前幾輪使用者語音的識別結果或領域相關的詞表(role為user),需同時傳入text欄位。
  • text(可選,上下文):前幾輪大語言模型的回複內容(role為assistant),需同時傳入text欄位。

input_audioobject(條件必選)

typeinput_audio時必填。

屬性

datastring(必選)

待識別音頻資料。關於支援的音頻格式、檔案大小限制、時間長度限制等輸入要求,請參見音頻規格。支援以下兩種方式:

  • 音頻檔案URL:直接傳入可公開訪問的音頻檔案地址。
  • Base64 Data URI:採用Data URI格式傳入Base64編碼的音頻資料,值由data:{MIME_TYPE};base64,首碼與Base64編碼的音頻資料拼接而成。支援的MIME類型包括audio/wavaudio/mp3等。

樣本(URL方式):https://example.com/audio/sample.wav

樣本(Base64方式):data:audio/wav;base64,{BASE64_ENCODED_DATA}

textstring(條件必選)

typeinput_text時,填入前幾輪使用者語音的識別結果或領域相關的詞表;當typetext時,填入前幾輪大語言模型的回複內容。文本按字元數計算,每個字元計為 1。每輪上下文中所有訊息的 text 欄位長度之和不超過 400 個字元,超出部分從末尾截斷。

parametersobject(必選)

模型參數。

說明潤色順滑功能預設關閉,暫未開放。

潤色順滑:模型在識別語音的同時,自動清理無意義語氣詞和口吃重複,處理說話過程中的自我糾正,理順口語表達,並規範標點與文字格式設定。輸出結果更加簡潔、流暢、易讀,同時儘可能保留使用者的最終意圖和關鍵資訊。

屬性

formatstring(必選)

音頻格式。根據實際音頻格式填寫,支援wavmp3opus等。詳情請參見音頻規格

sample_ratestring(可選)

音頻採樣率,單位Hz。例如16000表示16kHz採樣率。詳情請參見音頻規格

vocabulary_idstring(可選)

先行編譯熱詞列表 ID。

需預先調用建立熱詞列表介面產生,識別時傳入該 ID 即可使用列表中的熱詞。

適用於詞彙已知且相對穩定、需要跨請求複用同一詞表的情境。

使用方法請參見先行編譯熱詞

vocabularyobject(可選)

即時熱詞。

以索引值對形式傳入,鍵為熱詞文本(string),值為熱詞權重(integer),無需預先建立熱詞列表。權重取值範圍為 [1, 5] 或 50:取 [1, 5] 時值越大模型越傾向輸出該詞;取 50 時為超級熱詞,召回率大幅提升,但超級熱詞數量最多不超過 50 個。

適用於臨時性、會話層級的熱詞最佳化。

與先行編譯熱詞同時配置時,僅即時熱詞生效。使用方法請參見即時熱詞

重要qwen-audio-3.0-asr-flash支援即時熱詞。

language_hints array[string](可選)

設定待識別語言代碼。如果無法提前確定語種,可不設定,模型會自動識別語種。

對於 Qwen-Audio-3.0-ASR-Flash 系列模型,最多支援設定 4 個值,即便設定超出 4 個,也僅前 4 個生效;對於 Fun-ASR-Flash 系列模型,僅支援設定 1 個值,即便設定多個,也僅第一個生效。

點擊查看支援的語言代碼

  • qwen-audio-3.0-asr-flash、fun-asr-flash-2026-06-15:

    • zh: 中文
    • en: 英文
    • ja: 日語
    • ko:韓語
    • vi:越南語
    • th:泰語
    • id:印尼語
    • ms:馬來語
    • tl:菲律賓語
    • hi:印地語
    • ar:阿拉伯語
    • fr:法語
    • de:德語
    • es:西班牙語
    • pt:葡萄牙語
    • ru:俄語
    • it:意大利語
    • nl:荷蘭語
    • sv:瑞典語
    • da:丹麥語
    • fi:芬蘭語
    • no:挪威語
    • el:希臘語
    • pl:波蘭語
    • cs:捷克語
    • hu:匈牙利語
    • ro:羅馬尼亞語
    • bg:保加利亞語
    • hr:克羅地亞語
    • sk:斯洛伐克語

以下為新加坡地區的配置,調用時請將"{WorkspaceId}"替換為真實的業務空間ID,各地區的配置不同。新加坡地區和北京地區的API Key不同。

非流式

curl --location --request POST 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
     --header "Authorization: Bearer $DASHSCOPE_API_KEY" \
     --header "Content-Type: application/json" \
     --header "X-DashScope-SSE: disable" \
     --data '{
    "model": "qwen-audio-3.0-asr-flash",
    "input": {
        "messages": [
            {
                "role": "user",
                "content": [
                    {
                        "type": "input_audio",
                        "input_audio": {
                            "data": "{YOUR_AUDIO_URL}"
                        }
                    }
                ]
            }
        ]
    },
    "parameters": {
        "format": "wav",
        "sample_rate": "16000"
    }
}'

流式

curl --location --request POST 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
     --header "Authorization: Bearer $DASHSCOPE_API_KEY" \
     --header "Content-Type: application/json" \
     --header "X-DashScope-SSE: enable" \
     --data '{
    "model": "qwen-audio-3.0-asr-flash",
    "input": {
        "messages": [
            {
                "role": "user",
                "content": [
                    {
                        "type": "input_audio",
                        "input_audio": {
                            "data": "{YOUR_AUDIO_URL}"
                        }
                    }
                ]
            }
        ]
    },
    "parameters": {
        "format": "wav",
        "sample_rate": "16000"
    }
}'

攜帶上下文-非流式

curl --location --request POST 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
     --header "Authorization: Bearer $DASHSCOPE_API_KEY" \
     --header "Content-Type: application/json" \
     --header "X-DashScope-SSE: disable" \
     --data '{
    "model": "qwen-audio-3.0-asr-flash",
    "input": {
        "messages": [
            {
                "role": "user",
                "content": [
                    {
                        "type": "input_text",
                        "text": "你好啊"
                    }
                ]
            },
            {
                "role": "assistant",
                "content": [
                    {
                        "type": "text",
                        "text": "你好啊,我是通義千問,有什麼可以協助你的?"
                    }
                ]
            },
            {
                "role": "user",
                "content": [
                    {
                        "type": "input_audio",
                        "input_audio": {
                            "data": "{YOUR_AUDIO_URL}"
                        }
                    }
                ]
            }
        ]
    },
    "parameters": {
        "format": "wav",
        "sample_rate": "16000"
    }
}'

攜帶上下文-流式

curl --location --request POST 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
     --header "Authorization: Bearer $DASHSCOPE_API_KEY" \
     --header "Content-Type: application/json" \
     --header "X-DashScope-SSE: enable" \
     --data '{
    "model": "qwen-audio-3.0-asr-flash",
    "input": {
        "messages": [
            {
                "role": "user",
                "content": [
                    {
                        "type": "input_text",
                        "text": "你好啊"
                    }
                ]
            },
            {
                "role": "assistant",
                "content": [
                    {
                        "type": "text",
                        "text": "你好啊,我是通義千問,有什麼可以協助你的?"
                    }
                ]
            },
            {
                "role": "user",
                "content": [
                    {
                        "type": "input_audio",
                        "input_audio": {
                            "data": "{YOUR_AUDIO_URL}"
                        }
                    }
                ]
            }
        ]
    },
    "parameters": {
        "format": "wav",
        "sample_rate": "16000"
    }
}'

Base64

可輸入Base64編碼資料(Data URL),格式為:data:<mediatype>;base64,<data>

  • <mediatype>:MIME類型

    因音頻格式而異,例如:

    • WAV:audio/wav
    • MP3:audio/mpeg
  • <data>:音頻轉成的Base64編碼的字串

    Base64編碼會增大體積,請控制原檔案大小,確保編碼後仍符合輸入音頻大小限制(10MB)

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

    點擊查看範例程式碼

    import base64, pathlib
    
    # 請替換為自己的音頻檔案路徑,確保其符合音頻要求
    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 {
        /**
         * 請替換為自己的音頻檔案路徑,確保其符合音頻要求
         */
        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;
        }
    
        public static void main(String[] args) throws Exception {
            System.out.println(toDataUrl("{YOUR_AUDIO_FILE}"));
        }
    }
    
import base64, pathlib
import os
import requests

# 請替換為自己的音頻檔案路徑,確保其符合音頻要求
file_path = pathlib.Path("{YOUR_AUDIO_FILE}")
base64_str = base64.b64encode(file_path.read_bytes()).decode()
data_uri = f"data:audio/wav;base64,{base64_str}"

# 請將"{WorkspaceId}"替換為真實的業務空間ID
url = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation"

headers = {
    "Authorization": f"Bearer {os.environ['DASHSCOPE_API_KEY']}",
    "Content-Type": "application/json",
    "X-DashScope-SSE": "disable",
}

payload = {
    "model": "qwen-audio-3.0-asr-flash",
    "input": {
        "messages": [
            {
                "role": "user",
                "content": [
                    {
                        "type": "input_audio",
                        "input_audio": {
                            "data": data_uri,
                        },
                    }
                ],
            }
        ]
    },
    "parameters": {
        "format": "wav",
        "sample_rate": "16000",
    },
}

response = requests.post(url, headers=headers, json=payload)
print(response.status_code)
print(response.json())

即時熱詞

curl --location --request POST 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
     --header "Authorization: Bearer $DASHSCOPE_API_KEY" \
     --header "Content-Type: application/json" \
     --header "X-DashScope-SSE: disable" \
     --data '{
    "model": "qwen-audio-3.0-asr-flash",
    "input": {
        "messages": [
            {
                "role": "user",
                "content": [
                    {
                        "type": "input_audio",
                        "input_audio": {
                            "data": "{YOUR_AUDIO_URL}"
                        }
                    }
                ]
            }
        ]
    },
    "parameters": {
        "format": "wav",
        "sample_rate": "16000",
        "vocabulary": {"張三": 5, "李四": 5}
    }
}'

響應參數

request_idstring

本次請求的唯一標識。

outputobject

輸出結果。

屬性

textstring

當前累積的完整識別文本。

sentenceobject

當前句子的詳細資料。

屬性

sentence_idinteger

句子編號,從1開始。

sentence_endboolean

是否為該句的最終結果。為true時表示該句識別完成。

begin_timeinteger

句子開始時間,單位毫秒。

end_timeinteger

句子結束時間,單位毫秒。僅在sentence_endtrue時返回。

textstring

當前句子的識別文本。

channel_idinteger

聲道編號,從0開始。

wordsarray

詞層級時間戳記列表。

屬性

textstring

詞文本。

begin_timeinteger

詞開始時間,單位毫秒。

end_timeinteger

詞結束時間,單位毫秒。

punctuationstring

詞後的標點符號。無標點時為空白字串。

fixedboolean

詞是否已穩定。false表示後續事件中該詞的時間戳記可能調整。

usageobject

用量資訊。僅在sentence_endtrue時返回。

屬性

durationinteger

已處理的音頻時間長度,單位秒。

非流式

{
    "output": {
        "sentence": {
            "begin_time": 760,
            "channel_id": 0,
            "end_time": 3800,
            "sentence_end": true,
            "sentence_id": 1,
            "text": "Hello World,這裡是阿里巴巴語音實驗室。",
            "words": [
                {"begin_time": 760, "end_time": 1040, "fixed": true, "punctuation": "", "text": "Hello"},
                {"begin_time": 1040, "end_time": 1240, "fixed": true, "punctuation": ",", "text": " World"},
                {"begin_time": 1360, "end_time": 1880, "fixed": true, "punctuation": "", "text": "這裡是"},
                {"begin_time": 1880, "end_time": 2520, "fixed": true, "punctuation": "", "text": "阿里巴巴"},
                {"begin_time": 2520, "end_time": 2840, "fixed": true, "punctuation": "", "text": "語音"},
                {"begin_time": 2840, "end_time": 3800, "fixed": true, "punctuation": "。", "text": "實驗室"}
            ]
        },
        "text": "Hello World,這裡是阿里巴巴語音實驗室。"
    },
    "usage": {
        "duration": 4
    },
    "request_id": "40e0734d-096f-9ae3-86c1-a8c013287561"
}

流式

僅當音頻時間長度不少於1分鐘且設定X-DashScope-SSE: enable時,服務端才會以Server-Sent Events協議返回識別結果。SSE事件格式如下:

id:{序號}
event:result
:HTTP_STATUS/200
data:{JSON資料}

返回樣本:

id:1
event:result
:HTTP_STATUS/200
data:{"output":{"sentence":{"sentence_id":1,"sentence_end":true,"end_time":3800,"words":[{"end_time":1040,"punctuation":"","begin_time":760,"fixed":true,"text":"Hello"},{"end_time":1240,"punctuation":",","begin_time":1040,"fixed":true,"text":" World"},{"end_time":1880,"punctuation":"","begin_time":1360,"fixed":true,"text":"這裡是"},{"end_time":2520,"punctuation":"","begin_time":1880,"fixed":true,"text":"阿里巴巴"},{"end_time":2840,"punctuation":"","begin_time":2520,"fixed":true,"text":"語音"},{"end_time":3800,"punctuation":"。","begin_time":2840,"fixed":true,"text":"實驗室"}],"begin_time":760,"text":"Hello World,這裡是阿里巴巴語音實驗室。","channel_id":0},"text":"Hello World,這裡是阿里巴巴語音實驗室。"},"usage":{"duration":4},"request_id":"fc1582e4-935c-9fc2-a482-a98bf43daa69"}

SSE 流式結果處理邏輯

在流式模式下,用戶端需關注以下處理要點:

  1. 每收到一個SSE事件,解析data欄位中的JSON。
  2. 通過output.sentence.sentence_end判斷當前句子是否結束:當該值為true時,該句識別完成,詞級時間戳記已穩定,可作為最終結果使用;當該值為false時,識別仍在進行中,文本和時間戳記可能在後續事件中更新。
  3. usage資訊僅在句子結束事件中返回,可用於計量音頻處理時間長度。