专栏首页云加头条智能云上手指南:实时流式语音识别 iOS SDK
原创

智能云上手指南:实时流式语音识别 iOS SDK

6月21日,腾讯云在2017「云+未来」峰会上推出了战略新品——智能云,宣布将腾讯积累近20年的AI能力向政府、企业和开发者开放,其中首批开放计算机视觉、智能语音识别、自然语言处理的三大核心能力。腾讯云技术社区将陆续推出系列文章,介绍普通开发者如何快速接入并使用这三大 AI 能力。

本文将为大家讲解如何上手腾讯云提供的智能语音识别服务中的实时流式语音识别,主要是 iOS 开发 SDK 的一些使用经验。

SDK 获取

实时流式语音识别的 iOS SDK 的下载地址:iOS SDK

更多示例可参考 Demo:iOS Demo

开发准备

  • 只支持 iOS 8.0 及以上版本,不支持 bitcode 版本;
  • 实时流式语音识别,需要手机能够连接网络(GPRS、3G 或 WiFi 网络等);
  • 从控制台获取 APP ID、SecretID、SecretKey,详情参考基本概念

SDK 配置

SDK 导入

iOS SDK 压缩包名称为: QCloudAAIClientSDK.zip。压缩包中包含了一个.a 静态库和一个头文件文件夹 Headers。

工程配置

在 Build Settings 中设置 Other Linker Flags,加入参数-ObjC

在工程info.plist 文件中设置:

  1. App Transport Security Settings 类型,然后在App Transport Security Settings下添加Allow Arbitrary Loads 类型 Boolean,值设为 YES
  2. 在程序中初始化 QCloudAAIClient 的实例对象 myClient ,[myClient openHTTPSrequset:YES];(程序可以支持 https)
  3. 在工程info.plist文件中添加 Privacy - Microphone Usage Description,获取系统的麦克风的权限;
  4. 在工程中添加依赖库,在 build Phases Link Binary Whith Libraries 中添加以下库:
  • libstdc++.6.0.9.tbd
  • libc++.tdb

签名获取

移动端 SDK 中用到的签名,建议由业务服务器来生成,并由移动端向业务服务器请求。业务侧服务器需要进行签名的生成,具体生成和使用请参照签名鉴权 。识别SDK签名必须实现QCloudAAIClient的 QCloudAAIGetSignDelegate 的协议,对由SDK 提供(NSString*)param,进行加密处理;

// 获取请求的签名
(NSString *)getRequestSign:(NSString*)param;

初始化

引入上传 SDK 的头文件 QCloudAAIClient .h,使用目录操作时,需要先实例化 QCloudAAIClient 对象。

方法原型

(id)initWithAppid:(NSString *)appid secretid:(NSString *)sid  projectId:(NSString *)pid ;

参数说明

参数名称

类型

是否必填

说明

appld

NSString*

项目ID,即 APP ID

sid

NSString*

项目的 SecretID

pid

NSString*

项目的 ProjectID

STEP1:初始化 QCloudAAIClient

示例

QCloudAAIClient *client= [[QCloudAAIClient alloc] initWithAppid:appid secretid:sid projectId:projectId]];

STEP2:开始语音识别

(BOOL)startDetectionWihtCompletionHandle:(QCloudAAICompletionHandler)handler stateChange:(QCloudAAIChangeHandler)stateChange;

示例


 client = [[QCloudAAIClient alloc] initWithAppid:appid secretid:sid projectId:projectId];
  client.delegate = self;
 [client startDetectionWihtCompletionHandle:^(QCloudAAIRsp *rsp) {
        if (rsp.retCode == 0) {
            UITextView *strong = temp;
            if (![t isEqualToString:rsp.voiceId]) {
                t = rsp.voiceId;
                previous = strong.text;
            }
            strong.text= [NSString stringWithFormat:@"%@%@",previous,rsp.text];
        }else{
            NSLog(@"语音识别失败code= %dmsg:%@",rsp.retCode,rsp.descMsg);
        }

    }
    stateChange:^(QCloudAAIState state) {
        UITextView *strong = dTemp;
        if (state == QCloudAAIStateOpen) {
            strong.text = [NSString stringWithFormat:@"状态:%@",@"识别中"] ;
        }else if(state == QCloudAAIStateClose){
             strong.text = [NSString stringWithFormat:@"状态:%@",@"识别停止"] ;
        }else if(state == QCloudAAIStateFail){
            strong.text = @"麦克风权限未开,识别失败";
        }
    }];

STEP3:停止语音识别

[client stop];

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 腾讯国际大赛再“亮剑”,腾讯云打开OCR技术场景应用新时代

    腾讯数平精准推荐团队首次出征便凭借自研的“时空上下文感知的OCR深度学习算法” 斩获四项冠军。腾讯的OCR技术已在多种场景下落地,推动各个行业智能化改革。

    云加社区专栏
  • 叶辉:腾讯云提供电商平台业务架构优化方案

    随着电商行业的蓬勃发展,大多数电商平台建立在原的IDC环境中的业务架构逐渐暴露了一些弊端。腾讯云架构师叶辉通过一个真实用户案例讲述了腾讯云如何从用户接入、网络完...

    云加社区专栏
  • 王之捷:AI智能云端架构大幅提升智能语音识别能力

    腾讯云AI业务架构师王之捷分享了腾讯云在人工智能、尤其在智能云方面的最新进展,以及如何将这些能力应用到工作当中。 [1506418627111_7828_150...

    云加社区专栏
  • Linux各种版本

     1.1   Fedora Core和Fedora     一开始总搞不清楚 Fedora Core和Fedora有什么关系?有什么不同,现在终于明白了,自从F...

    233333
  • 设计模式(一),创建模式

    1、工厂模式 通过工厂类,创建不同的对象。工厂模式适合:凡是出现了大量的产品需要创建,并且具有共同的接口时,可以通过工厂方法模式进行创建。

    写PHP的老王
  • Python2input和raw_inp

    Python3的input和Python的raw_inpu一样,用户交互数据数据的时候不需要加双引号,用户输入数据的时候默认是字符串类型

    用户2398817
  • Python基础 mkdir()和mkdirs()的区别

    在日常的生活工作中,经常需要手动在电脑中的各个文件和目录当中穿梭。在Python 3中,为我们提供了一个OS标准库,这个库使得我们对文件和目录的操作自动化,如果...

    算法与编程之美
  • Python|mkdir和makedirs的用法及区别

    在平常的生活工作中,我们经常需要手动在电脑中的各个文件和目录当中穿梭。在Python 3中,为我们提供了一个OS标准库,这个库使得我们对文件和目录的操作自动化,...

    算法与编程之美
  • 微软官方宣布以 75 亿美元收购 GitHub!

    雷锋网消息,6 月 4 日,微软在官方博客正式宣布,以 75 亿美元的价格收购代码托管平台 GitHub。至此,此前在网络上已经盛传良久的收购传闻得以坐实。

    AI研习社
  • Python创建目录文件夹

    Python对文件的操作还算是方便的,只需要包含os模块进来,使用相关函数即可实现目录的创建。

    周小董

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动