全部产品

移动端SDK说明

更新时间:2021-01-12 13:43:22

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

使用须知

  • 输入格式: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

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

错误码

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