项目需求:开发一个可以调用腾讯云语音识别接口的iOS应用
使用 iOS SDK 方式接入,以一句话识别为例,在《腾讯云语音识别iOS SDK 开发代码模块分析》这篇文档中,我们分析了各模块代码的功能。大致对demo里重要文件的功用有了大致的认识。但是对于一些可能会遇到的问题,我们再次分享一下使用中的心得体验。
开发准备
SDK 获取
录音文件识别的 iOS SDK 以及 Demo 的下载地址:QCloud SDK
使用须知
- QCloudSDK 支持 iOS 9.0 及以上版本。
- 录音文件识别,需要手机能够连接网络(GPRS、3G 或 Wi-Fi 网络等)。
- 从控制台获取 AppID、SecretID、SecretKey、ProjectId 。
- 运行 Demo 必须设置 AppID、SecretID、SecretKey、ProjectId 。
- 进入 API 密钥管理页面 ,获取 AppID、SecretID 与 SecretKey 。
对于初次使用腾讯云语音识别iOS SDK做开发的同学,可能会遇到以下问题,搜集如下:
1. SDK 导入文件
iOS SDK 压缩包名称为:QCloudSDK_v2.0.7.zip,压缩包中包含 Sample Code 和 QCloudSDK
链接:https://cloud.tencent.com/document/product/1093/35723#QCloudRealTimeRecognizerDelegate
具体流程
1.将在腾讯云语音识别官方下载的SDK拖入到项目工程的文件目录下
注意事项:
加载文件必须是这个目录(上图蓝色阴影) “QCloudSDKDemo_v2.1.3”,或者是其他的版本,重点是要是这个工程,加载了父文件夹或者子文件夹都有可能导致工程的编译失败。
2. 修改QDDefine.h文件,配置好appid和密钥
第二个可能会出错是地方,是在配置配置APPID和密钥文件的时候。
只能在QDDefine.h,只有在这个文件里配置APPID和密钥是有效的。这是一个全局的配置方式。由于官方demo集成度较高,在这里配置身份信息的话,相对保险一些。
3. 配置的时候要输入APPID
第三个可能会出错的地方,是在配置的时候注意要输入的是APPID,而不是账户ID,如果错误的话,竟然也可以调用一句话识别,是因为官方没有设置对一句话识别用户的APPID的限制,但是不能调用其他的两个接口(实时语音识别,文件识别)。报错如下:
需要说明的是腾讯云 API 会对每个访问请求进行身份验证,即每个请求都需要在公共请求参数中包含签名信息(Signature)以验证请求者身份。 签名信息由安全凭证生成,安全凭证包括 SecretId 和 SecretKey;若用户还没有安全凭证,请前往 云API密钥页面 申请,否则无法调用云 API 接口。
3.1. 申请安全凭证
在第一次使用云 API 之前,请前往 云 API 密钥页面 申请安全凭证。 安全凭证包括 SecretId 和 SecretKey:
- SecretId 用于标识 API 调用者身份
- SecretKey 用于加密签名字符串和服务器端验证签名字符串的密钥。
- 用户必须严格保管安全凭证,避免泄露。
申请安全凭证的具体步骤如下:
a. 登录 腾讯云管理中心控制台。
b. 前往 云 API 密钥 的控制台页面.
c. 在 云 API 密钥 页面,单击【新建密钥】即可以创建一对 SecretId/SecretKey。
注意:每个账号最多可以拥有两对 SecretId/SecretKey。
4. 另注:
在工程中添加依赖库,在建阶段链接二进制与库中添加以下库:
§ AVFoundation.framework
§ AudioToolbox.framework
§ QCloudSDK.framework
§ CoreTelephony.framework
§ libWXVoiceSpeex.a
添加方式:右键点击Xcode中的工程文件,在出现的界面中,选中TARGETS中应用,在出现的界面中选中Build Phase->Link Binary With Libraries,点击界面中的“ ”图标,在弹出的界面中选择此 5 个Framework即可,添加完成效果图如图所示。
如果不添加这些依赖库