Paraformer录音文件识别Python API

更新时间:2025-04-09 03:31:00

本文介绍Paraformer录音文件识别Python API的使用。

前提条件

模型列表

模型名

模型简介

模型名

模型简介

paraformer-v2

推荐使用。Paraformer最新多语种语音识别模型。

  • 适用场景:直播、客服通话等多场景的录音文件识别

  • 支持的采样率:任意

  • 支持的语种:中文(包含中文普通话和各种方言)、英文、日语、韩语、德语、法语、俄语

    支持的中文方言(单击查看详情)

    上海话、吴语、闽南语、东北话、甘肃话、贵州话、河南话、湖北话、湖南话、江西话、宁夏话、山西话、陕西话、山东话、四川话、天津话、云南话、粤语

  • 核心能力:

    • 支持标点符号预测

    • 支持逆文本正则化(ITN)

  • 特色功能:

    • 指定语种:通过language_hints参数能够指定待识别语种,提升识别效果

    • 支持定制热词

paraformer-8k-v2

推荐使用。Paraformer最新中文语音识别模型,模型结构升级,具有更好的识别效果。

  • 适用场景:需要高精度中文识别的场景,如会议记录、教学录音等

  • 支持的采样率:8kHz

  • 支持的语种:中文

  • 核心能力:

    • 支持标点符号预测

    • 支持逆文本正则化(ITN)

  • 特色功能:

paraformer-v1

Paraformer中英文语音识别模型。

  • 适用场景:中英文混合场景下的录音文件识别,如访谈、讲座等

  • 支持的采样率:任意

  • 支持的语种:中文、英文

  • 核心能力:

    • 支持标点符号预测

    • 支持逆文本正则化(ITN)

  • 特色功能:

paraformer-8k-v1

Paraformer中文语音识别模型。

  • 适用场景:电话客服、语音信箱等8kHz采样率音频处理

  • 支持的采样率:8kHz

  • 支持的语种:中文

  • 核心能力:

    • 支持标点符号预测

    • 支持逆文本正则化(ITN)

  • 特色功能:

paraformer-mtl-v1

Paraformer多语言语音识别模型。

  • 适用场景:国际会议、访谈等多语种交替发言场景

  • 支持的采样率:16kHz及以上

  • 支持的语种:中文普通话、中文方言(粤语、吴语、闽南语、东北话、甘肃话、贵州话、河南话、湖北话、湖南话、宁夏话、山西话、陕西话、山东话、四川话、天津话)、英语、日语、韩语、西班牙语、印尼语、法语、德语、意大利语、马来语

  • 核心能力:

    • 支持标点符号预测

    • 支持逆文本正则化(ITN)

  • 特色功能:

约束

服务不支持本地音视频文件直传,输入源需为可通过公网访问的文件URL(支持HTTP/HTTPS协议,示例:https://your-domain.com/file.mp3)。URL通过file_urls参数指定,单次请求最多支持100URL。

  • 音频格式

    aacamraviflacflvm4amkvmovmp3mp4mpegoggopuswavwebmwmawmv

    重要

    由于音视频格式及其变种众多,技术上无法穷尽测试,API不能保证所有格式均能够被正确识别。请通过测试验证您所提供的文件能够获得正常的语音识别结果。

  • 音频采样率

    采样率因模型而异:

    • paraformer-v2 支持任意采样率

    • paraformer-v1 支持任意采样率

    • paraformer-8k-v2 仅支持8kHz采样率

    • paraformer-8k-v1 仅支持8kHz采样率

    • paraformer-mtl-v1 支持16kHz及以上采样率

  • 音频文件大小和时长

    音频文件不超过2GB;时长在12小时以内。

    如果希望处理的文件超过了上述限制,可尝试对文件进行预处理以降低文件尺寸。有关文件预处理的最佳实践可以查阅预处理视频文件以提高文件转写效率

  • 批处理音频数目

    单次请求最多支持100个文件URL。

  • 可识别语言

    因模型而异:

    • paraformer-v2:

      • 中文,包含中文普通话和各种方言:上海话、吴语、闽南语、东北话、甘肃话、贵州话、河南话、湖北话、湖南话、江西话、宁夏话、山西话、陕西话、山东话、四川话、天津话、云南话、粤语

      • 英文

      • 日语

      • 韩语

    • paraformer-8k-v2 仅支持中文

    • paraformer-v1 仅支持中英文

    • paraformer-8k-v1 仅支持中文

    • paraformer-mtl-v1:中文普通话、中文方言(粤语、吴语、闽南语、东北话、甘肃话、贵州话、河南话、湖北话、湖南话、宁夏话、山西话、陕西话、山东话、四川话、天津话)、英语、日语、韩语、西班牙语、印尼语、法语、德语、意大利语、马来语。

快速开始

核心类(Transcription)提供了异步提交任务、同步等待任务结束和异步查询任务执行结果的接口。可通过如下两种调用方式进行录音文件识别:

  • 异步提交任务+同步等待任务结束:提交任务后,阻塞当前线程直到任务结束并获取识别结果。

  • 异步提交任务+异步查询任务执行结果:提交任务后,在需要的时候通过调用查询任务接口获取任务的执行结果。

异步提交任务+同步等待任务结束

image
  1. 调用核心类(Transcription)async_call方法并设置请求参数

    说明
    • 文件转写服务对通过API提交的任务采取尽力服务原则进行处理。任务提交后将进入排队(PENDING)状态,排队时间取决于队列长度和文件时长,无法明确给出,通常在数分钟内。任务开始处理后,语音识别将以数百倍加速完成。

    • 每一个任务完成后,识别结果和URL下载链接有效期为24小时,超时后无法查询任务或通过先前查询结果中的URL下载结果。

  2. 调用核心类(Transcription)wait方法同步等待任务结束。

    任务的状态包括PENDINGRUNNINGSUCCEEDEDFAILED。当任务处于PENDINGRUNNING状态时,wait接口将被阻塞。当任务处于SUCCEEDEDFAILED状态时,wait接口不再阻塞并返回任务的执行结果。

    wait返回TranscriptionResponse

点击查看完整示例

from http import HTTPStatus
from dashscope.audio.asr import Transcription
import json

# 若没有将API Key配置到环境变量中,需将下面这行代码注释放开,并将apiKey替换为自己的API Key
# import dashscope
# dashscope.api_key = "apiKey"

task_response = Transcription.async_call(
    model='paraformer-v2',
    file_urls=['https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/paraformer/hello_world_female2.wav',
               'https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/paraformer/hello_world_male2.wav'],
    language_hints=['zh', 'en']  # “language_hints”只支持paraformer-v2模型
)

transcribe_response = Transcription.wait(task=task_response.output.task_id)
if transcribe_response.status_code == HTTPStatus.OK:
    print(json.dumps(transcribe_response.output, indent=4, ensure_ascii=False))
    print('transcription done!')

异步提交任务+异步查询任务执行结果

image
  1. 调用核心类(Transcription)async_call方法并设置请求参数

    说明
    • 文件转写服务对通过API提交的任务采取尽力服务原则进行处理。任务提交后将进入排队(PENDING)状态,排队时间取决于队列长度和文件时长,无法明确给出,通常在数分钟内。任务开始处理后,语音识别将以数百倍加速完成。

    • 每一个任务完成后,识别结果和URL下载链接有效期为24小时,超时后无法查询任务或通过先前查询结果中的URL下载结果。

  2. 循环调用核心类(Transcription)fetch方法直到获取最终的任务结果。

    当任务状态为SUCCEEDEDFAILED时,停止轮询并处理结果。

    fetch返回TranscriptionResponse

点击查看完整示例

from http import HTTPStatus
from dashscope.audio.asr import Transcription
import json

# 若没有将API Key配置到环境变量中,需将下面这行代码注释放开,并将apiKey替换为自己的API Key
# import dashscope
# dashscope.api_key = "apiKey"

transcribe_response = Transcription.async_call(
    model='paraformer-v2',
    file_urls=['https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/paraformer/hello_world_female2.wav',
               'https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/paraformer/hello_world_male2.wav'],
    language_hints=['zh', 'en']  # “language_hints”只支持paraformer-v2模型
)

while True:
    if transcribe_response.output.task_status == 'SUCCEEDED' or transcribe_response.output.task_status == 'FAILED':
        break
    transcribe_response = Transcription.fetch(task=transcribe_response.output.task_id)

if transcribe_response.status_code == HTTPStatus.OK:
    print(json.dumps(transcribe_response.output, indent=4, ensure_ascii=False))
    print('transcription done!')

请求参数

请求参数通过核心类(Transcription)async_call方法进行设置。

参数

类型

默认值

是否必须

说明

参数

类型

默认值

是否必须

说明

model

str

-

指定用于音视频文件转写的Paraformer模型名。参见模型列表

file_urls

list[str]

-

音视频文件转写的URL列表,支持HTTP / HTTPS协议,单次请求最多支持100URL。

vocabulary_id

str

-

最新热词ID,支持最新v2系列模型并配置语种信息,此次语音识别中生效此热词ID对应的热词信息。默认不启用。使用方法请参考定制热词

phrase_id

str

-

热词ID,此次语音识别中生效此热词ID对应的热词信息。默认不启用。

注:phrase_idv1版本模型热词方案,不支持v2及后续系列模型。支持该方式热词的模型列表请参考Paraformer语音识别热词定制与管理

channel_id

list[int]

[0]

指定在多音轨文件中需要进行语音识别的音轨索引,以List的形式给出,例如[0]表示仅识别第一条音轨,[0, 1]表示同时识别前两条音轨。

disfluency_removal_enabled

bool

False

过滤语气词,默认关闭。

timestamp_alignment_enabled

bool

False

是否启用时间戳校准功能,默认关闭。

special_word_filter

str

-

敏感词过滤功能,支持开启或关闭,支持自定义敏感词。该参数可实现:

不处理(默认,即展示原文)、过滤、替换为*。

说明

开启但未配置敏感词,则会过滤默认词表:敏感词表

language_hints

list[str]

["zh", "en"]

指定待识别语音的语言代码。

该参数仅适用于paraformer-v2模型。

支持的语言代码:

  • zh: 中文

  • en: 英文

  • ja: 日语

  • yue: 粤语

  • ko: 韩语

  • de:德语

  • fr:法语

  • ru:俄语

diarization_enabled

bool

False

自动说话人分离,默认关闭。

仅适用于单声道音频,多声道音频不支持说话人分离。

启用该功能后,识别结果中将显示speaker_id字段,用于区分不同说话人。

有关speaker_id的示例,请参见识别结果说明

speaker_count

int

-

说话人数量参考值。取值范围为2100的整数(包含2100)。

开启说话人分离功能后(diarization_enabled设置为true)生效。

默认自动判断说话人数量,如果配置此项,只能辅助算法尽量输出指定人数,无法保证一定会输出此人数。

响应结果

TranscriptionResponse

TranscriptionResponse封装了任务的基本信息(task_idtask_status)和执行结果(output属性对应的内容,参见TranscriptionOutput)。

点击查看TranscriptionResponse结构示例

PENDING状态
RUNNING状态
SUCCEEDED状态
FAILED状态
{
    "status_code":200,
    "request_id":"251aceab-a6aa-9fc4-b7f7-0cc6d3e2a9f3",
    "code":null,
    "message":"",
    "output":{
        "task_id":"7d0a58a3-1dbe-4de9-8cff-5f48213128b0",
        "task_status":"PENDING",
        "submit_time":"2025-02-13 16:55:08.573",
        "scheduled_time":"2025-02-13 16:55:08.592",
        "task_metrics":{
            "TOTAL":2,
            "SUCCEEDED":0,
            "FAILED":0
        }
    },
    "usage":null
}
{
    "status_code":200,
    "request_id":"d9d530f1-853c-9848-a5f1-f5de59086ff7",
    "code":null,
    "message":"",
    "output":{
        "task_id":"6351feef-9694-45d2-9d32-63454f2ffb8d",
        "task_status":"RUNNING",
        "submit_time":"2025-02-13 17:31:20.681",
        "scheduled_time":"2025-02-13 17:31:20.703",
        "task_metrics":{
            "TOTAL":2,
            "SUCCEEDED":1,
            "FAILED":0
        }
    },
    "usage":null
}
{
    "status_code":200,
    "request_id":"16668704-6702-9e03-8ab7-a32a5d7bb095",
    "code":null,
    "message":"",
    "output":{
        "task_id":"6351feef-9694-45d2-9d32-63454f2ffb8d",
        "task_status":"SUCCEEDED",
        "submit_time":"2025-02-13 17:31:20.681",
        "scheduled_time":"2025-02-13 17:31:20.703",
        "end_time":"2025-02-13 17:31:21.867",
        "results":[
            {
                "file_url":"https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/paraformer/hello_world_female2.wav",
                "transcription_url":"https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/prod/paraformer-v2/20250213/17%3A31/20ee4e4f-0404-4806-b617-c7d4c62eed19-1.json?Expires=1739525481&OSSAccessKeyId=yourOSSAccessKeyId&Signature=3q%2B1uQmRwltd7FPn5HQM2mBKw74%3D",
                "subtask_status":"SUCCEEDED"
            },
            {
                "file_url":"https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/paraformer/hello_world_male2.wav",
                "transcription_url":"https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/prod/paraformer-v2/20250213/17%3A31/be4f14c5-e46b-47ff-b03a-476ae9a45fd3-1.json?Expires=1739525481&OSSAccessKeyId=yourOSSAccessKeyId&Signature=EUX%2FRkGcn46L5d93ihQmpWUeYE4%3D",
                "subtask_status":"SUCCEEDED"
            }
        ],
        "task_metrics":{
            "TOTAL":2,
            "SUCCEEDED":2,
            "FAILED":0
        }
    },
    "usage":{
        "duration":9
    }
}
{
    "status_code":200,
    "request_id":"16668704-6702-9e03-8ab7-a32a5d7bb095",
    "code":null,
    "message":"",
    "output":{
        "task_id": "7bac899c-06ec-4a79-8875-xxxxxxxxxxxx",
        "task_status": "SUCCEEDED",
        "submit_time": "2024-12-16 16:30:59.170",
        "scheduled_time": "2024-12-16 16:30:59.204",
        "end_time": "2024-12-16 16:31:02.375",
        "results": [
            {
                "file_url": "https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/sensevoice/long_audio_demo_cn.mp3",
                "transcription_url": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/prod/paraformer-v2/20241216/xxxx",
                "subtask_status": "SUCCEEDED"
            },
            {
                "file_url": "https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/sensevoice/rich_text_exaple_1.wav",
                "code": "InvalidFile.DownloadFailed",
                "message": "The audio file cannot be downloaded.",
                "subtask_status": "FAILED"
            }
        ],
        "task_metrics": {
            "TOTAL": 2,
            "SUCCEEDED": 1,
            "FAILED": 1
        }
    },
    "usage":{
        "duration":9
    }
}

需要关注的参数:

参数

说明

参数

说明

status_code

HTTP请求状态码。

code

  • 最外层的code不必关注。

  • output.results下面的code,代表错误码。可以结合message字段,对照错误码排查问题。

message

  • 最外层的message不必关注。

  • output.results下面的message,代表错误信息。可以结合code字段,对照错误码排查问题。

task_id

任务ID。

task_status

任务状态。

PENDINGRUNNINGSUCCEEDEDFAILED这四种状态。

当任务包含多个子任务时,只要存在任一子任务成功,整个任务状态将标记为SUCCEEDED,需通过subtask_status字段判断具体子任务结果。

results

子任务识别结果。

subtask_status

子任务状态。

PENDINGRUNNINGSUCCEEDEDFAILED这四种状态。

file_url

被识别音频的URL。

transcription_url

音频识别结果对应的URL。

识别结果保存为JSON文件,您可以通过transcription_url对应的链接下载文件或直接通过HTTP请求读取该文件中的内容。JSON文件的内容请参见识别结果说明

TranscriptionOutput

TranscriptionOutput对应TranscriptionResponseoutput属性,代表当前任务执行结果。

点击查看TranscriptionOutput结构示例

PENDING状态
RUNNING状态
SUCCEEDED状态
FAILED状态
{
    "task_id":"f2f7c2fa-0cd9-4bb2-a283-27b26ee4bb67",
    "task_status":"PENDING",
    "submit_time":"2025-02-13 17:59:27.754",
    "scheduled_time":"2025-02-13 17:59:27.789",
    "task_metrics":{
        "TOTAL":2,
        "SUCCEEDED":0,
        "FAILED":0
    }
}
{
    "task_id":"f2f7c2fa-0cd9-4bb2-a283-27b26ee4bb67",
    "task_status":"RUNNING",
    "submit_time":"2025-02-13 17:59:27.754",
    "scheduled_time":"2025-02-13 17:59:27.789",
    "task_metrics":{
        "TOTAL":2,
        "SUCCEEDED":0,
        "FAILED":0
    }
}
{
    "task_id":"f2f7c2fa-0cd9-4bb2-a283-27b26ee4bb67",
    "task_status":"SUCCEEDED",
    "submit_time":"2025-02-13 17:59:27.754",
    "scheduled_time":"2025-02-13 17:59:27.789",
    "end_time":"2025-02-13 17:59:28.828",
    "results":[
        {
            "file_url":"https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/paraformer/hello_world_female2.wav",
            "transcription_url":"https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/prod/paraformer-v2/20250213/17%3A59/70e737cc-bf8c-418b-b0c8-83fab192a0fa-1.json?Expires=1739527168&OSSAccessKeyId=yourOSSAccessKeyId&Signature=AtGjIKI%2BdgbzjJIu%2BHsr1R5nSAY%3D",
            "subtask_status":"SUCCEEDED"
        },
        {
            "file_url":"https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/paraformer/hello_world_male2.wav",
            "transcription_url":"https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/prod/paraformer-v2/20250213/17%3A59/ce1ebe74-be78-4ac8-b4f8-8e438a14d1c2-1.json?Expires=1739527168&OSSAccessKeyId=yourOSSAccessKeyId&Signature=z5s0ROpSU8HwiM8WHPNVpkuFG3A%3D",
            "subtask_status":"SUCCEEDED"
        }
    ],
    "task_metrics":{
        "TOTAL":2,
        "SUCCEEDED":2,
        "FAILED":0
    }
}

code”为错误码,“message”为错误信息,只有异常情况才有这两个字段,您可以通过这两个字段,对照错误码排查问题。

{
    "task_id": "7bac899c-06ec-4a79-8875-xxxxxxxxxxxx",
    "task_status": "SUCCEEDED",
    "submit_time": "2024-12-16 16:30:59.170",
    "scheduled_time": "2024-12-16 16:30:59.204",
    "end_time": "2024-12-16 16:31:02.375",
    "results": [
        {
            "file_url": "https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/sensevoice/long_audio_demo_cn.mp3",
            "transcription_url": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/prod/paraformer-v2/20241216/xxxx",
            "subtask_status": "SUCCEEDED"
        },
        {
            "file_url": "https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/sensevoice/rich_text_exaple_1.wav",
            "code": "InvalidFile.DownloadFailed",
            "message": "The audio file cannot be downloaded.",
            "subtask_status": "FAILED"
        }
    ],
    "task_metrics": {
        "TOTAL": 2,
        "SUCCEEDED": 1,
        "FAILED": 1
    }
}

需要关注的参数:

参数

说明

参数

说明

code

代表错误码。可以结合message字段,对照错误码排查问题。

message

代表错误信息。可以结合code字段,对照错误码排查问题。

task_id

任务ID。

task_status

任务状态。

PENDINGRUNNINGSUCCEEDEDFAILED这四种状态。

当任务包含多个子任务时,只要存在任一子任务成功,整个任务状态将标记为SUCCEEDED,需通过subtask_status字段判断具体子任务结果。

results

子任务识别结果。

subtask_status

子任务状态。

PENDINGRUNNINGSUCCEEDEDFAILED这四种状态。

file_url

被识别音频的URL。

transcription_url

音频识别结果对应的URL。

识别结果以JSON格式保存在一个JSON文件中,您可以通过transcription_url对应的链接下载文件或直接通过HTTP请求读取该文件中的内容。JSON文件的内容请参见识别结果说明

识别结果说明

识别结果保存为JSON文件。

点击查看识别结果示例

{
    "file_url":"https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/paraformer/hello_world_female2.wav",
    "properties":{
        "audio_format":"pcm_s16le",
        "channels":[
            0
        ],
        "original_sampling_rate":16000,
        "original_duration_in_milliseconds":3834
    },
    "transcripts":[
        {
            "channel_id":0,
            "content_duration_in_milliseconds":3720,
            "text":"Hello world, 这里是阿里巴巴语音实验室。",
            "sentences":[
                {
                    "begin_time":100,
                    "end_time":3820,
                    "text":"Hello world, 这里是阿里巴巴语音实验室。",
                    "sentence_id":1,
                    "speaker_id":0, //当开启自动说话人分离功能时才会显示该字段
                    "words":[
                        {
                            "begin_time":100,
                            "end_time":596,
                            "text":"Hello ",
                            "punctuation":""
                        },
                        {
                            "begin_time":596,
                            "end_time":844,
                            "text":"world",
                            "punctuation":", "
                        }
                        // 这里省略其它内容
                    ]
                }
            ]
        }
    ]
}

需要关注的参数如下:

参数

类型

说明

参数

类型

说明

audio_format

string

源文件中音频的格式。

channels

array[integer]

源文件中音频的音轨索引信息,对单轨音频返回[0],对双轨音频返回[0, 1],以此类推。

original_sampling_rate

integer

源文件中音频的采样率(Hz)。

original_duration

integer

源文件中的原始音频时长(ms)。

channel_id

integer

转写结果的音轨索引,以0为起始。

content_duration

integer

音轨中被判定为语音内容的时长(ms)。

重要

Paraformer语音识别模型服务仅对音轨中被判定为语音内容的时长进行语音转写,并据此进行计量计费,非语音内容不计量、不计费。通常情况下语音内容时长会短于原始音频时长。由于对是否存在语音内容的判定是由AI模型给出的,可能与实际情况存在一定误差。

transcript

string

段落级别的语音转写结果。

sentences

array

句子级别的语音转写结果。

words

array

词级别的语音转写结果。

begin_time

integer

开始时间戳(ms)。

end_time

integer

结束时间戳(ms)。

text

string

语音转写结果。

speaker_id

integer

当前说话人的索引,以0为起始,用于区分不同的说话人。

仅在启用说话人分离功能时,该字段才会显示于识别结果中。

punctuation

string

预测出的词之后的标点符号(如有)。

关键接口

核心类(Transcription

Transcription可以通过“from dashscope.audio.asr import Transcription”方式引入。

成员方法

方法签名

说明

成员方法

方法签名

说明

async_call

@classmethod
def async_call(cls,
               model: str,
               file_urls: List[str],
               phrase_id: str = None,
               api_key: str = None,
               workspace: str = None,
               **kwargs) -> TranscriptionResponse

异步提交语音识别任务。

wait

@classmethod
def wait(cls,
         task: Union[str, TranscriptionResponse],
         api_key: str = None,
         workspace: str = None,
         **kwargs) -> TranscriptionResponse

阻塞当前线程直到异步任务结束(任务状态为SUCCEEDEDFAILED)。

该方法返回TranscriptionResponse

fetch

@classmethod
def fetch(cls,
          task: Union[str, TranscriptionResponse],
          api_key: str = None,
          workspace: str = None,
          **kwargs) -> TranscriptionResponse

异步查询当前任务执行结果。

该方法返回TranscriptionResponse

错误码

当任务包含多个子任务时,只要存在任一子任务成功,整个任务状态将标记为SUCCEEDED,需通过subtask_status字段判断具体子任务结果。

错误返回示例:

{
    "task_id": "7bac899c-06ec-4a79-8875-xxxxxxxxxxxx",
    "task_status": "SUCCEEDED",
    "submit_time": "2024-12-16 16:30:59.170",
    "scheduled_time": "2024-12-16 16:30:59.204",
    "end_time": "2024-12-16 16:31:02.375",
    "results": [
        {
            "file_url": "https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/sensevoice/long_audio_demo_cn.mp3",
            "transcription_url": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/prod/paraformer-v2/20241216/xxxx",
            "subtask_status": "SUCCEEDED"
        },
        {
            "file_url": "https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/sensevoice/rich_text_exaple_1.wav",
            "code": "InvalidFile.DownloadFailed",
            "message": "The audio file cannot be downloaded.",
            "subtask_status": "FAILED"
        }
    ],
    "task_metrics": {
        "TOTAL": 2,
        "SUCCEEDED": 1,
        "FAILED": 1
    }
}

语音相关错误码:

错误码(code)

原因

解决方案

错误码(code)

原因

解决方案

SUCCESS_WITH_NO_VALID_FRAGMENT

识别结果查询接口调用成功,但是VAD模块未检测到有效语音。

此种情况下可检查:

录音文件是否包含有效语音,如果都是无效语音,例如纯静音。上述情况下没有识别结果是正常现象。

ASR_RESPONSE_HAVE_NO_WORDS

识别结果查询接口调用成功,但是最终识别结果为空。

此种情况下可检查:

录音文件是否包含有效语音,或有效语音是否都是语气词且开启了顺滑参数disfluency_removal_enabled,导致语气词被过滤。

FILE_DOWNLOAD_FAILED

文件下载失败。

检查录音文件路径是否正确,以及是否可以通过外网访问和下载。

FILE_CHECK_FAILED

文件格式错误。

检查录音文件是否是单轨/双轨的WAV格式或MP3格式。

FILE_TOO_LARGE

文件过大。

检查录音文件大小是否超过2GB,超过则需您对录音文件分段。

FILE_NORMALIZE_FAILED

文件归一化失败。

检查录音文件是否有损坏,是否可以正常播放。

FILE_PARSE_FAILED

文件解析失败。

检查录音文件是否有损坏,是否可以正常播放。

MKV_PARSE_FAILED

MKV解析失败。

检查录音文件是否损坏,是否可以正常播放。

FILE_TRANS_TASK_EXPIRED

录音文件识别任务过期。

TaskId不存在,或者已过期。

REQUEST_INVALID_FILE_URL_VALUE

请求file_link参数非法。

确认file_url参数格式是否正确。

CONTENT_LENGTH_CHECK_FAILED

content-length 检查失败。

检查下载文件时,HTTP response中的content-length与文件实际大小是否一致。

FILE_404_NOT_FOUND

需要下载的文件不存在。

检查需要下载的文件是否存在。

FILE_403_FORBIDDEN

没有权限下载需要的文件。

检查是否有权限下载录音文件。

FILE_SERVER_ERROR

请求的文件所在的服务不可用。

检查请求的文件所在的服务是否可用。

AUDIO_DURATION_TOO_LONG

请求的文件时长超过12小时。

建议将音频进行切分,分多次提交识别任务。

使用ffmpeg工具对音频文件进行切分

工具下载:

下载地址:https://ffmpeg.en.lo4d.com/download

命令用法:

以下是一个示例命令,用于从长音频中提取指定时间段的内容:

ffmpeg -i input_audio.wav -ss 00:10:00 -to 5:10:00 -c copy output_audio.wav

参数说明:

  • -i input_audio.wav:指定输入文件,即待处理的音频文件input_audio.wav

  • -ss 00:10:00:设置起始时间,表示从原始音频的第10分钟(00:10:00)开始处理。

  • -to 5:10:00:设置结束时间,表示处理到原始音频的第5小时10分钟(5:10:00)为止。

  • -c copy:指定编解码器选项,copy表示直接复制音频数据,不进行重新编码,从而加快处理速度。

  • output_audio.wav:指定输出文件,即生成的音频文件output_audio.wav

通过上述方法,您可以轻松将长音频切分为多个较短的片段,便于后续识别或处理。

DECODER_ERROR

检测音频文件信息失败。

确认文件下载链接中文件为支持的音频格式。

INTERNAL_ERROR

受机器负载、网络等因素导致的异常,通常为偶发出现。

一般重试调用即可恢复,如无法恢复,请联系技术支持人员。

更多百炼平台相关错误码请参考错误信息

更多示例

更多示例,请参见GitHub

常见问题

请参见GitHub QA

  • 本页导读 (1)
  • 前提条件
  • 模型列表
  • 约束
  • 快速开始
  • 异步提交任务+同步等待任务结束
  • 异步提交任务+异步查询任务执行结果
  • 请求参数
  • 响应结果
  • TranscriptionResponse
  • TranscriptionOutput
  • 识别结果说明
  • 关键接口
  • 核心类(Transcription)
  • 错误码
  • 更多示例
  • 常见问题
AI助理

点击开启售前

在线咨询服务

你好,我是AI助理

可以解答问题、推荐解决方案等