Qwen-Audio-3.x-ASR-Flash/Fun-ASR-Flash非即時語音識別HarmonyOS SDK可將語音轉換為文字。
使用者指南:非即時語音辨識。關於支援的音訊格式、檔案大小限制、時長限制等輸入要求,請參見音訊規格。
透過在initializeFileTrans介面的
參數說明
透過setParams介面設定
參數說明
messages參數說明:
content參數說明:
初始化語音識別SDK執行個體。
此介面會引起阻塞,應在非 UI 執行緒呼叫。
方法簽章
參數說明
此介面用於獨立設定或更新
參數說明
開始辨識。
方法簽章
參數說明
此介面用於主動查詢一個非同步任務的當前狀態和結果。呼叫成功後,結果將透過
參數說明
立即取消目前任務。
方法簽章
參數說明
釋放SDK所有內部資源。此方法呼叫後,SDK執行個體將變為不可用狀態,如需再次使用,必須重新呼叫initializeFileTrans進行初始化。
方法簽章
取得目前 SDK 版本資訊。
方法簽章
傳回值說明
目前 SDK 版本資訊。
方法簽章
參數說明
此回調用於接收 SDK 內部的詳細日誌,方便進行問題定位和偵錯。
使用此回呼需下載 20260908 或更新的 HarmonyOS SDK 套件。
HarmonyOS SDK 中事件類型透過
快速開始
- 取得API Key:取得API Key,為安全起見,建議將API Key設定至環境變數。
- 下載 SDK 並執行範例程式碼:
- 下載最新SDK整合包。
- 解壓縮 TAR 套件。在
neonui目錄中獲取 HAR 格式 SDK,並新增至專案相依性。需要 C++ 接入時,使用 TAR 套件內的native/libs與native/include獲取動態連結庫和標頭檔。 - 使用 DevEco Studio 開啟專案。範例程式碼位於
DashFunAsrFlashFileTranscriberPage.ets,替換 API Key 後體驗功能。
呼叫步驟
同步模式
- 初始化 SDK
- 依業務需求設定相關參數
-
呼叫
startFileTranscriber傳送非即時語音識別請求,並等待結果返回。 -
在
onFileTransEventCallback介面中監聽EVENT_FILE_TRANS_RESULT事件,獲取最終識別結果。 -
呼叫
release釋放 SDK 資源
請求參數
連線與控制參數
透過在initializeFileTrans介面的parameters參數中傳入一個JSON字串來設定。
參數範例:以下為 JSON 字串範例,參數未完整列出。請按實際需求在編碼時補充:
| 參數 | 類型 | 是否必須 | 說明 |
|---|---|---|---|
url | string | 是 | 服務位址,固定為 wss://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation。呼叫時請將{WorkspaceId}替換為真實的Workspace ID。 |
apikey | string | 是 | API Key。建議使用時效性短、安全性更高的 臨時 API Key,以降低長期有效 Key 外洩的風險。 |
service_mode | string | 是 | 執行模式。非即時語音辨識固定為 "1"。 |
device_id | string | 是 | 用於識別終端使用者的唯一字串,可設為應用程式內使用者 ID 或用戶端產生的裝置唯一識別碼。此 ID 主要用於日誌追蹤和問題排查。 |
debug_path | string | 否 | 記錄檔的儲存路徑。 此參數僅在呼叫initializeFileTrans介面時將save_log設為true時生效。此時必須設定記錄檔路徑,否則將回報錯誤。 本機最多保留兩個記錄檔。 |
max_log_file_size | number | 否 | 設定記錄檔的最大位元組數。 此參數僅在呼叫initializeFileTrans介面時將save_log設為true時生效。 預設值:104857600(100 * 1024 * 1024 位元組, 即 100MiB)。 |
語音辨識效果參數
透過setParams介面設定nls_config參數,或者透過startFileTranscriber介面設定所有語音識別效果參數。
參數範例:以下為 JSON 字串範例,參數未完整列出。請按實際需求在編碼時補充:
| 參數 | 類型 | 是否必須 | 說明 |
|---|---|---|---|
apikey | string | 否 | 如果連線與控制參數的apikey使用的是臨時API Key,可在此處進行更新,以免逾時失效。 |
nls_config | object | 是 | 語音辨識核心設定物件,包含模型選擇、辨識效果控制等關鍵參數。 |
nls_config.model | string | 是 | 指定範例呼叫的模型。模型資訊請參見支援的模型與地域。 |
nls_config.format | string | 是 | 音訊格式。根據實際音訊格式填寫,支援wav、mp3、opus等。詳情請參見音訊規格。 |
nls_config.sample_rate | string | 否 | 音訊取樣率,單位Hz。例如16000表示16kHz取樣率。詳情請參見音訊規格。 |
nls_config.vocabulary_id | string | 否 | 預編譯熱詞清單 ID。 需預先呼叫建立熱詞清單介面產生,識別時傳入該 ID 即可使用清單中的熱詞。 適用於詞彙已知且相對穩定、需要跨請求複用同一詞表的場景。 使用方法請參見預編譯熱詞。 |
nls_config.instant_vocabulary | object | 否 | 即時熱詞。 以鍵值對形式傳入,鍵為熱詞文字( string),值為熱詞權重(integer),無需預先建立熱詞清單。權重取值範圍為 [1, 5] 或 50:取 [1, 5] 時值越大模型越傾向輸出該詞;取 50 時為超級熱詞,召回率大幅提升,但超級熱詞數量最多不超過 50 個。適用於臨時性、工作階段層級的熱詞最佳化。 與預編譯熱詞同時設定時,系統會合併兩類熱詞;合併後超過 2000 個時,隨機選擇 2000 個使用。使用方法請參見即時熱詞。 |
nls_config.language_hints | array[string] | 否 | 設定待辨識語言代碼。如果無法提前確定語種,可不設定,模型會自動辨識語種。 對於 Qwen-Audio-3.x-ASR-Flash 系列模型,最多支援設定 4 個值,即便設定超出 4 個,也僅前 4 個生效;對於 Fun-ASR-Flash 系列模型,僅支援設定 1 個值,即便設定多個,也僅第一個生效。
|
| messages | array[object] | 是 | 訊息列表。包含當前待識別的音訊,以及可選的對話上下文(用於提升識別效果)。 詳見如下說明。 |
| 參數 | 類型 | 是否必須 | 說明 |
|---|---|---|---|
| role | string | 是 | 訊息角色。取值範圍:
|
| content | array[object] | 是 | 訊息內容清單。詳細如下說明。 |
| 參數 | 類型 | 是否必須 | 說明 |
|---|---|---|---|
| type | string | 是 | 內容類型。每個請求至少需要一條input_audio類型的訊息。取值範圍:
|
| input_audio | object | 否 | 當type為input_audio時必填。 |
| input_audio.data | string | 是 | 待識別音訊資料。關於支援的音訊格式、檔案大小限制、時長限制等輸入要求,請參見音訊規格。支援以下兩種方式:
|
| text | string | 否 | 當type為input_text時,填入前幾輪使用者語音的識別結果或領域相關的詞表;當type為text時,填入前幾輪大型語言模型的回覆內容。文字按字元數計算,每個字元計為 1。每輪上下文中所有訊息的 text 欄位長度之和不超過 400 個字元,超出部分從末尾截斷。 |
關鍵介面
NativeNui
initializeFileTrans
初始化語音識別SDK執行個體。
與即時語音識別不同,非即時(錄音檔案)轉錄必須使用
initializeFileTrans 方法並傳入 INativeFileTransCallback 回呼,而不是 initialize。| 參數 | 類型 | 說明 |
|---|---|---|
callback | INativeFileTransCallback | 檔案轉錄事件和資料回呼介面的實作。 |
parameters | string | JSON字串,包含驗證、連線和偵錯參數。參見連線與控制參數。 |
level | number | 控制SDK自身記錄的列印層級,取值為列舉。 |
save_log | boolean | 是否儲存本機日誌。若為 true,須在 連線與控制參數 中透過 debug_path 指定路徑,並可透過 max_log_file_size 設定檔案大小。 |
setParams
此介面用於獨立設定或更新 nls_config 參數。如果所有參數都在startFileTranscriber中一次性提供,則無需呼叫此方法。
方法簽章
| 參數 | 類型 | 說明 |
|---|---|---|
params | string | 語音辨識效果參數中的nls_config參數,nls_config之外的參數不支援透過此方法進行設定。 |
startFileTranscriber
開始辨識。
方法簽章
| 參數 | 類型 | 說明 |
|---|---|---|
params | string | 語音識別效果參數。 範例: |
task_id | ArrayBuffer | 任務ID緩衝區。SDK會將內部產生的隨機任務ID字串寫入該緩衝區,要求緩衝區位元組長度必須 >= 33位元組(範例中使用 new ArrayBuffer(64))。呼叫成功後可透過轉碼獲取該任務的task_id。 |
queryFileTranscriber
此介面用於主動查詢一個非同步任務的當前狀態和結果。呼叫成功後,結果將透過onFileTransEventCallback回呼中的 EVENT_FILE_TRANS_QUERY_RESULT 事件返回。
方法簽章
| 參數 | 類型 | 說明 |
|---|---|---|
task_id | string | 待查詢的任務ID(由 startFileTranscriber 寫入緩衝區獲得)。 |
cancelFileTranscriber
立即取消目前任務。
方法簽章
| 參數 | 類型 | 說明 |
|---|---|---|
task_id | string | 待取消的任務ID。 |
release
釋放SDK所有內部資源。此方法呼叫後,SDK執行個體將變為不可用狀態,如需再次使用,必須重新呼叫initializeFileTrans進行初始化。
方法簽章
GetVersion
取得目前 SDK 版本資訊。
方法簽章
INativeFileTransCallback:監聽回呼
onFileTransEventCallback:監聽事件和語音辨識結果
方法簽章
| 參數 | 類型 | 說明 |
|---|---|---|
event | Constants.NuiEvent | 回調事件。 |
resultCode | number | 僅在出現 EVENT_ASR_ERROR 事件時有效。 |
finish | number | 任務是否結束標記。 |
asrResult | AsrResult | 語音辨識結果。 |
taskId | string | 任務 ID。 |
onFileTransLogTrackCallback:監聽追蹤日誌
此回調用於接收 SDK 內部的詳細日誌,方便進行問題定位和偵錯。
使用此回呼需下載 20260908 或更新的 HarmonyOS SDK 套件。
事件類型
HarmonyOS SDK 中事件類型透過 Constants.NuiEvent 列舉定義,以下列出錄音檔案轉錄相關的事件:
| 事件 | 說明 |
|---|---|
| EVENT_FILE_TRANS_CONNECTED | 連線服務成功。 |
| EVENT_FILE_TRANS_UPLOADED | 上傳待識別音訊檔案成功。 |
| EVENT_FILE_TRANS_QUERY_RESULT | 查詢任務結果。 |
| EVENT_FILE_TRANS_RESULT | 辨識最終結果。 |
| EVENT_ASR_ERROR | 語音辨識過程中出現錯誤。 |