The LAS Speech-to-Text (Doubao - Audio File Recognition) Enhanced Version operator is based on the Doubao audio file recognition model and asynchronously transcribes speech from audio or video files into text. The operator supports multiple audio and video formats, audio noise reduction, large file processing, and recognition of 99 languages. It is suitable for scenarios such as content moderation and quality inspection, audio and video subtitles, voice search, classroom analysis, and transcription of meetings and interviews.
Operator ID: las_asr_pro
show_utterances, sentence segmentation, word segmentation, and timing information accurate to the millisecond are returned, which can be used to generate subtitle timelines. Additional information such as speaker, audio channel, speech rate, volume, emotion, and gender is controlled by the corresponding switches.Sub-item | Performance impact description |
|---|---|
Maximum RPM | 600 |
Maximum concurrency | 10 |
Processing time |
|
Breakdown | Detailed description |
|---|---|
Supported input data modalities |
|
Input format: audio |
|
Input format: video |
|
Input path requirements | Provide input data to the operator via the request parameter
|
Breakdown | Detailed description |
|---|---|
Output data modalities |
|
Output path: API response | After the operator finishes processing the input audio file, the converted text will be returned directly via the operator Poll interface's return parameter. |
Billing standards
Breakdown | Description of billing standards |
|---|---|
Billing item | Usage is calculated based on the duration of the input audio. |
Billing type | Usage-based billing, unit: |
Unit price | Depends on the selected model. |
Billing details
Billing formula: Total cost = unit price * usage
Detailed scenarios | Unit price |
|---|---|
(seedasr) | 1.6 CNY/hour |
(bigasr) | 4.6 CNY/hour |
Details | Caution and prerequisites |
|---|---|
Costs | Before calling an operator, you need to understand the model invocation costs associated with using the operator. For details, see Large model invocation billing. |
Authentication (API Key) | Before calling an operator, you need to generate an API Key for operator invocation. It is recommended to configure the API Key as an environment variable to ensure safer operator calls. For details, see Obtain and configure API Key. |
BaseURL | Before calling an operator, you need to determine the BaseURL for operator invocation based on the region where your current LAS service is deployed. This is used to configure the path parameter values for operator calls. |
LAS provides an "online experience" and offers a certain amount of free trial. No configuration is required to experience LAS operators online.
warning
The current operator online experience allows you to process up to 5 minutes of audio files for free. Any portion exceeding this limit will be charged according to the operator's billing items. For details on each operator's billing items and billing logic, please refer to Billing for large model invocation.
After logging in and entering the LAS Console , locate the current operator card, hover the mouse over the operator card, and click the “online experience” button.
Submit interface to obtain the task's task_id, then use the Poll interface to check the status of the corresponding task (task_id) and retrieve the operator's processing result.task_id is valid for 3 days. After 3 days, you will not be able to use this task_id to retrieve the operator's processing result.Submit the audio link and obtain the task ID assigned by the server.
Parameter | Type | Mandatory | Example value | Description |
|---|---|---|---|---|
operator_id | string | Yes | las_asr_pro | Operator ID, must be las_asr_pro. |
operator_version | string | Yes | v1 | Operator version, must be v1. This value does not change with the underlying ASR service version. |
data | SpeechRecognition | Yes | Recognition task configuration. | |
callback | Callback | 否 | Task status callback configuration. After configuring callback.url, a POST request will be sent to this address when the task status changes. If not configured, you can query task status and results via Poll. |
Parameter | Type | Sample value | Description |
|---|---|---|---|
metadata | Metadata | Request metadata | |
task_id | string | Task ID in asynchronous mode. | |
task_status | string | Task status in asynchronous mode. | |
business_code | string | Business code | |
error_msg | string | If there is an exception, detailed exception information will be returned. | |
request_id | string | Request ID |
curl --location "https://operator.las.ap-southeast-1.volces.com/api/v1/submit" \ --header "Content-Type: application/json" \ --header "Authorization: Bearer $LAS_API_KEY" \ --data ' { "operator_id": "las_asr_pro", "operator_version": "v2", "data": { "resource": "bigasr", "audio": { "url": "https://las-ai-cn-beijing-online.tos-cn-beijing.volces.com/operator_cards_serving/public/online/las_asr/badaling.wav", "format": "wav" }, "request": { "model_name": "bigmodel" } } }'
{ "metadata": { "task_id": "xxxxx123ef24ea40546c", "task_status": "PENDING", "business_code": "0", "error_msg": "", "request_id": "494022a8a0fc3eadb758cf8b0e8b20ef" } }
Query the transcription result of the recording using the task ID.
Parameter | Type | Required | Sample value | Description |
|---|---|---|---|---|
operator_id | string | Yes | las_asr_pro | Operator ID |
operator_version | string | Yes | v1 | Operator version |
task_id | string | Yes | Asynchronous task ID |
const properties = ({ "columns": [ { "title": "Parameter", "dataIndex": "column_0", "key": "column_0", "width": 300 }, { "title": "Type", "dataIndex": "column_1", "key": "column_1", "width": 150 }, { "title": "Sample value", "dataIndex": "column_2", "key": "column_2", "width": 150 }, { "title": "Description", "dataIndex": "column_3", "key": "column_3" } ], "data": [ { "key": "1", "column_0": "metadata", "column_1": "Metadata", "column_2": "", "column_3": "Request metadata and task status.", "children": [ { "key": "1-1", "column_0": "task_id", "column_1": "string", "column_2": "xxxxx123ef24ea40546c", "column_3": < div> Asynchronous task ID, consistent with < code> task_id</ code> in the request. </div> }, { "key": "1-2", "column_0": "task_status", "column_1": "string", "column_2": "COMPLETED", "column_3": < div> Asynchronous task status. Optional values:< ul>< li>< code> PENDING</ code>: Queued, continue polling. </ li>< li>< code> RUNNING</ code>: Processing, continue polling. </ li>< li>< code> COMPLETED</ code>: Successful terminal state, you can read < code> data</ code>. </ li>< li>< code> FAILED</ code>: Failed terminal state, check < code> business_code</ code> and < code> error_msg</ code>. </ li>< li>< code> TIMEOUT</ code>: Timeout terminal state, check < code> business_code</ code> and < code> error_msg</ code>. </li></ul></div> }, { "key": "1-3", "column_0": "submit_time", "column_1": "string", "column_2": "2026-07-21T16:04:06+08:00", "column_3": "Task submission time, ISO 8601 timestamp." }, { "key": "1-4", "column_0": "end_time", "column_1": "string", "column_2": "2026-07-21T16:04:10+08:00", "column_3": "Task end time, ISO 8601 timestamp; returned for terminal tasks." }, { "key": "1-5", "column_0": "business_code", "column_1": "string", "column_2": "0", "column_3": < div> Business code. < code> 0</ code> indicates success; any value other than < code> 0</ code> indicates a business exception. </div> }, { "key": "1-6", "column_0": "error_msg", "column_1": "string", "column_2": "", "column_3": "Exception details; empty string when successful." }, { "key": "1-7", "column_0": "request_id", "column_1": "string", "column_2": "d204c21f5c7c8f8cfeb85d211b9c20ac", "column_3": "Request ID, used for troubleshooting." } ] }, { "key": "2", "column_0": "data", "column_1": "AudioResponse", "column_2": "", "column_3": < div> Recognition result. Complete data is returned only when < code> metadata.task_status=COMPLETED</ code> and < code> metadata.business_code=0</ code>. No data or empty values are returned in the < code> PENDING</ code>, < code> RUNNING</ code>, < code> FAILED</ code>, or < code> TIMEOUT</ code> states. Failure and timeout reasons are obtained via < code> business_code</ code> and < code> error_msg</ code>. </div>, "children": [ { "key": "2-1", "column_0": "audio_info", "column_1": "AudioInfo", "column_2": "", "column_3": "Audio track information for input audio or video.", "children": [ { "key": "2-1-1", "column_0": "duration", "column_1": "integer", "column_2": "3575", "column_3": "Audio duration in milliseconds. For video input, indicates the duration of the extracted audio track." }, { "key": "2-1-2", "column_0": "language", "column_1": "string", "column_2": "zh-CN", "column_3": < div> Overall recognition language of the input content. Returned when < code> enable_lid</ code> is enabled; the language code format is consistent with < code> audio.language</ code> in Submit. </div> } ] }, { "key": "2-2", "column_0": "result", "column_1": "AudioResult", "column_2": "", "column_3": "Recognition result.", "children": [ { "key": "2-2-1", "column_0": "text", "column_1": "string", "column_2": "参观八达岭长城。", "column_3": < div> Complete recognized text. The original text is returned when < code> sensitive_words_filter</ code> is not configured. </div> }, { "key": "2-2-2", "column_0": "utterances", "column_1": "list of Utterance", "column_2": "", "column_3": < div> Sentence segmentation and word segmentation information. Returned only when < code> show_utterances=true</ code> is set in the Submit request. </div>, "children": [ { "key": "2-2-2-1", "column_0": "additions", "column_1": "Additions", "column_2": "", "column_3": "Sentence-level additional information. Only returns capability fields enabled in the Submit request, such as speaker, channel, speech rate, volume, emotion, or gender.", "children": [ { "key": "2-2-2-1-1", "column_0": "emotion_degree", "column_1": "string", "column_2": "", "column_3": < div> Emotion intensity label. Returned when both < code> enable_emotion_detection</ code> and < code> show_utterances=true</ code> are enabled; enumeration depends on the actual service response. </div> }, { "key": "2-2-2-1-2", "column_0": "emotion_degree_score", "column_1": "string", "column_2": "", "column_3": < div> Emotion intensity score. Return conditions are the same as < code> emotion_degree</ code>; the score range depends on the actual service response. </div> }, { "key": "2-2-2-1-3", "column_0": "emotion", "column_1": "string", "column_2": "neutral", "column_3": < div> Emotion type. Optional values include < code> angry</ code>, < code> happy</ code>, < code> neutral</ code>, < code> sad</ code>, < code> surprise</ code>. Returned when both < code> enable_emotion_detection</ code> and < code> show_utterances=true</ code> are enabled. </div> }, { "key": "2-2-2-1-4", "column_0": "emotion_score", "column_1": "string", "column_2": "", "column_3": < div> Emotion type score. The return conditions are the same as < code> emotion</ code>, and the score range is subject to the actual service response. </div> }, { "key": "2-2-2-1-5", "column_0": "gender", "column_1": "string", "column_2": "male", "column_3": < div> Gender label. Optional values are < code> male</ code>, < code> female</ code>. Returned when < code> enable_gender_detection</ code> is enabled and < code> show_utterances=true</ code>. </div> }, { "key": "2-2-2-1-6", "column_0": "gender_score", "column_1": "string", "column_2": "", "column_3": < div> Gender recognition score. The return conditions are the same as < code> gender</ code>, and the score range is subject to the actual service response. </div> }, { "key": "2-2-2-1-7", "column_0": "speech_rate", "column_1": "string", "column_2": "", "column_3": < div> Speech rate, unit: token/s. Returned when < code> show_speech_rate</ code> is enabled and < code> show_utterances=true code>. </div> }, { "key": "2-2-2-1-8", "column_0": "volume", "column_1": "string", "column_2": "", "column_3": < div> Volume, unit: dB. Returned when < code> show_volume</ code> is enabled and < code> show_utterances=true code>. </div> }, { "key": "2-2-2-1-9", "column_0": "speaker", "column_1": "string", "column_2": "1", "column_3": < div> Speaker ID. Returned when < code> enable_speaker_info code> is enabled and < code> show_utterances=true code>; the ID is used to distinguish different speakers within the current task. </div> }, { "key": "2-2-2-1-10", "column_0": "channel_id", "column_1": "string", "column_2": "1", "column_3": < div> Channel ID, < code> 1 code> indicates the left channel, < code> 2 code> indicates the right channel. Returned when stereo input < code> enable_channel_split code> is enabled and < code> show_utterances=true code>. </div> } ] }, { "key": "2-2-2-2", "column_0": "confidence", "column_1": "integer", "column_2": "0", "column_3": "Sentence confidence. The value range and meaning are subject to the actual service response." }, { "key": "2-2-2-3", "column_0": "end_time", "column_1": "integer", "column_2": "2080", "column_3": "Sentence end time, unit: milliseconds, relative to the start of the input audio or video track." }, { "key": "2-2-2-4", "column_0": "start_time", "column_1": "integer", "column_2": "640", "column_3": "Sentence start time, unit: milliseconds, relative to the start of the input audio or video track." }, { "key": "2-2-2-5", "column_0": "text", "column_1": "string", "column_2": "参观八达岭长城。", "column_3": "Recognized text for the current sentence." }, { "key": "2-2-2-6", "column_0": "words", "column_1": "list of Word", "column_2": "", "column_3": "Word segmentation information for the current sentence.", "children": [ { "key": "2-2-2-6-1", "column_0": "confidence", "column_1": "integer", "column_2": "0", "column_3": "Word confidence. The value range and meaning are subject to the actual service response." }, { "key": "2-2-2-6-2", "column_0": "blank_duration", "column_1": "integer", "column_2": "", "column_3": "Blank duration before the current word, unit: milliseconds; provided when the service returns this information." }, { "key": "2-2-2-6-3", "column_0": "end_time", "column_1": "integer", "column_2": "920", "column_3": "Word end time, unit: milliseconds, relative to the start of the input audio or video track." }, { "key": "2-2-2-6-4", "column_0": "start_time", "column_1": "integer", "column_2": "640", "column_3": "Word start time, unit: milliseconds, relative to the start of the input audio or video track." }, { "key": "2-2-2-6-5", "column_0": "text", "column_1": "string", "column_2": "参", "column_3": "Word text." } ] } ] }, { "key": "2-2-3", "column_0": "additions", "column_1": "RequestAdditions", "column_2": "", "column_3": "Task-level additional information; relevant fields are returned when the corresponding capability is enabled.", "children": [ { "key": "2-2-3-1", "column_0": "duration", "column_1": "string", "column_2": "3575", "column_3": < div> Audio duration in string format, unit: milliseconds. Numeric information is also returned in < code> audio_info.duration code> as integer type. </div> }, { "key": "2-2-3-2", "column_0": "language", "column_1": "string", "column_2": "zh-CN", "column_3": < div> Additional language recognition result. Returned when < code> enable_lid code> or multilingual recognition is enabled; overall language also see < code> audio_info.language code>. </div> } ] } ] } ] } ] }); return <Table border={{ cell: true, wrapper: true }} pagination={false} {...properties} />;
curl --location "https://operator.las.ap-southeast-1.volces.com/api/v1/poll" \ --header "Content-Type: application/json" \ --header "Authorization: Bearer $LAS_API_KEY" \ --data ' { "operator_id": "las_asr_pro", "operator_version": "v1", "task_id": "<YOUR_TASK_ID>" }'
{ "metadata": { "task_id": "xxxxx123ef24ea40546c", "task_status": "COMPLETED", "submit_time": "2026-07-21T16:04:06+08:00", "end_time": "2026-07-21T16:04:06+08:00", "business_code": "0", "error_msg": "", "request_id": "d204c21f5c7c8f8cfeb85d211b9c20ac" }, "data": { "audio_info": { "duration": 3575 }, "result": { "additions": { "duration": "3575", "language": "zh-CN" }, "text": "参观达*长城。", "utterances": [ { "additions": { "channel_id": "1" }, "end_time": 2320, "start_time": 640, "text": "参观达*长城。", "words": [ { "confidence": 0, "end_time": 920, "start_time": 640, "text": "参" }, { "confidence": 0, "end_time": 1120, "start_time": 920, "text": "观" }, { "confidence": 0, "end_time": 1480, "start_time": 1440, "text": "达" }, { "confidence": 0, "end_time": 1720, "start_time": 1680, "text": "*" }, { "confidence": 0, "end_time": 2080, "start_time": 1880, "text": "长" }, { "confidence": 0, "end_time": 2320, "start_time": 2080, "text": "城" } ] } ] } } }