接口说明

更新时间:
复制 MD 格式

录音文件识别闲时版将已录制的音频文件转换为文本。通过可下载的HTTP或HTTPS URL提交文件,异步获取识别结果,不支持直接提交本地文件。与录音文件识别相比,闲时版的结果返回时间为24小时内。

前提条件与计费

  • 开通录音文件识别闲时版商用服务。闲时版不提供试用,开通方法请参见试用版升级为商用版。

  • 创建项目并获取Appkey,根据音频采样率、语种和场景配置识别模型。配置方法请参见管理项目。支持范围见本文语种和方言列表。

计费规则请参见计费项;商用版说明请参见计费方式。

使用限制

项目

要求

文件格式

支持单声道和双声道的WAV、MP3、MP4、M4A、WMA、AAC、OGG、AMR和FLAC文件。

文件大小与时长

音频文件不超过512 MB,视频文件不超过2 GB,文件总时长不超过12小时。

文件访问

服务端必须能通过URL下载文件。URL使用域名,不支持IP地址或本地文件路径;不可包含空格,尽量避免中文。HTTP响应头的Content-Length必须与响应体的实际长度一致。

结果时效

任务在24小时内完成,结果在服务端保存72小时。

并发与QPS

不限制并发任务数。提交接口用户级QPS为200;查询接口用户级QPS为500,同一TaskId的查询QPS为1。

智能分轨

仅支持8 kHz和16 kHz单声道音频。

重要

半小时内提交超过500小时时长的录音属于大规模数据,不能按通常的24小时返回时效处理。有此类需求时,请联系售前专家。

有关配额的详细说明,请参见并发和QPS说明。

支持语言模型定制和热词。使用方法请参见定制语言模型和使用POP API创建业务专属热词。

使用步骤

  1. 根据文件采样率、语种和业务场景,在项目中配置识别模型。语种和方言模型通过项目配置选择,不能在识别请求中直接指定。

  2. 将录音文件存放到OSS或自建文件服务器,获取可下载的URL。OSS私有对象可以使用有有效期的签名URL,无需将对象设为公共读。获取方法请参见使用预签名URL下载或预览文件。

  3. 调用SubmitTask提交文件URL和Appkey,获取TaskId。

  4. 调用GetTaskResult查询任务状态和识别结果,或在提交任务时配置回调地址,由服务端在任务完成后推送结果。

同地域的OSS文件可通过内网访问,不产生外网流量费用。配置方法请参见使用录音文件识别时如何设置OSS内网地址。

交互流程

客户端提交任务后,通过轮询或回调获取识别结果。TaskId位于JSON响应体中,用于关联提交请求与后续结果查询。

image

接口信息

服务采用RPC风格的POP API,使用AccessKey签名鉴权。API版本为2021-12-21。

地域

regionId / endpointName

Endpoint

华东2(上海)

cn-shanghai

speechfiletranscriberlite.cn-shanghai.aliyuncs.com

华北2(北京)

cn-beijing

speechfiletranscriberlite.cn-beijing.aliyuncs.com

华南1(深圳)

cn-shenzhen

speechfiletranscriberlite.cn-shenzhen.aliyuncs.com

Action

HTTP方法

用途

SubmitTask

POST

提交识别任务,Task参数为包含以下任务参数的JSON字符串。

GetTaskResult

GET

通过TaskId查询任务状态和结果。

提交识别任务

请求参数

将任务参数序列化为JSON字符串,作为SubmitTask的Task参数传入。以下为任务参数示例;valid_times用于限定识别区间,不需要时可以省略。

{
  "appkey": "your-appkey",
  "file_link": "https://gw.alipayobjects.com/os/bmw-prod/0574ee2e-f494-45a5-820f-63aee583045a.wav",
  "auto_split": false,
  "enable_words": false,
  "enable_sample_rate_adaptive": true,
  "valid_times": [
    {"begin_time": 200, "end_time": 2000, "channel_id": 0}
  ]
}

参数

类型

必选

说明

appkey

String

是

项目的Appkey。

file_link

String

是

可下载的录音文件URL。项目模型需支持文件的采样率和音频场景。

version

String

否

识别版本。使用声音顺滑时设为4.0。此参数不同于POP API版本。

enable_words

Boolean

否

是否返回词信息,默认false。

enable_sample_rate_adaptive

Boolean

否

是否将高于16 kHz的音频降采样为16 kHz,默认false。

enable_callback

Boolean

否

是否启用回调,默认false。

callback_url

String

条件必选

回调地址。enable_callback=true时必选。支持HTTP和HTTPS,host不能使用IP地址;需能接收POST请求。

speaker_num

Integer

否

辅助指定说话人数,范围为2~100。8 kHz默认2,16 kHz默认100。需与auto_split、supervise_type配合使用,只能辅助算法尽量输出指定人数,不保证最终人数。

auto_split

Boolean

否

是否开启智能分轨。两方对话可根据句子结果的ChannelId区分发言方,通常先发言一方为0。8 kHz双声道按两个声道区分两方,channel0和channel1为音轨编号。

supervise_type

Integer

否

说话人数的确定方式,与auto_split、speaker_num配合使用。未设置时,8 kHz由调用方指定、16 kHz由算法决定;1表示使用speaker_num指定人数;2表示由算法决定。

enable_inverse_text_normalization

Boolean

否

是否开启逆文本正则化(ITN),将中文数字转换为阿拉伯数字。默认false。

enable_disfluency

Boolean

否

是否过滤语气词(声音顺滑),默认false。开启时需设置version为4.0。

enable_punctuation_prediction

Boolean

否

是否添加标点,默认true。

valid_times

List of ValidTime

否

有效识别时间段,用于排除不需要识别的区间。字段说明见下表。

max_end_silence

Integer

否

最大结束静音时长,单位毫秒,范围200~6000,默认800。开启enable_semantic_sentence_detection后无效。

max_single_segment_time

Integer

否

单句话最大时长,单位毫秒,最小5000,默认60000。开启enable_semantic_sentence_detection后无效。

customization_id

String

否

通过POP API创建的定制模型ID,默认不添加。

class_vocabulary_id

String

否

已创建的类热词表ID,默认不添加。

vocabulary_id

String

否

已创建的泛热词表ID,默认不添加。

enable_semantic_sentence_detection

Boolean

否

是否开启语义断句,默认false。

enable_timestamp_alignment

Boolean

否

是否开启时间戳校准,默认false。

first_channel_only

Boolean

否

是否仅识别首个声道。未设置:8 kHz处理双声道,16 kHz处理单声道;false:两种采样率均处理双声道;true:均处理单声道。识别结果因双声道内容相同而重复时,可以开启。

special_word_filter

String(JSON字符串)

否

敏感词处理配置。默认保留原文,可配置过滤为空或替换为*,也可启用默认敏感词表。配置示例见下文。

punctuation_mark

String

否

增加用于断句的标点。默认使用句号、问号、叹号。可填写多个标点,区分中英文,标点间不加空格;非标点字符不生效。例如,表示增加英文逗号,,,表示增加中文和英文逗号。

sentence_max_length

Integer

否

单句最大展示字数,范围4~50,默认不启用。启用后未指定字数时按长句断句,适用于控制字幕单行字数。

重要

8 kHz双声道按单声道计费,即按音频时长计费;16 kHz双声道按声道数×音频时长计费。

ValidTime字段

参数

类型

必选

说明

begin_time

Int

是

区间开始时间相对文件起点的偏移,单位毫秒。

end_time

Int

是

区间结束时间相对文件起点的偏移,单位毫秒。

channel_id

Int

是

区间所属音轨序号,从0开始。

自定义过滤词

special_word_filter使用以下结构的JSON字符串。system_reserved_filter启用默认敏感词表;filter_with_empty将指定词替换为空,filter_with_signed将指定词替换为*。各项可全部或部分设置。

{
  "system_reserved_filter": true,
  "filter_with_empty": {"word_list": ["开始", "发生"]},
  "filter_with_signed": {"word_list": ["测试"]}
}

默认词表见敏感词表。

提交响应

{
  "TaskId": "4b56f0c4b7e611e88f34c33c2a60****",
  "RequestId": "E4B183CC-6CFE-411E-A547-D877F7BD****",
  "StatusText": "SUCCESS",
  "StatusCode": 21050000
}

字段

类型

说明

TaskId

String

任务ID,提交成功后用于查询结果。

RequestId

String

请求ID,用于排查问题。

StatusCode

Int

业务状态码。21050000表示提交成功,不表示识别已完成。

StatusText

String

业务状态说明。

获取识别结果

HTTP请求成功不等于识别成功。根据响应中的StatusCode和StatusText判断任务状态;排队中或识别中继续等待,完成后读取结果,失败时按错误码处理。

获取方式

轮询

调用GetTaskResult,在查询参数中传入提交接口返回的TaskId。控制查询间隔,避免超过用户级500 QPS和同一TaskId的1 QPS限制。

参数

类型

必选

说明

TaskId

String

是

提交任务后获得的任务ID。

回调

提交任务时设置enable_callback=true和callback_url。任务完成后,服务端将识别结果POST到回调地址。该地址需支持HTTP或HTTPS、使用域名而非IP,并能接收POST请求。

回调结果包含RequestTime,表示任务提交时间;SolveTime表示任务完成时间。两者均为Unix时间戳,单位毫秒。例如1553062810452对应北京时间2019年3月20日14:20:10。

{
        "Result": {
                "Sentences": [{
                        "EndTime": 2365,
                        "SilenceDuration": 0,
                        "BeginTime": 340,
                        "Text": "北京的天气。",
                        "ChannelId": 0,
                        "SpeechRate": 177,
                        "EmotionValue": 5.0
                }]
        },
        "TaskId": "36d01b244ad811e9952db7bb7ed2****",
        "StatusCode": 21050000,
        "StatusText": "SUCCESS",
        "RequestTime": 1553062810452,
        "SolveTime": 1553062810831,
        "BizDuration": 2956
}

响应示例

以下成功示例识别的是中文样例音频。词信息需要设置enable_words=true,轮询和回调均可返回。

识别成功

{
  "TaskId": "4b56f0c4b7e611e88f34c33c2a60****",
  "RequestId": "E4B183CC-6CFE-411E-A547-D877F7BD****",
  "RecDuration": 3101,
  "StatusText": "SUCCESS",
  "BizDuration": 3101,
  "SolveTime": 1790129848516,
  "StatusCode": 21050000,
  "Result": {
    "Sentences": [
      {
        "EndTime": 3080,
        "SilenceDuration": 0,
        "SpeakerId": "1",
        "BeginTime": 640,
        "Text": "北京的天气。",
        "ChannelId": 0,
        "SpeechRate": 147,
        "EmotionValue": 6.5
      }
    ]
  }
}

返回词信息

{
  "TaskId": "4b56f0c4b7e611e88f34c33c2a60****",
  "RequestId": "E4B183CC-6CFE-411E-A547-D877F7BD****",
  "RecDuration": 3101,
  "StatusText": "SUCCESS",
  "BizDuration": 3101,
  "SolveTime": 1790129848516,
  "StatusCode": 21050000,
  "Result": {
    "Words": [
      {
        "Word": "北京",
        "EndTime": 1616,
        "BeginTime": 640,
        "ChannelId": 0
      },
      {
        "Word": "的",
        "EndTime": 2104,
        "BeginTime": 1616,
        "ChannelId": 0
      },
      {
        "Word": "天气",
        "EndTime": 3080,
        "BeginTime": 2104,
        "ChannelId": 0
      }
    ],
    "Sentences": [
      {
        "EndTime": 3080,
        "SilenceDuration": 0,
        "SpeakerId": "1",
        "BeginTime": 640,
        "Text": "北京的天气。",
        "ChannelId": 0,
        "SpeechRate": 147,
        "EmotionValue": 6.5
      }
    ]
  }
}

排队中

{
        "TaskId": "c7274235b7e611e88f34c33c2a60****",
        "RequestId": "981AD922-0655-46B0-8C6A-5C836822****",
        "StatusText": "QUEUEING",
        "StatusCode": 21050002
}

识别中

{
        "TaskId": "c7274235b7e611e88f34c33c2a60****",
        "RequestId": "8E908ED2-867F-457E-82BF-4756194A****",
        "StatusText": "RUNNING",
        "BizDuration": 0,
        "StatusCode": 21050001
}

下载失败

{
  "TaskId": "4b56f0c4b7e611e88f34c33c2a60****",
  "RequestId": "E4B183CC-6CFE-411E-A547-D877F7BD****",
  "RecDuration": 0,
  "StatusText": "FILE_DOWNLOAD_FAILED",
  "BizDuration": 0,
  "SolveTime": 0,
  "StatusCode": 41050002
}

响应字段

不同任务状态返回的字段不同。排队、识别中或失败时,不应假设存在Result。

字段

类型

说明

TaskId

String

任务ID。

RequestId

String

请求ID,用于排查问题。

StatusCode

Int

业务状态码。

StatusText

String

业务状态说明,例如SUCCESS、RUNNING、QUEUEING。

Result

Object

识别结果对象,任务成功并产生识别内容时读取。

RecDuration

Long

源音频时长,单位毫秒。

BizDuration

Long

本次识别处理的音频时长,单位毫秒。设置valid_times后,可与源文件总时长不同。

SolveTime

Long

任务完成时间,Unix时间戳,单位毫秒。

Result字段

字段

类型

说明

Sentences

List of SentenceResult

StatusText=SUCCESS时的句子识别结果。

Words

List of WordResult

词信息。需设置enable_words=true。

SentenceResult字段

字段

类型

说明

ChannelId

Int

该句所属音轨ID。

BeginTime

Int

句子起点相对文件起点的偏移,单位毫秒。

EndTime

Int

句子终点相对文件起点的偏移,单位毫秒。

Text

String

句子的识别文本。

SpeakerId

String

说话人标识。

EmotionValue

Float

情绪能量值,为音量分贝值除以10,范围1~10。值越高,情绪越强烈。

SilenceDuration

Int

本句与上一句之间的静音时长,单位秒。

SpeechRate

Int

本句平均语速:中文为字数/分钟,英文为单词数/分钟。

WordResult字段

字段

类型

说明

BeginTime

Int

词开始时间,单位毫秒。

EndTime

Int

词结束时间,单位毫秒。

ChannelId

Int

词所属音轨ID。

Word

String

词文本。

语种和方言

根据音频采样率和场景选择项目模型。下表列出各模型对标点、ITN、顺滑、语义断句以及声音和文本对齐的支持情况。

语种

语言

模型名称

采样率

标点

ITN

顺滑

语义断句

声音和文本对齐

英语

通用-英文,教育直播-英文,教育内容分析-英文

16k

支持

支持

支持

不支持

支持

电话客服(通用)

8k

支持

支持

支持

不支持

不支持

东南亚多语言

16k

支持

不支持

不支持

不支持

不支持

日语

通用-日语

16k

支持

支持

不支持

不支持

支持

西班牙语

通用-西班牙语

16k

支持

支持

不支持

不支持

不支持

通用-西班牙客服通用

8k

支持

支持

不支持

不支持

不支持

阿拉伯语

通用-阿拉伯语

16k

支持

不支持

不支持

不支持

不支持

哈萨克语

通用-哈萨克语

16k

支持

不支持

不支持

不支持

不支持

韩语

通用-韩语

16k

支持

支持

不支持

不支持

不支持

泰语

通用-泰语

16k

不支持

不支持

不支持

不支持

不支持

通用-泰语客服通用

8k

不支持

不支持

不支持

不支持

不支持

东南亚多语言

16k

支持

不支持

不支持

不支持

不支持

印尼语

通用-印尼语

16k

支持

支持

不支持

不支持

不支持

电话客服(通用)

8k

支持

支持

不支持

不支持

不支持

东南亚多语言

16k

支持

不支持

不支持

不支持

不支持

俄语

通用-俄语

16k

支持

支持

不支持

不支持

不支持

越南语

通用-越南语

16k

支持

支持

不支持

不支持

不支持

通用-越南语客服通用

8k

支持

支持

不支持

不支持

不支持

东南亚多语言

16k

支持

不支持

不支持

不支持

不支持

法语

通用-法语

16k

支持

支持

不支持

不支持

不支持

德语

通用-德语

16k

支持

支持

不支持

不支持

不支持

意大利语

通用-意大利语

16k

支持

不支持

不支持

不支持

不支持

印地语

通用-印地语

16k

支持

不支持

不支持

不支持

不支持

马来语

通用-马来语

16k

支持

不支持

不支持

不支持

不支持

通用-马来语客服通用

8k

支持

不支持

不支持

不支持

不支持

东南亚多语言

16k

支持

不支持

不支持

不支持

不支持

菲律宾语

通用-菲律宾语

16k

支持

支持

不支持

不支持

不支持

电话客服(通用)

8k

支持

支持

不支持

不支持

不支持

东南亚多语言

16k

支持

不支持

不支持

不支持

不支持

泰米尔语

通用-泰米尔语

16k

支持

不支持

不支持

不支持

不支持

葡萄牙语

通用-葡萄牙语

16k

支持

支持

不支持

不支持

不支持

土耳其语

通用-土耳其语

16k

支持

不支持

不支持

不支持

不支持

波兰语

通用-波兰语

16k

支持

不支持

不支持

不支持

不支持

乌克兰语

通用-乌克兰语

16k

支持

不支持

不支持

不支持

不支持

罗马尼亚语

通用-罗马尼亚语

16k

支持

不支持

不支持

不支持

不支持

荷兰语

通用-荷兰语

16k

支持

不支持

不支持

不支持

不支持

希腊语

通用-希腊语

16k

支持

不支持

不支持

不支持

不支持

匈牙利语

通用-匈牙利语

16k

支持

不支持

不支持

不支持

不支持

爪哇语

通用-爪哇语

16k

支持

不支持

不支持

不支持

不支持

孟加拉语

通用-孟加拉语

16k

支持

不支持

不支持

不支持

不支持

缅甸语

通用-缅甸语

16k

支持

不支持

不支持

不支持

不支持

老挝语

通用-老挝语

16k

支持

不支持

不支持

不支持

不支持

斯瓦希里语

通用-斯瓦希里语

16k

支持

不支持

不支持

不支持

不支持

阿塞拜疆语

通用-阿塞拜疆语

16k

支持

不支持

不支持

不支持

不支持

波斯语

通用-波斯语

16k

支持

不支持

不支持

不支持

不支持

僧伽罗语

通用-僧伽罗语

16k

支持

不支持

不支持

不支持

不支持

加泰罗尼亚语

通用-加泰罗尼亚语

16k

支持

不支持

不支持

不支持

不支持

高棉语

通用-高棉语

16k

支持

不支持

不支持

不支持

不支持

希伯来语

通用-希伯来语

16k

支持

不支持

不支持

不支持

不支持

克罗地亚语

通用-克罗地亚语

16k

支持

不支持

不支持

不支持

不支持

豪萨语

通用-豪萨语

16k

支持

不支持

不支持

不支持

不支持

马拉地语

通用-马拉地语

16k

支持

不支持

不支持

不支持

不支持

泰卢固语

通用-泰卢固语

16k

支持

不支持

不支持

不支持

不支持

旁遮普语

通用-旁遮普语

16k

支持

不支持

不支持

不支持

不支持

瑞典语

通用-瑞典语

16k

支持

不支持

不支持

不支持

不支持

保加利亚语

通用-保加利亚语

16k

支持

不支持

不支持

不支持

不支持

丹麦语

通用-丹麦语

16k

支持

不支持

不支持

不支持

不支持

挪威语

通用-挪威语

16k

支持

不支持

不支持

不支持

不支持

坎纳达语

通用-坎纳达语

16k

支持

不支持

不支持

不支持

不支持

马拉雅拉姆语

通用-马拉雅拉姆语

16k

支持

不支持

不支持

不支持

不支持

捷克语

通用-捷克语

16k

支持

不支持

不支持

不支持

不支持

乌尔都语

通用-乌尔都语

16k

支持

不支持

不支持

不支持

不支持

尼泊尔语

通用-尼泊尔语

16k

支持

不支持

不支持

不支持

不支持

蒙古语(外蒙)

通用-蒙古语(外蒙)

16k

支持

不支持

不支持

不支持

不支持

乌兹别克语

通用-乌兹别克语

16k

支持

不支持

不支持

不支持

不支持

方言

语言

模型名称

采样率

标点

ITN

顺滑

语义断句

声音和文本对齐

粤语

通用-粤语

16k

支持

支持

支持

不支持

支持

电话客服(通用)

8k

支持

支持

支持

不支持

支持

粤中自由说

8k

支持

支持

支持

不支持

不支持

东南亚多语言

16k

支持

不支持

不支持

不支持

不支持

粤语(繁体)

通用-粤语(繁体)

8k

支持

不支持

不支持

不支持

不支持

通用-粤语(繁体)

16k

支持

不支持

不支持

不支持

不支持

四川话

通用-四川话

16k

支持

支持

支持

支持

支持

电话客服(通用)

8k

支持

支持

支持

支持

支持

湖北话

通用-湖北话

16k

支持

支持

支持

支持

支持

通用-湖北话

8k

支持

支持

支持

支持

支持

上海话

通用-上海话

16k

支持

支持

支持

支持

不支持

湖南话

通用-湖南话

16k

支持

支持

支持

支持

支持

河南话

通用-河南话

16k

支持

支持

支持

支持

支持

通用-河南话

8k

支持

支持

支持

支持

支持

浙江话

通用-浙江话

16k

支持

支持

支持

支持

不支持

东北话

通用-东北话

16k

支持

支持

支持

支持

支持

山东话

通用-山东话

16k

支持

支持

支持

支持

支持

天津话

通用-天津话

16k

支持

支持

支持

支持

支持

陕西话

通用-陕西话

16k

支持

支持

支持

支持

支持

山西话

通用-山西话

16k

支持

支持

支持

支持

支持

贵州话

通用-贵州话

16k

支持

支持

支持

支持

支持

云南话

通用-云南话

16k

支持

支持

支持

支持

支持

甘肃话

通用-甘肃话

16k

支持

支持

支持

支持

支持

苏州话

通用-苏州话

16k

支持

支持

支持

支持

不支持

闽南语

通用-闽南语

16k

支持

支持

支持

支持

不支持

江西话

通用-江西话

16k

支持

支持

支持

支持

支持

宁夏话

通用-宁夏话

16k

支持

支持

支持

支持

支持

广西话

通用-广西话

16k

支持

支持

支持

支持

支持

通用-广西话

8k

支持

支持

支持

支持

支持

中文普通话

识音石 V1 - 端到端模型,教育内容分析,医疗内容分析,新闻媒体内容分析,娱乐视频内容分析,音视频离线转写(升级版),新零售领域识别模型,出行领域识别模型,汽车领域

16k

支持

支持

支持

支持

支持

中英自由说

16k

支持

支持

支持

支持

不支持

识音石 V1 - 端到端模型

8k

支持

支持

支持

支持

支持

东南亚多语言

16k

支持

不支持

不支持

不支持

不支持

服务状态码

状态码及处理方法请参见错误码查询:录音文件识别。