全部产品

移动端SDK说明

更新时间:2020-10-26 20:22:37

本文为您介绍传入录音文件,完成音频文件识别并返回结果的流程说明。

使用须知

  • 输入格式:WAV/MP3/AAC。

  • 时长限制:识别语音文件大小不能超过100 MB。

  • 设置多语言识别:在管控台编辑项目中进行模型选择,详情请参见管理项目

服务地址

访问类型

URL

说明

外网访问

https://nls-gateway.cn-shanghai.aliyuncs.com/stream/v1/FlashRecognizer

所有服务器均可使用外网访问URL。

交互流程

下图展示iOS SDK和Android SDK的交互流程。

交互流程

1. 鉴权和初始化

客户端与服务端建立连接时,使用Access Token进行鉴权。关于Token获取请参见获取Token

初始化参数表

参数

类型

是否必选

说明

url

String

语音服务URL地址。

app_key

String

管控台创建项目的appkey。

token

String

请确保该Token可以使用并在有效期内。

说明

Token可以在初始化时设置,也可通过参数设置进行更新。

device_id

String

设备标识,唯一表示一台设备(如Mac地址/SN/UniquePsuedoID)。

2. 开始文件识别

客户端发起文件识别请求时,需要通过接口传入JSON格式的params参数。

参数

类型

是否必选

说明

file_path

String

需要进行识别的文件绝对路径。

direct_ip

String

您可自行完成服务地址DNS解析,传入IP地址进行访问。

nls_config

JsonObject

服务细节参数配置。

其中,nls_config字段用于设置服务的具体配置参数,多与识别效果相关。

参数

类型

是否必选

说明

format

String

音频编码格式,可选,支持WAV/MP3/AAC格式。

sample_rate

Integer

识别模型使用的采样率,一般不设置,在管控台进行配置。

enable_inverse_text_normalization

Boolean

是否打开ITN,中文数字将转为阿拉伯数字输出,默认值为 false,开启时需要设置version为”4.0”, enable_unify_post 必须为 true 。注意:不会对词信息进行ITN转换。

max_end_silence

Integer

允许的最大结束静音,默认值450,单位是毫秒。

customization_id

String

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

vocabulary_id

String

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

enable_word_level_result

Boolean

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

first_channel_only

Boolean

是否开启只处理第一个声道,默认false。

3. 获取识别结果

启动任务后一段时间(根据文件长度和网络情况而定)将收到EVENT_FILE_TRANS_RESULT事件,即完整转写结果,示例如下。

{
    "task_id":"e76f979b33d9443eb6fbf770315a****",
    "status":20000000,
    "message":"SUCCESS",
    "flash_result":{
        "duration":299,
        "completed":true,
        "sentences":[
            {
                "text":"啊,",
                "begin_time":3700,
                "end_time":3940,
                "channel_id":0,
                "words":[
                    {
                        "text":"啊",
                        "begin_time":3700,
                        "end_time":3940,
                        "punc":","
                    }
                ]
            },
            {
                "text":"我在哪呀了。",
                "begin_time":3940,
                "end_time":4720,
                "channel_id":0,
                "words":[
                    {
                        "text":"我",
                        "begin_time":3940,
                        "end_time":4040,
                        "punc":","
                    },
                    {
                        "text":"在哪",
                        "begin_time":4040,
                        "end_time":4340,
                        "punc":","
                    },
                    {
                        "text":"呀了",
                        "begin_time":4340,
                        "end_time":4720,
                        "punc":","
                    }
                ]
            }
        ]
    }
}

响应消息为JSON格式,包含如下字段。

字段

说明

task_id

任务ID,任务唯一标识。

status

状态码

message

状态消息

flash_result

识别结果对象

其中,flash_result对象包括如下字段。

字段

说明

sentences

句子级别的识别结果,是一个对象数组。

其中,sentences数组对象包含如下字段。

字段

说明

text

识别结果。

begin_time

识别结果的语音起点在音频流的时间偏移,单位毫秒。

end_time

识别结果的语音尾点在音频流的时间偏移,单位毫秒。

错误码

错误码信息,请参见错误码