接口说明

对一分钟内的短语音进行识别,适用于对话聊天、控制口令、语音输入法、语音搜索等较短的语音识别场景。

使用须知

注意

如需使用Android/iOS SDK,请参见移动端接口说明

  • 支持的输入格式:PCM编码(无压缩的PCM或WAV文件)、WAV、OPUS、AMR格式单声道(mono)音频文件,16bit采样位数。

  • 音频采样率:8000 Hz、16000 Hz。

  • 时长限制:语音数据时长不能超过60s。

  • 音频文件大小:不超过2 MB。

  • 设置返回结果:

    • 是否返回中间识别结果。

    • 是否在后处理中添加标点。

    • 是否将中文数字转为阿拉伯数字输出。

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

    目前支持的语种和方言模型如下:

    • 语种

      语言

      模型名称

      采样率

      标点

      ITN

      顺滑

      语义断句

      声音和文本对齐

      英语

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

      16k

      支持

      支持

      支持

      不支持

      支持

      中英自由说

      16k

      支持

      支持

      支持

      支持

      不支持

      电话客服(通用)

      8k

      支持

      支持

      支持

      不支持

      不支持

      日语

      通用-日语

      16k

      支持

      不支持

      不支持

      不支持

      不支持

      西班牙语

      通用-西班牙语

      16k

      支持

      不支持

      不支持

      不支持

      不支持

      阿拉伯语

      通用-阿拉伯语

      16k

      支持

      不支持

      不支持

      不支持

      不支持

      哈萨克语

      通用-哈萨克语

      16k

      支持

      不支持

      不支持

      不支持

      不支持

      韩语

      通用-韩语

      16k

      支持

      不支持

      不支持

      不支持

      不支持

      泰语

      通用-泰语

      16k

      支持

      不支持

      不支持

      不支持

      不支持

      印尼语

      通用-印尼语

      16k

      支持

      不支持

      不支持

      不支持

      不支持

      电话客服(通用)

      8k

      支持

      不支持

      不支持

      不支持

      不支持

      俄语

      通用-俄语

      16k

      支持

      不支持

      不支持

      不支持

      不支持

      越南语

      通用-越南语

      16k

      支持

      不支持

      不支持

      不支持

      不支持

      法语

      通用-法语

      16k

      支持

      不支持

      不支持

      不支持

      不支持

      德语

      通用-德语

      16k

      支持

      不支持

      不支持

      不支持

      不支持

      意大利语

      通用-意大利语

      16k

      支持

      不支持

      不支持

      不支持

      不支持

      印地语

      通用-印地语

      16k

      支持

      不支持

      不支持

      不支持

      不支持

      马来语

      通用-马来语

      16k

      支持

      不支持

      不支持

      不支持

      不支持

      菲律宾语

      通用-菲律宾语

      16k

      支持

      不支持

      不支持

      不支持

      不支持

      电话客服(通用)

      8k

      支持

      不支持

      不支持

      不支持

      不支持

      泰米尔语

      通用-泰米尔语

      16k

      支持

      不支持

      不支持

      不支持

      不支持

      葡萄牙语

      通用-葡萄牙语

      16k

      支持

      不支持

      不支持

      不支持

      不支持

      土耳其语

      通用-土耳其语

      16k

      支持

      不支持

      不支持

      不支持

      不支持

      波兰语

      通用-波兰语

      16k

      支持

      不支持

      不支持

      不支持

      不支持

      乌克兰语

      通用-乌克兰语

      16k

      支持

      不支持

      不支持

      不支持

      不支持

      罗马尼亚语

      通用-罗马尼亚语

      16k

      支持

      不支持

      不支持

      不支持

      不支持

      荷兰语

      通用-荷兰语

      16k

      支持

      不支持

      不支持

      不支持

      不支持

    • 方言

      语言

      模型名称

      采样率

      标点

      ITN

      顺滑

      语义断句

      声音和文本对齐

      粤语

      通用-粤语

      16k

      支持

      支持

      支持

      不支持

      支持

      电话客服(通用)

      8k

      支持

      支持

      支持

      不支持

      支持

      四川话

      通用-四川话

      16k

      支持

      支持

      支持

      支持

      支持

      电话客服(通用)

      8k

      支持

      支持

      支持

      支持

      支持

      湖北话

      通用-湖北话

      16k

      支持

      支持

      支持

      支持

      支持

      通用-湖北话

      8k

      支持

      支持

      支持

      支持

      支持

      上海话

      通用-上海话

      16k

      支持

      支持

      支持

      支持

      不支持

      湖南话

      通用-湖南话

      16k

      支持

      支持

      支持

      支持

      支持

      河南话

      通用-河南话

      16k

      支持

      支持

      支持

      支持

      支持

      通用-河南话

      8k

      支持

      支持

      支持

      支持

      支持

      浙江话

      通用-浙江话

      16k

      支持

      支持

      支持

      支持

      不支持

      东北话

      通用-东北话

      16k

      支持

      支持

      支持

      支持

      支持

      山东话

      通用-山东话

      16k

      支持

      支持

      支持

      支持

      支持

      天津话

      通用-天津话

      16k

      支持

      支持

      支持

      支持

      支持

      陕西话

      通用-陕西话

      16k

      支持

      支持

      支持

      支持

      支持

      山西话

      通用-山西话

      16k

      支持

      支持

      支持

      支持

      支持

      贵州话

      通用-贵州话

      16k

      支持

      支持

      支持

      支持

      支持

      云南话

      通用-云南话

      16k

      支持

      支持

      支持

      支持

      支持

      甘肃话

      通用-甘肃话

      16k

      支持

      支持

      支持

      支持

      支持

      维吾尔语

      通用-维吾尔语

      16k

      不支持

      不支持

      不支持

      不支持

      不支持

      通用-维吾尔语

      8k

      不支持

      不支持

      不支持

      不支持

      不支持

      苏州话

      通用-苏州话

      16k

      支持

      支持

      支持

      支持

      不支持

      闽南语

      通用-闽南语

      16k

      支持

      支持

      支持

      支持

      不支持

      江西话

      通用-江西话

      16k

      支持

      支持

      支持

      支持

      支持

      宁夏话

      通用-宁夏话

      16k

      支持

      支持

      支持

      支持

      支持

      广西话

      通用-广西话

      16k

      支持

      支持

      支持

      支持

      支持

      通用-广西话

      8k

      支持

      支持

      支持

      支持

      支持

      中文普通话

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

      16k

      支持

      支持

      支持

      支持

      支持

就近地域智能接入

一句话识别支持就近地域智能接入,域名为nls-gateway.aliyuncs.com

推荐终端用户使用就近地域接入域名。根据调用接口时客户端所在的地理位置,系统会自动解析到最近的某个具体地域的服务器。例如在北京地域发起请求,系统会自动解析到北京地域的服务器,与指定域名nls-gateway-cn-beijing.aliyuncs.com实现效果一致。

服务地址

访问类型

说明

URL

外网访问(默认上海地域)

所有服务器均可使用外网访问URL(SDK中默认设置了外网访问URL)。

  • 上海:wss://nls-gateway-cn-shanghai.aliyuncs.com/ws/v1

  • 北京:wss://nls-gateway-cn-beijing.aliyuncs.com/ws/v1

  • 深圳:wss://nls-gateway-cn-shenzhen.aliyuncs.com/ws/v1

ECS内网访问

使用阿里云上海、北京、深圳ECS(即ECS地域为华东2(上海)、华北2(北京)、华南1(深圳)),可使用内网访问URL。 ECS的经典网络不能访问AnyTunnel,即不能在内网访问语音服务;如果希望使用AnyTunnel,需要创建专有网络在其内部访问。

说明

  • 使用内网访问方式,将不产生ECS实例的公网流量费用。

  • 关于ECS的网络类型请参见网络类型

  • 上海:ws://nls-gateway-cn-shanghai-internal.aliyuncs.com:80/ws/v1

  • 北京:ws://nls-gateway-cn-beijing-internal.aliyuncs.com:80/ws/v1

  • 深圳:ws://nls-gateway-cn-shenzhen-internal.aliyuncs.com:80/ws/v1

交互流程

交互流程
说明

  • 所有服务端的响应都会在返回信息的header包含表示本次识别任务的task_id参数,请记录该值,如果发生错误,请将task_id和错误信息提交到工单。

  • 交互流程图为Java SDK、C++ SDK、iOS SDK、Android SDK的交互流程,不包含RESTful API的交互流程,RESTful API的交互流程图请参见RESTFUL API

1.鉴权

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

2.开始识别

客户端发起一句话识别请求,服务端确认请求有效。

其中在请求消息中需要进行参数设置,各参数由SDK中SpeechRecognizer对象的相关set方法设置,各参数含义如下。

参数

类型

是否必选

说明

appkey

String

管控台创建的项目Appkey。

format

String

音频编码格式,默认值:PCM。

支持格式:PCM编码、16bit采样位数、单声道。

sample_rate

Integer

音频采样率,默认值:16000 Hz。

根据音频采样率在管控台对应项目中配置支持该采样率及场景的模型。

enable_intermediate_result

Boolean

是否返回中间识别结果,默认值:False。

enable_punctuation_prediction

Boolean

是否在后处理中添加标点,默认值:False。

enable_inverse_text_normalization

Boolean

是否在后处理中执行ITN(逆文本规整,inverse text normalization)。设置为True时,中文数字将转为阿拉伯数字输出,默认值:False。

customization_id

String

自学习模型ID,具体可参见定制语言模型

vocabulary_id

String

定制泛热词ID,具体可参见创建热词

enable_voice_detection

Boolean

是否启动语音检测。默认值:False。

max_start_silence

Integer

当enable_voice_detection设置为true时,该参数生效。表示允许的最大开始静音时长。建议取值范围:(0,60000]。单位:毫秒。

超出后(即开始识别后多时间没有检测到声音)服务端将会发送TaskFailed事件,结束本次识别。

max_end_silence

Integer

当enable_voice_detection设置为true时,该参数生效。表示允许的最大结束静音时长。单位:毫秒,取值范围:200ms~6000ms。

超出时长服务端会发送RecognitionCompleted事件,结束本次识别(需要注意后续的语音将不会进行识别)。

audio_address

String

可通过公网访问的音频文件下载链接。推荐使用阿里云OSS,具体请参见通过OSS如何获取访问URL

3.发送数据

循环发送语音数据,持续接收识别结果。

  • 若enable_intermediate_result设置为true, 服务端会持续多次返回RecognitionResultChanged消息,即中间识别结果,示例如下:

    北京的天
    北京的天气

    服务端返回的响应消息:

    {
            "header": {
                    "namespace": "SpeechRecognizer",
                    "name": "RecognitionResultChanged",
                    "status": 20000000,
                    "message_id": "e06d2b5d50ca40d5a50d4215c7c8****",
                    "task_id": "4c3502c7a5ce4ac3bdc488749ce4****",
                    "status_text": "Gateway:SUCCESS:Success."
            },
            "payload": {
                    "result": "北京的天气"
            }
    }

    header对象参数说明:

    参数

    类型

    说明

    namespace

    String

    消息所属的命名空间。

    name

    String

    消息名称,RecognitionResultChanged表示获取到中间识别结果。

    status

    Integer

    状态码,表示请求是否成功,见服务状态码。

    status_text

    String

    状态消息。

    task_id

    String

    任务全局唯一ID,请记录该值,便于排查问题。

    message_id

    String

    本次消息的ID。

    payload对象参数说明:

    参数

    类型

    说明

    result

    String

    中间识别结果。

    说明

    最后一次获取的中间识别结果与最终的识别的结果不一定相同,请以RecognitionCompleted消息的最终识别结果为准。

  • 若enable_intermediate_result设置为false, 此步骤服务端不返回任何消息。

4.结束识别

客户端发送停止一句话识别请求,通知服务端语音数据发送结束,停止语音识别,服务端返回最终识别结果:

{
        "header": {
                "namespace": "SpeechRecognizer",
                "name": "RecognitionCompleted",
                "status": 20000000,
                "message_id": "10490c992aef44eaa4246614838f****",
                "task_id": "4c3502c7a5ce4ac3bdc488749ce4****",
                "status_text": "Gateway:SUCCESS:Success."
        },
        "payload": {
                "result": "北京的天气。"
        }
}

header对象参数说明:

参数

类型

说明

namespace

String

消息所属的命名空间。

name

String

消息名称,RecognitionCompleted表示识别完成。

status

Integer

状态码,表示请求是否成功,见服务状态码。

status_text

String

状态消息。

task_id

String

任务全局唯一ID,请记录该值,便于排查问题。

message_id

String

本次消息的ID,由SDK自动生成。

payload对象参数说明:

参数

类型

说明

result

String

一句话识别的结果。

服务状态码

在服务的每一次响应中,都包含status字段,即服务状态码,此处列举通用错误码、网关错误码、配置错误码表格,其取值含义如下。

  • 通用错误码

    错误码

    原因

    解决办法

    40000001

    身份认证失败

    检查使用的令牌是否正确,是否过期。

    40000002

    无效的消息

    检查发送的消息是否符合要求。

    40000010

    免费试用已到期

    请前往控制台开通商用服务。

    403

    令牌过期或无效的参数

    1. 检查使用的令牌是否过期。

    2. 检查参数值设置是否合理。

    40000004

    空闲超时

    确认是否长时间(10秒)未发送数据到服务端。

    40000005

    请求数量过多

    检查是否超过了并发连接数或者每秒钟请求数。如果超过并发数,建议从免费版升级到商用版,或者商用版扩容并发资源。

    41050008/41010101

    采样率不匹配

    检查实际语音的采样率(一句话识别场景ASR只支持8K 16bit或者16K 16bit,单声道)、代码调用时设置的采样率(8K或者16K)和控制台上Appkey绑定的ASR模型采样率是否一致。

    41010120

    客户端超时错误

    客户端连续10秒及以上未发送数据,导致客户端超时错误。

    41010104

    语音时长超过限制

    一句话识别要求语音不超过60秒。

    41010105

    无有效语音

    在启动语音检测时(enable_voice_detection),如果未检测到有效语音则返回此状态码。

    40000009

    使用了OPUS语音编码格式且一次性发送的数据包过大

    调整接口单次发送数据包的大小,例如每次只发送1600字节。

    40000000

    默认的客户端错误码

    查看错误消息或提交工单。

    50000000

    默认的服务端错误

    如果偶现可以忽略,重复出现请提交工单。

    50000001

    内部调用错误

    如果偶现可以忽略,重复出现请提交工单。

    52010001

    内部调用错误

    如果偶现可以忽略,重复出现请提交工单。

    51070103

    后处理服务参数配置错误

    若使用的模型为非电话—通用行业—英语模型,请通过管控台再次选择模型,刷新服务端参数。若仍无法解决问题,请提交工单。

  • 网关错误

    错误码

    原因

    解决办法

    40010001

    不支持的接口

    使用了不支持的接口,如果使用SDK请提交工单。

    40010002

    不支持的指令

    使用了不支持的指令,或者请求参数的类型设置错误,请先确认参数和指令格式是否合法,如未解决请提交工单。

    40010003

    无效的指令

    指令格式错误,如果使用SDK请提交工单。

    40010004

    客户端提前断开连接

    检查是否在请求正常完成之前关闭了连接。

    40010005

    任务状态错误

    发送了当前任务状态不能处理的指令。

  • 配置错误

    错误码

    原因

    解决办法

    40020105

    应用不存在

    解析路由时找不到应用。

    40020106

    Appkey和Token不匹配

    检查应用Appkey是否正确,是否与令牌归属同一个账号。

    40020503

    子账户鉴权失败

    使用父账户对调用的子账户授权POP API的访问权限。

阿里云首页 智能语音交互 相关技术圈