Qwen-Audio-3.0-ASR-Flash-Filetrans/Fun-ASR non-real-time speech recognition HarmonyOS SDK
This guide explains how to use the Qwen-Audio-3.0-ASR-Flash-Filetrans/Fun-ASR non-real-time speech recognition HarmonyOS SDK to convert speech to text.
User guide: Non-real-time speech recognition. For input requirements such as supported audio formats and file size and duration limits, see Audio specifications.
Quick start
- Obtain an API key: Obtain an API key. For security, we recommend configuring the API key as an environment variable.
- Download the SDK and run the sample code:
- Download the latest SDK package.
- Extract the TAR package. Obtain the HAR-format SDK from the
neonuidirectory and add it to your project dependencies. For C++ integration, obtain the dynamic libraries and header files fromnative/libsandnative/includein the TAR package. - Open the project in DevEco Studio. The sample code is located in
DashFunAsrFileTranscriberPage.ets. Replace the API key to try the feature.
Invocation steps
Synchronous mode
- Initialize the SDK.
- Configure parameters based on your business requirements.
- Call
startFileTranscriberto start a recognition task withasync_requestset tofalse. - In the
onFileTransEventCallbackinterface, listen for theEVENT_FILE_TRANS_RESULTevent to obtain the final recognition result. - Call
releaseto release SDK resources.
Asynchronous mode
- Initialize the SDK.
- Configure parameters based on your business requirements.
- Call
startFileTranscriberto start a recognition task withasync_requestset totrue. - Call
queryFileTranscriberto query the recognition progress or result. - In the
onFileTransEventCallbackinterface, listen for theEVENT_FILE_TRANS_QUERY_RESULTevent to obtain the current query result. - In the
onFileTransEventCallbackinterface, listen for theEVENT_FILE_TRANS_RESULTevent to obtain the final recognition result. - Call
releaseto release SDK resources.
Request parameters
Connection and control parameters
Pass a JSON string to the parameters parameter of initializeFileTrans to configure the following parameters.
Example: The following JSON string is an example and does not include all parameters. Add parameters as needed:
{
"url": "wss://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/audio/asr/transcription",
"apikey": "st-****",
"device_id": "my_device_id",
"service_mode": "1"
}
- Parameter descriptions
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Yes | The endpoint. This is fixed at |
apikey | string | Yes | The API key. We recommend using a more secure temporary API key with a short validity period to reduce the risk of leaking a long-term key. |
service_mode | string | Yes | The operating mode. For non-real-time speech recognition, this is fixed at |
device_id | string | Yes | A unique string that identifies the end user. You can set it to an in-app user ID or a unique device identifier generated by the client. This ID is mainly used for log tracking and troubleshooting. |
debug_path | string | No | The storage path for log files. This parameter takes effect only if you set |
max_log_file_size | number | No | Sets the maximum size of a log file in bytes. This parameter takes effect only if you set |
Speech recognition effect parameters
Configure the nls_config parameter by using setParams, or configure all speech recognition effect parameters by using startFileTranscriber.
Example: The following JSON string is an example and does not include all parameters. Add parameters as needed:
{
"file_urls": [
"{YOUR_AUDIO_URL}"
],
"async_request": false,
"nls_config": {
"model":"qwen-audio-3.0-asr-flash-filetrans",
"diarization_enabled": false,
"parameters": {
"speech_noise_threshold": 0.0
}
}
}
- Parameter descriptions
| Parameter | Type | Required | Description |
|---|---|---|---|
file_urls | array[string] | Yes | A list of URLs for the audio or video files to transcribe. HTTP and HTTPS are supported. A single request supports only 1 URL. For input requirements such as supported audio formats and file size and duration limits, see Audio specifications. If an audio file is stored in Alibaba Cloud OSS, the RESTful API supports a temporary URL with the Important
- If a temporary public OSS URL cannot be accessed, set the |
async_request | boolean | No | Specifies whether to use an asynchronous request. Default value: |
apikey | string | No | If |
nls_config | object | Yes | The core speech recognition configuration object, which contains key parameters for model selection and recognition effect control. |
nls_config.model | string | Yes | The model name. Qwen-Audio-3.0-ASR-Flash-Filetrans and Fun-ASR series models are supported. For more information, see Supported models and regions. |
nls_config.special_word_filter | object | No | Specifies sensitive words to process during speech recognition and supports different processing methods for different words. For more information, see Sensitive word filtering. |
nls_config.channel_id | array[integer] | No | Specifies the indexes of audio tracks to recognize in a multitrack audio file. Indexes start from 0. For example, ImportantEach specified track is billed separately. For example, Default value: |
nls_config.diarization_enabled | boolean | No | Specifies whether to enable speaker diarization. This feature is disabled by default. It applies only to mono audio. Multichannel audio does not support speaker diarization. When enabled, the recognition result contains NoteIf speaker diarization is enabled, we recommend limiting the audio duration to 2 hours to avoid recognition failure or timeout. Default value: false. For an example of |
nls_config.speaker_count | integer | No | ImportantThis parameter takes effect only when speaker diarization is enabled by setting It provides a reference value for the number of speakers. Valid values are integers from 2 through 100. By default, the number of speakers is automatically determined. If this parameter is set, it only guides the algorithm to output the specified number and does not guarantee that number. No default value. |
nls_config.vocabulary_id | string | No | The precompiled hotword list ID. Create a hotword list first and pass its ID during recognition to use the hotwords in the list. This is suitable when the vocabulary is known and relatively stable and the same vocabulary needs to be reused across requests. For more information, see Precompiled hotwords. |
nls_config.language_hints | array[string] | No | Specifies language codes for the audio to recognize. If the language cannot be determined in advance, omit this parameter and the model automatically detects the language. Qwen-Audio-3.0-ASR-Flash-Filetrans models support up to 4 values. If more than 4 values are specified, only the first 4 take effect. Fun-ASR models support only 1 value. If multiple values are specified, only the first one takes effect. Supported language codes: - qwen-audio-3.0-asr-flash-filetrans, fun-asr, fun-asr-2025-11-07, fun-asr-mtl, and fun-asr-mtl-2025-08-25: - zh: Chinese - en: English - ja: Japanese - ko: Korean - vi: Vietnamese - th: Thai - id: Indonesian - ms: Malay - tl: Filipino - hi: Hindi - ar: Arabic - fr: French - de: German - es: Spanish - pt: Portuguese - ru: Russian - it: Italian - nl: Dutch - sv: Swedish - da: Danish - fi: Finnish - no: Norwegian - el: Greek - pl: Polish - cs: Czech - hu: Hungarian - ro: Romanian - bg: Bulgarian - hr: Croatian - sk: Slovak - fun-asr-2025-08-25: - zh: Chinese - en: English. |
nls_config.parameters | object | No | Configures additional parameters as a JSON object. |
Key interfaces
NativeNui
initializeFileTrans
Initializes a speech transcription SDK instance. Do not initialize the instance again before you call release.
NoteUnlike real-time speech recognition, non-real-time audio file transcription must use initializeFileTrans and pass an INativeFileTransCallback callback instead of using initialize.
This interface blocks the calling thread. Call it from a non-UI thread.
- Method signature
public initializeFileTrans(callback: INativeFileTransCallback,
parameters: string,
level: number,
save_log: boolean = false): number
- Parameter descriptions
| Parameter | Type | Description |
|---|---|---|
callback | INativeFileTransCallback | An implementation of the file transcription event and data callback interface. |
parameters | string | A JSON string that contains authentication, connection, and debugging parameters. See Connection and control parameters. |
level | number | Controls the SDK log level. Valid values are defined by the Constants.LogLevel enumeration. |
save_log | boolean | Specifies whether to save local logs. If this parameter is |
- Return value
An error code. See Error code reference.
setParams
Sets or updates only the nls_config parameter. If all parameters are provided in startFileTranscriber, you do not need to call this method.
- Method signature
public setParams(params: string): number
- Parameter descriptions
| Parameter | Type | Description |
|---|---|---|
params | string | The |
- Return value
An error code. See Error code reference.
startFileTranscriber
Starts recognition.
- Method signature
public startFileTranscriber(params: string, task_id: ArrayBuffer): number
- Parameter descriptions
| Parameter | Type | Description |
|---|---|---|
params | string | The speech recognition effect parameters. Example: |
task_id | ArrayBuffer | The task ID buffer. The SDK writes an internally generated random task ID string to this buffer. The buffer must be at least 33 bytes long. The example uses |
- Return value
An error code. See Error code reference.
queryFileTranscriber
Queries the current status and result of an asynchronous task. After a successful call, the result is returned by the EVENT_FILE_TRANS_QUERY_RESULT event in the onFileTransEventCallback callback.
- Method signature
public queryFileTranscriber(task_id: string): number
- Parameter descriptions
| Parameter | Type | Description |
|---|---|---|
task_id | string | The ID of the task to query, obtained from the buffer written by |
- Return value
An error code. See Error code reference.
cancelFileTranscriber
Immediately cancels the current task.
- Method signature
public cancelFileTranscriber(task_id: string): number
- Parameter descriptions
| Parameter | Type | Description |
|---|---|---|
task_id | string | The ID of the task to cancel. |
- Return value
An error code. See Error code reference.
release
Releases all internal SDK resources. After this method is called, the SDK instance becomes unavailable. To use it again, call initializeFileTrans to reinitialize it.
- Method signature
public release(): number
- Return value
An error code. See Error code reference.
GetVersion
Obtains the current SDK version information.
- Method signature
public GetVersion(): string
- Return value
The current SDK version information.
INativeFileTransCallback
Defines callbacks for file transcription events and recognition results.
onFileTransEventCallback
Listens for file transcription events and obtains speech recognition results.
- Method signature
onFileTransEventCallback: (event: Constants.NuiEvent, resultCode: number, finish: number,
asrResult: AsrResult, taskId: string) => void;
- Parameter descriptions
| Parameter | Type | Description |
|---|---|---|
event | Constants.NuiEvent | The callback event. |
resultCode | number | The error code. This parameter is valid when |
finish | number | Indicates whether the task has ended. |
asrResult | AsrResult | The speech recognition result. |
taskId | string | The task ID. |
Constants.NuiEvent
HarmonyOS SDK event types are defined by the Constants.NuiEvent enumeration. The following events apply to audio file transcription:
| Event | Description |
|---|---|
EVENT_FILE_TRANS_CONNECTED | The service is connected. |
EVENT_FILE_TRANS_UPLOADED | The audio file to recognize is uploaded. |
EVENT_FILE_TRANS_QUERY_RESULT | The task query result. |
EVENT_FILE_TRANS_RESULT | The final recognition result. |
EVENT_ASR_ERROR | An error occurs during speech recognition. |
Auxiliary types
Constants.LogLevel
The enumeration values for the level parameter are as follows:
| Value | Description |
|---|---|
LOG_LEVEL_VERBOSE | The most detailed logs. |
LOG_LEVEL_DEBUG | Debug logs. |
LOG_LEVEL_INFO | Informational logs (default). |
LOG_LEVEL_WARNING | Warning logs. |
LOG_LEVEL_ERROR | Error logs. |
LOG_LEVEL_NONE | Disables logging. |
Download the result
Non-real-time speech recognition results are generated asynchronously. The response returned by the EVENT_FILE_TRANS_RESULT event contains transcription_url. Download the recognition text in JSON format from this URL. The URL has a validity period. Download the result promptly.