百度语音识别技术
优势能力
完全永久免费
业界首创完全永久免费新形式,为开发者提供基于百度大脑的业界顶级声学模型和语音模型。完全免费,永久使用,彻底摆脱有效期限制。
全平台REST API
行业率先推出语音识别全平台REST API,再也不用纠结没有SDK、SDK包太大,采用http方式请求,可适用于任何平台的语音识别,给你最大自由度!
离线在线融合模式
SDK可以根据当前网络状况及指令的类型,自动判断使用本地引擎还是云端引擎进行语音识别,极速识别、流量节省两不误!
深度语义解析
支持多达35个垂类领域的语义理解定制,以及和问答对设置。让你的应用理解用户的意图!
场景识别定制
开发者可根据使用场景,自定义设置识别垂类模型。有音乐、视频、地图、游戏、电商共17个垂类可供选择。一步设置,精准到位!
自定义上传语料、训练模型
开发者可以自行上传词库,训练专属识别模型。提交的语料越多、越全,语音识别的效果提升也会越明显。
接入指南
注册百度开发者
使用百度语音技术服务首先需要注册成为百度开发者,如果您在登陆百度账号后进入“应该管理”出现如下提示,说明您的百度账号还没有注册成为百度开发者。请按要求填写开发者信息并完成百度开发者的注册。
创建应用
在首页登陆已经注册为开发者的百度账号,然后点击页面上方的“应用管理”进入应用管理页面。如果您之前在创建过应用,则会出现您之前曾经创建过的应用;如果您之前没有创建过应用,则需要新创建一个应用。
1、点击右上角填写应用名称并选择应用垂类信息,即可创建一个新的应用。
2、创建成功后,新创建的应用会出现在应用列表最上方的位置。
3、点击“查看Key”可以查看当前应用的AppID、 API Key、Secret Key信息。
开通服务
如果您曾经在百度开发者中心管理控制台申请开通了语音技术服务,在这里您可以直接使用;对于新创建或从未开通语音技术服务的应用,则需要开通语音技术服务之后才可以使用。
1、点击应用卡片上的按钮,选择“语音识别”服务进行开通。
2、“语音识别”服务开通成功后即可获得50000次/天的在线调用次数配额。
申请提高配额
如果开通服务时初始分配的在线服务调用配额无法满足您的需求,可以申请提高配额。
1、点击对应服务的“管理”在下拉列表中选择“申请提高配额”。填写详细的预计日调用次数、应用介绍等信息后提交。管理员会在1个工作日内完成审核。
2、如果审核通过,则当前应用该服务的日调用次数将不再受配额限制。如果审核被拒绝,您可以再次提交申请。
申请离线授权
选择应用的语音识别的管理菜单,点击“申请离线License”。
选择应用类型为Android或者iOS,填写并提交离线授权所需信息:Android应用为应用包名和签名MD5值,iOS应用为Bundle ID。提交成功后即获取离线识别正式授权。
注:请确保填写提交的信息准确,否则会无法通过离线授权验证导致离线识别不可用。
如果暂时没有应用包名或者签名信息,可以先下载临时License文件,并集成到本地项目中进行测试使用。临时License有效期为30天,失效后请申请正式license,并从您的项目中删除临时的license。
开发集成
前往语音识别服务相关下载页面,下载开发所需的 SDK 及开发文档到本地进行集成开发。
常见问题
Q:语音识别REST API支持的音频格式、采样率有哪些?
A:支持的压缩格式有:pcm(不压缩)、wav、opus、speex、amr、x-flac。原始 PCM 的录音参数必须符合 8k/16k 采样率、16bit 位深、单声道。
Q:语音识别 REST API 最长支持多长的录音?
A: 最长支持60s的录音文件。对文件大小没有限制,只对时长有限制。
Q:语音识别SDK支持的音频格式、采样率有哪些?
A:
Android SDK:支持Android 2.2及以上系统,支持ARM\。安装包最小增加200k,支持8k/16k采样率,支持pcm格式。
iOS SDK:支持iOS 5.0及以上系统,支持ARM-v7\ARM-v7s\ARM64\i386\x86_64架构。安装包最小增加400k,支持8k/16k采样率,支持pcm格式。
Q:什么是语音识别REST API?有什么注意事项?
A:语音识别全平台REST API,采用http方式请求,可适用于任何平台的语音识别。使用REST API,录音、压缩及上传模块需要自行开发。且REST API语音识别暂时不支持语义解析。
Q:百度语音是否单独提供录音功能,以及语音通讯功能?
A:不单独提供独立录音的功能,识别SDK包含语音输入和识别功能。语音通讯功能需开发者自行搭建。
Q:语音识别REST API和SDK的区别是什么?
A: REST API:开发者上传录音——百度语音进行识别——识别结果返回开发者
SDK:百度语音提供从录音到识别结果返回的
Q:语音识别通过哪个接口获取音频信息?
A:
Android SDK:当VoiceClientStatusChangeListener.onClientStatusChange(int status, Object obj) 的status是VoiceRecognitionClient.CLIENT_STATUS_AUDIO_DATA时,obj为byte[]音频数据;
iOS SDK:MVoiceRecognitionClientDelegate的(void)VoiceRecognitionClientWorkStatus:(int) aStatus obj:(id)aObj;的aStatus是EVoiceRecognitionClientWorkStatusNewRecordData时,aObj为NSData音频数据。
数据格式均为pcm,采样率可通过VoiceRecognitionConfig.getSampleRate()/[[BDVoiceRecognitionClient sharedInstance] getCurrentSampleRate]获取,获取的音频格式是位深16bit,单声道。
Q:如何才能提高语音识别的准确率?
A: 自定义语音识别设置:打开百度开放云平台,在创建的应用下进行自定义语音识别设置。上传识别关键词文本,保存并生效。
设置对应的语音识别垂类:在代码中填写识别的垂类领域,识别结果将优先指向已设置的垂类,可以使得识别结果更准确
Q:百度语音SDK与其他百度SDK,或其他第三方SDK冲突时,如何解决?
A: 与其他百度SDK冲突一般是由于使用了相同的基础库galaxy.jar,请检查是否重复导入了该jar包;与其他第三方SDK冲突一般是由于so库的架构不统一,请保证工程libs目录下armeabi/armeabi-v7a/x86/mips目录的so库均一致,如果不能保证一致,则一般只能所有SDK仅使用armeabi架构的so库
Q:首次开启语音识别功能的延迟时间较长,需要如何调控?
A: 首次延迟时间较长一般是由于权限验证造成,可以通过预先调用接口:
(int)verifyApiKey:(NSString)apiKey withSecretKey:(NSString)secretKey;
来进行验证。首次开启语音时就不需要再发送验证请求,从而降低语音识别启动的延迟。
Q:如何在语音识别时获取音频文件?
A:
Api:cp服务器自己备存用户录音信息
Sdk:可以通过CLIENT_STATUS_AUDIO_DATA回调,将回调对象强转成byte[]顺序写入到文件中即可得到原始的音频文件。
Q:语音识别垂类是什么意思?
A: 语音识别垂类就是特指某个领域的意思,开发者可以根据用户使用场景设定特定领域使得识别结果更准确。比如垂直领域设定为”音乐“,则在语音识别时会优先识别为音乐相关的歌曲名歌手名或者歌词。
Q:为什么语音识别Demo的API_Key和Secret_Key是空的还能进行识别呢?我开发的应用的API_Key和Secret_Key是不是必须得填写呢?
A: SDK自带demo用的特殊的方式验证的,故可以不使用AK和SK。开发者自行开发的应用AK和SK是必须填写的,否则无法调用语音识别。