全部產品
Search
文件中心

Alibaba Cloud Model Studio:非即時語音辨識(Qwen-Audio-ASR)HTTP API

更新時間:Nov 03, 2026

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

關於支援的音頻格式、檔案大小限制、時間長度限制等輸入要求,請參見音頻規格。

介面地址

新加坡

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

要求標頭

參數類型是否必選說明

Authorization

string

是

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

Content-Type

string

是

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

X-DashScope-SSE

string

否

用於控制是否要求串流傳回。設定為 enable 時要求 SSE 串流傳回;設定為 disable 或不傳該參數則僅傳回最終結果。

說明僅適用於 qwen-audio-3.0-asr-flash:音訊長度不少於 1 分鐘時才以 SSE 串流方式傳回結果。

請求參數

modelstring(必選)

模型名稱。

inputobject(必選)

輸入資訊。

屬性

messagesarray(object)(必選)

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

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

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

重要攜帶上下文時,messages 中的訊息順序有要求:上下文訊息必須按對話輪次排列,每輪中 user(input_text 類型)必須在對應的 assistant(text 類型)之前;包含 input_audio 的 user 訊息必須放在 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(條件必選)

當type為input_audio時必填。

屬性

datastring(必選)

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

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

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

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

textstring(條件必選)

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

parametersobject(必選)

模型參數。

說明qwen-audio-3.0-asr-flash 的潤色順滑功能預設關閉,暫未開放。qwen-audio-3.1-asr-flash 支援原生文字潤色。

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

屬性

speaker_diarization_enabled boolean (可選)

說明僅適用於 qwen-audio-3.1-asr-flash。

是否啟用說話人分離,預設值為 false。設為 true 時,透過回應中的 speaker_id 區分說話人,並傳回 output.sentences。啟用後,keep_dialect 和 language_hints 不生效。

keep_dialect boolean (可選)

說明僅適用於 qwen-audio-3.1-asr-flash。

是否保留方言表達,預設值為 false。false:將方言轉寫為普通話文字;true:保留方言表達。

formatstring(必選)

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

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](可選)

設定待辨識語言代碼。如果無法提前確定語種,可不設定,模型會自動辨識語種。最多支援設定 4 個值,超出時僅前 4 個生效。

指定語種代碼可提升辨識準確率。

支援的語言代碼

  • 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: 斯洛伐克語

qwen-audio-3.1-asr-flash 還支援以下語言代碼:

  • tr: 土耳其語
  • fa: 波斯語
  • mr: 馬拉地語
  • ml: 馬拉雅拉姆語
  • ne: 尼泊爾語
  • ky: 吉爾吉斯語
  • az: 阿塞拜疆語
  • ka: 格魯吉亞語
  • hy: 亞美尼亞語
  • sl: 斯洛文尼亞語
  • sq: 阿爾巴尼亞語
  • et: 愛沙尼亞語
  • lv: 拉脫維亞語
  • lt: 立陶宛語
  • ca: 加泰羅尼亞語
  • eu: 巴斯克語
  • gl: 加利西亞語
  • or: 奧里亞語
  • dv: 迪維希語
  • as: 阿薩姆語
  • ku: 庫爾德語
  • tig: 提格雷語
  • fy: 西弗里西亞語
  • ba: 巴什基爾語
  • be: 白俄羅斯語
  • tt: 韃靼語
  • ia: 國際語
  • mhr: 東馬里語
  • tok: 道本語

以下為新加坡地區的配置,調用時請將"{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 編碼會增大資料體積,音頻檔案的大小和時間長度限制請參見音頻規格。

  • 樣本: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

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

sentences array[object]

說明僅適用於 qwen-audio-3.1-asr-flash。

啟用說話人分離時傳回。包含目前及歷史句子的辨識結果,每個元素的結構與 sentence 相同。

sentenceobject

當前句子的詳細資料。

屬性

speaker_id integer | null

說明僅適用於 qwen-audio-3.1-asr-flash。

說話人編號,用於區分不同說話人。啟用說話人分離時傳回編號,未啟用時為 null。

sentence_idinteger

句子編號,從1開始。

sentence_endboolean

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

begin_timeinteger

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

end_timeinteger

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

textstring

當前句子的識別文本。

channel_idinteger

聲道編號,從0開始。

wordsarray

詞層級時間戳記列表。

屬性

speaker_id integer | null

說明僅適用於 qwen-audio-3.1-asr-flash。

詞對應的說話人編號。啟用說話人分離時傳回編號,未啟用時為 null。

textstring

詞文本。

begin_timeinteger

詞開始時間,單位毫秒。

end_timeinteger

詞結束時間,單位毫秒。

punctuationstring

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

fixedboolean

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

usageobject

用量資訊。僅在sentence_end為true時返回。

屬性

durationinteger

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

input_tokens integer

說明僅適用於 qwen-audio-3.1-asr-flash。

本次呼叫消耗的輸入 Token 數。

output_tokens integer

說明僅適用於 qwen-audio-3.1-asr-flash。

本次呼叫消耗的輸出 Token 數。

total_tokens integer

說明僅適用於 qwen-audio-3.1-asr-flash。

本次呼叫消耗的總 Token 數,等於 input_tokens 與 output_tokens 之和。

非流式

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

流式

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. 對於 qwen-audio-3.0-asr-flash,透過 output.sentence.sentence_end 判斷目前句子是否結束:當該值為 true 時,該句辨識完成,詞級時間戳記已穩定,可作為最終結果使用;當該值為 false 時,辨識仍在進行中,文字和時間戳記可能在後續事件中更新。
  3. usage 資訊僅在句子結束事件中傳回,包含音訊處理時長。對於 qwen-audio-3.1-asr-flash,還包含本次呼叫的輸入、輸出和總 Token 數,該模型按 Token 計費。

對於 qwen-audio-3.1-asr-flash,未啟用說話人分離時,詞級時間戳記在 output.sentence.words[i].fixed 為 true 後才固定;在此之前,時間戳記仍可能調整。啟用說話人分離時,應讀取 output.sentences 中目前及歷史句子的結果。