Qwen-Audio-ASR非即時語音識別Android SDK可將語音轉換為文字。
關於支援的音訊格式、檔案大小限制、時長限制等輸入要求,請參見音訊規格。
快速開始
- 取得API Key:取得API Key,為安全起見,建議將API Key設定至環境變數。
- 下載 SDK 並執行範例程式碼:
- 下載最新SDK整合包。
- 解壓縮 ZIP 套件。在
app/libs目錄中獲取 AAR 格式 SDK,並新增至專案相依性。 需要 Android CPP 接入時,使用 ZIP 套件內的android_libs與android_include獲取動態連結庫和標頭檔。 - 使用 Android Studio 開啟專案。範例程式碼位於
DashFunAsrFlashFileTranscriberActivity.java,替換 API Key 後體驗功能。
呼叫步驟
同步模式
-
初始化 SDK
-
依業務需求設定相關參數
-
呼叫
startFileTranscriber傳送非即時語音辨識請求,並等待結果返回。 -
在
onFileTransEventCallback介面中監聽EVENT_FILE_TRANS_RESULT事件,獲取最終識別結果。 -
呼叫
release釋放 SDK 資源
請求參數
連線與控制參數
透過在initialize介面的parameters參數中傳入一個JSON字串來設定。
參數範例:以下為 JSON 字串範例,參數未完整列出。請按實際需求在編碼時補充:
{
"url": "wss://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation",
"apikey": "st-****",
"device_id": "my_device_id",
"service_mode": "1"
}
參數說明
| 參數 | 類型 | 是否必須 | 說明 |
|---|---|---|---|
|
| 是 | 服務位址:
呼叫時,請將 |
|
| 是 | API Key。 |
|
| 是 | 執行模式。非即時語音辨識固定為 |
|
| 是 | 用於識別終端使用者的唯一字串,可設為應用程式內使用者 ID 或用戶端產生的裝置唯一識別碼。此 ID 主要用於日誌追蹤和問題排查。 |
|
| 否 | 日誌檔案的儲存路徑。此參數僅在呼叫 |
|
| 否 | 設定記錄檔的最大位元組數。 此參數僅在呼叫 |
|
| 否 | 控制透過記錄回呼(
說明 |
語音辨識效果參數
透過startFileTranscriber介面設定所有語音辨識效果參數。
參數範例:以下為 JSON 字串範例,參數未完整列出。請按實際需求在編碼時補充:
{
"apikey": "st-****",
"messages": [
{
"content": [
{
"input_audio": {
"data": "{YOUR_AUDIO_URL}"
},
"type": "input_audio"
}
],
"role": "user"
}
],
"nls_config": {
"format": "mp3",
"model": "qwen-audio-3.0-asr-flash"
}
}
參數說明
| 參數 | 類型 | 是否必須 | 說明 |
|---|---|---|---|
|
| 否 | 如果連線與控制參數的 |
|
| 是 | 語音辨識核心設定物件,包含模型選擇、辨識效果控制等關鍵參數。 |
|
| 是 | 模型名稱。 |
|
| 是 | 音訊格式。根據實際音訊格式填寫,支援 |
|
| 否 | 音訊取樣率,單位Hz。例如 |
|
| 否 | 預編譯熱詞清單 ID。 需預先呼叫建立熱詞清單介面產生,識別時傳入該 ID 即可使用清單中的熱詞。 適用於詞彙已知且相對穩定、需要跨請求複用同一詞表的場景。 使用方法請參見預編譯熱詞。 |
|
| 否 | 即時熱詞。 以鍵值對形式傳入,鍵為熱詞文字( 適用於臨時性、工作階段層級的熱詞最佳化。 與預編譯熱詞同時設定時,系統會合併兩類熱詞;合併後超過 2000 個時,隨機選擇 2000 個使用。使用方法請參見即時熱詞。 |
|
| 否 | 設定待辨識語言代碼。如果無法提前確定語種,可不設定,模型會自動辨識語種。最多支援設定 4 個值,超出時僅前 4 個生效。 指定語種代碼可提升辨識準確率。 支援的語言代碼
|
|
| 是 | 訊息列表。包含當前待識別的音訊,以及可選的對話上下文(用於提升識別效果)。 詳見如下說明。 |
重要上下文功能用於提升專有詞彙的識別準確率,使用方法詳見上下文增強。
上下文訊息(input_text 和 text 類型)各最多 5 條,超出時保留最近的 5 條。每輪上下文文字總長度(user 和 assistant 的 text 欄位長度之和)不超過 400 個字元(按字元數計算,每個字元計為 1),超出部分從末尾截斷。
重要攜帶上下文時,messages 中的訊息順序有要求:上下文訊息必須按對話輪次排列,每輪中 user(input_text 類型)必須在對應的 assistant(text 類型)之前;包含 input_audio 的 user 訊息必須放在 messages 陣列的最後。
| 參數 | 類型 | 是否必須 | 說明 |
|---|---|---|---|
|
| 是 | 訊息角色。取值範圍:
|
|
| 是 | 訊息內容清單。詳細如下說明。 |
| 參數 | 類型 | 是否必須 | 說明 |
|---|---|---|---|
|
| 是 | 內容類型。每個請求至少需要一條
|
|
| 否 | 當 |
|
| 是 | 待識別音訊資料。關於支援的音訊格式、檔案大小限制、時長限制等輸入要求,請參見音訊規格。支援以下兩種方式:
範例(URL方式): 範例(Base64方式): |
|
| 否 | 當 |
關鍵介面
NativeNui
initialize
初始化語音辨識SDK執行個體。SDK為單例模式,在呼叫release前禁止重複初始化。
此介面會引起阻塞,應在非 UI 執行緒呼叫。
方法簽章public synchronized int initialize(final INativeFileTransCallback callback,
String parameters,
final Constants.LogLevel level,
final boolean save_log)
參數說明
| 參數 | 類型 | 說明 |
|---|---|---|
|
| 事件和資料回調介面的實作。 |
|
| JSON字串,包含驗證、連線和偵錯參數。參見連線與控制參數。 |
|
| 控制 SDK 自身日誌的列印層級。 |
|
| 是否儲存本機日誌。若為 |
setParams
此介面用於獨立設定或更新 nls_config 參數。如果所有參數都在startFileTranscriber中一次性提供,則無需呼叫此方法。
public synchronized int setParams(String params);
參數說明
| 參數 | 類型 | 說明 |
|---|---|---|
|
| 語音識別效果參數中的 範例: |
startFileTranscriber
開始辨識。
方法簽章public synchronized int startFileTranscriber(String params, byte[ ] task_id)
參數說明
| 參數 | 類型 | 說明 |
|---|---|---|
|
| 語音辨識效果參數。 範例: |
|
| 可不關注,可填null |
queryFileTranscriber
此非即時語音辨識功能僅支援同步請求,無需關注此介面。
cancelFileTranscriber
立即取消目前任務。
方法簽章public synchronized int cancelFileTranscriber(String task_id)
參數說明
| 參數 | 類型 | 說明 |
|---|---|---|
|
| 待取消的任務ID。透過EVENT_FILE_TRANS_UPLOADED取得。 |
release
釋放SDK所有內部資源。此方法呼叫後,SDK執行個體將變為不可用狀態,如需再次使用,必須重新呼叫initialize進行初始化。
public synchronized int release();
GetVersion
取得目前 SDK 版本資訊。
方法簽章public synchronized String GetVersion();
傳回值說明
目前 SDK 版本資訊。
INativeFileTransCallback:監聽回呼
onFileTransEventCallback:監聽事件和語音辨識結果
方法簽章void onFileTransEventCallback(NuiEvent event, final int resultCode, final int arg2, AsrResult asrResult, String taskId);
參數說明
| 參數 | 類型 | 說明 |
|---|---|---|
|
| 回調事件。 |
|
| 僅在出現 |
|
| 語音辨識結果。 |
|
| 任務 ID。 |
|
| 保留參數。 |
onFileTransLogTrackCallback:監聽追蹤日誌
此回調用於接收 SDK 內部的詳細日誌,方便進行問題定位和偵錯。
default void onFileTransLogTrackCallback(Constants.LogLevel level, String log)
事件類型
| 事件 | 說明 |
|---|---|
| 連線服務成功。 |
| 上傳待辨識音訊檔案成功,此時可取得目前任務的task_id。 |
| 辨識最終結果。 |
| 語音辨識過程中出現錯誤。 |