前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >腾讯云语音识别iOS SDK 开发代码模块分析

腾讯云语音识别iOS SDK 开发代码模块分析

原创
作者头像
Aalto
发布2020-04-03 17:57:27
3K0
发布2020-04-03 17:57:27
举报
文章被收录于专栏:晓说AI晓说AI

项目需求:开发一个可以调用腾讯云语音识别接口的iOS应用

以使用 iOS SDK 方式接入,以一句话识别为例,展开对官当demo代码模块的分析。

一句话语音识别,即对60秒之内的短音频文件进行识别,可应用于语音消息转写等场景

接入准备

SDK 获取

一句话识别的 iOS SDK 以及 Demo 的下载地址:iOS SDK

接入须知

· 开发者在调用前请先查看实时语音识别接口说明 ,了解接口的使用要求使用步骤

· 该接口需要手机能够连接网络(GPRS、3G 或 Wi-Fi 网络等),且系统为 iOS 9.0及以上版本。

1. 功能分析

总体来说,功能分为语音数据获取,语音识别

2. 模块划分

2.1 首先要配置安全策略和麦克风的权限

2.1.1安全策略的配置Info.plist:

使用的是 Info.plist 这个文件。

在工程info.plist 添加以下设置:

代码语言:javascript
复制
  <key>NSAppTransportSecurity</key>
  <dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>qcloud.com</key>
        <dict>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <key>NSExceptionMinimumTLSVersion</key>
            <string>TLSv1.2</string>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSRequiresCertificateTransparency</key>
            <false/>
        </dict>
    </dict>
    </dict>
2.1.2申请系统麦克风权限,添加如下内容:
代码语言:javascript
复制
 <key>NSMicrophoneUsageDescription</key>
 <string>需要使用了的麦克风采集音频</string>

2.2 编写代码,发送请求,实现接口调用

配置完成后,就编写代码,通过发送请求,获取我们要是识别的结果,

2.2.1 初始化识别器

1) 该QDDefine_h.m文件下,添加腾讯的APPID信息和密钥信息的配置,根据这个配置再初始化识别器。

代码语言:javascript
复制
#ifndef QDDefine_h
#define QDDefine_h
//#error please replace with your own info
#define kQDAppId @""
#define kQDSecretId @""
#define kQDSecretKey @""
#define kQDProjectId @""

2) 第二种初始化方法

在文件QDOneSentenceRecognizeViewController.m下配置

代码语言:javascript
复制

/**
 * 通过 appId secretId secretKey 初始化
 * @param appid 腾讯云 appId
 * @param secretId 腾讯云 secretId
 * @param secretKey 腾讯云 secretKey
 */
(instancetype)initWithAppId:(NSString *)appid secretId:(NSString *)secretId secretKey:(NSString *)secretKey;

1) 创建 QCloudSentenceRecognizer 实例

代码语言:txt
复制
 QCloudSentenceRecognizer *recognizer = [[QCloudSentenceRecognizer alloc] initWithAppId:appId 
                                              secretId:secretId 
                                           secretKey:secretKey];
  //设置delegate,相关回调方法见QCloudOneSentenceRecognizerDelegate定义
 recognizer.delegate = self;

2)实现此 QCloudSentenceRecognizerDelegate 协议方法

2.2.2调用示例

然后就可以进行相应的语音识别,目前有四种获取数据的方式,分别为a. 通过语音 URL; b. 通过语音数据; c. 通过指定参数调用; d. 通过 SDK 内置录音器调用

· a. 通过语音 URL 调用

代码语言:txt
复制
- (void)recognizeWithUrl {
//语音数据url
NSString *url = @"http://liqiansunvoice-1255628450.cosgz.myqcloud.com/30s.wav";
  //指定语音数据url 语音数据格式 采样率
  [_recognizer recoginizeWithUrl:url voiceFormat:kQCloudVoiceFormatWAV frequence:kQCloudEngSerViceType16k];
}

· b. 通过语音数据调用

代码语言:txt
复制
  - (void)recognizeWithAudioData {
   //语音数据
   NSString *filePath = [[NSBundle mainBundle] pathForResource:@"recordedFile" ofType:@"wav"];
   NSData *audioData = [[NSData alloc] initWithContentsOfFile:filePath];
   //指定语音数据 语音数据格式 采样率
   [_recognizer recoginizeWithData:audioData voiceFormat:kQCloudVoiceFormatWAV frequence:kQCloudEngSerViceType16k];
}

· c. 通过指定参数调用

代码语言:txt
复制
- (void)recognizeWithParams {
   NSString *url = @"http://liqiansunvoice-1255628450.cosgz.myqcloud.com/30s.wav";
   //获取一个已设置默认参数params
   QCloudOneSentenceRecognitionParams *params = [_recognizer defaultRecognitionParams];    
   //通过语音url请求, 此4个参数必须设置
   params.url = url;                           
   //设置语音频数据格式,见kQCloudVoiceFormat定义
   params.voiceFormat = kQCloudVoiceFormatWAV;
   //设置语音数据来源,见QCloudAudioSourceType定义
   params.sourceType = QCloudAudioSourceTypeUrl;
   //设置采样率,见kQCloudEngSerViceType定义
   params.engSerViceType = kQCloudEngSerViceType16k; 
   [_recognizer recognizeWithParams:params];

· d. 通过 SDK 内置录音器调用

代码语言:txt
复制
- (void)recognizeWithRecorder {
   [_recognizer startRecognizeWithRecorder];
}

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 项目需求:开发一个可以调用腾讯云语音识别接口的iOS应用
    • 接入准备
      • SDK 获取
      • 接入须知
    • 1. 功能分析
      • 2. 模块划分
        • 2.1 首先要配置安全策略和麦克风的权限
        • 2.2 编写代码,发送请求,实现接口调用
    相关产品与服务
    语音识别
    腾讯云语音识别(Automatic Speech Recognition,ASR)是将语音转化成文字的PaaS产品,为企业提供精准而极具性价比的识别服务。被微信、王者荣耀、腾讯视频等大量业务使用,适用于录音质检、会议实时转写、语音输入法等多个场景。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档