You need to enable JavaScript to run this app.
Lake AI Service

Lake AI Service

Copy page
Download PDF
Audio recognition
Speech-to-Text (Doubao - Audio File Recognition) Enhanced Version
Copy page
Download PDF
Speech-to-Text (Doubao - Audio File Recognition) Enhanced Version

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 introduction

Operator ID: las_asr_pro

Application scenarios

  • Content review and quality inspection: Convert recordings to text, analyze the text using quality inspection rules to promptly detect violations and intervene, or monitor and analyze content to identify potential business opportunities.
  • Audio and video subtitles: Automatically convert speech and lyrics in audio or video to text, and generate corresponding subtitles for audio and video with one click. Suitable for various scenarios such as video editing, video viewing, and video conferencing.
  • Classroom content analysis: Recognize classroom recording files, reconstruct classroom scenarios through text, analyze teaching content, and improve teaching quality.
  • Meeting and interview transcription: Asynchronously convert meeting and interview audio to text, automatically segment and recognize speech sections to reduce costs and increase efficiency; at the same time, automatically segment content to effectively improve the efficiency of meeting record keeping.

Core capabilities

  • Multi-format audio and video input recognition:
    • Supports input of a single audio or video file; audio tracks are automatically extracted from video files.
  • Enhanced audio preprocessing to improve model performance:
    • The built-in audio noise reduction module effectively reduces the impact of background noise on recognition, improving the accuracy of audio file transcription.
  • Multilingual support:
    • The system can automatically detect the language or recognize speech in a user-specified language.
    • The number of supported recognition languages has been expanded to 99, meeting the needs of multilingual and multi-regional audio data processing.
  • Subtitles and structured transcription:
    • By using 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.

Supported regions

  • Beijing: cn-beijing
  • Shanghai: cn-shanghai
  • Guangzhou: cn-guangzhou

Supported languages

  • The system currently provides full capability support only for the following target languages: English (en), Japanese (ja), Indonesian (id), Spanish (es), Portuguese (pt), German (de), French (fr), Korean (ko), Filipino (fil), Malay (ms), Thai (th), and Arabic (ar).
  • If the target language is not in the above list, other languages are supported as extensions. For extended languages, only basic transcription functionality is supported. Automatic punctuation, semantic smoothing, speaker identification, number normalization (ITN), hotword correction, multimodal visual recognition, and similar features are not currently supported.

Operator performance

Sub-item
Performance impact description

Maximum RPM

600

Maximum concurrency

10

Processing time

  • Total processing time is directly proportional to the audio duration.

Input and output requirements

Input requirements

Breakdown
Detailed description

Supported input data modalities

  • Audio
  • Video

Input format: audio

  • Format: raw, wav, mp3, ogg
  • Audio encoding format: currently supports raw and opus
  • Size: no duration or size limitation
  • Other: only a single audio or video file can be submitted at a time

Input format: video

  • Format: mainstream video formats such as mp4, mov, mkv, flac, and more
  • Size: no duration or size limitation

Input path requirements

Provide input data to the operator via the request parameter url. Currently, two methods are supported: public URL and TOS path.

  • Public URL: a video URL accessible via the public internet, format http/https.
  • TOS path: after uploading the data to be processed to a TOS Bucket under the same primary account and region as the current LAS service, the TOS path can be provided, format tos://bucket_name/demo.

Output requirements

Breakdown
Detailed description

Output data modalities

  • Text

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 information
  • 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: CNY/hour, billed hourly based on actual usage.

    Unit price

    Depends on the selected model.

  • Billing details
    Billing formula: Total cost = unit price * usage

    Detailed scenarios
    Unit price
    • Speech-to-text (Doubao audio file recognition) enhanced version

    (seedasr)
    Specifically, set the resource parameter in the request to seedasr

    1.6 CNY/hour

    • Speech-to-text (Doubao audio file recognition) enhanced version

    (bigasr)
    Set the resource parameter in the request to bigasr

    4.6 CNY/hour

Caution and prerequisites

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.
For details, see Obtain the Base URL. The Examples below are for reference only; when making actual calls, replace the path values with those corresponding to your region.

Online experience

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.

Online experience entry

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.
Image

Online experience operation demonstration

  • LAS provides several sample audio files for you. You can also delete sample files and upload files manually.
  • During the online experience, you can flexibly configure the operator's processing parameters.

Rest API invocation

API usage instructions

  • The API for this operator is an asynchronous task interface. You need to submit a task through the 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.
  • Caution: After submitting a task, the 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 (submit task)

Interface description

Submit the audio link and obtain the task ID assigned by the server.

Request parameters

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.

Return parameters

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

Example

Request example

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

Return example

{
    "metadata": {
        "task_id": "xxxxx123ef24ea40546c",
        "task_status": "PENDING",
        "business_code": "0",
        "error_msg": "",
        "request_id": "494022a8a0fc3eadb758cf8b0e8b20ef"
    }
}

Poll (query result)

Interface description

Query the transcription result of the recording using the task ID.

Request parameters

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

Return parameters

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} />;

Example

Request example

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

Return example

{
    "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": "城"
                        }
                    ]
                }
            ]
        }
    }
}
Last updated: 2026.08.18 15:00:37