前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >TRTC 接入实时语音识别

TRTC 接入实时语音识别

原创
作者头像
许岳操
修改于 2021-02-01 03:55:15
修改于 2021-02-01 03:55:15
4.1K00
代码可运行
举报
文章被收录于专栏:技术拓展技术拓展
运行总次数:0
代码可运行

跑通TRTC

环境要求

  • Xcode 11.0及以上版本
  • 请确保您的项目已设置有效的开发者签名

前提条件

您已 注册腾讯云 账号,并完成 实名认证

操作步骤

步骤1:创建新的应用

  1. 登录实时音视频控制台,选择【开发辅助】>【快速跑通Demo】。
  2. 单击【立即开始】,输入应用名称,例如TestTRTC,单击【创建应用】。

步骤2:下载 SDK 和 Demo 源码

  1. 鼠标移动至对应卡片,下载相关 SDK 及配套的 Demo 源码。
    • iOS单击【Github】跳转至 Github(或单击【ZIP】)
    • Mac:单击【Github】跳转至 Github(或单击【ZIP】)
  2. 下载完成后,返回实时音视频控制台,单击【我已下载,下一步】,可以查看 SDKAppID 和密钥信息。

步骤3:配置 Demo 工程文件

  1. 解压 步骤2 中下载的源码包。
  2. 找到并打开GenerateTestUserSig.h文件:适用平台文件相对路径iOSiOS/TRTCScenesDemo/TXLiteAVDemo/Debug/GenerateTestUserSig.hMacMac/TRTCScenesDemo/TRTCDemo/TRTC/GenerateTestUserSig.h
  3. 设置GenerateTestUserSig.h文件中的相关参数:
    • SDKAPPID:默认为0,请设置为实际的 SDKAppID。
    • SECRETKEY:默认为空字符串,请设置为实际的密钥信息。
  1. 返回实时音视频控制台,单击【粘贴完成,下一步】。
  2. 单击【关闭指引,进入控制台管理应用】。

步骤4:编译运行

  1. 在终端窗口进入源码的 TRTCScenesDemo > Podfile 文件所在目录。
  2. 执行pod install命令安装 TRTC SDK,或者执行pod update命令,更新本地库版本。
  3. 使用 XCode(11.0及以上的版本)打开源码目录下的 TXLiteAVDemo.xcworkspace 工程,编译并运行 Demo 工程即可。

接入流程

1,打开您的 Xcode 工程项目,选择要运行的 target , 选中Build Phases项。

项目结构

2,单击Link Binary with Libraries项展开,单击底下的“+”号图标去添加依赖库。

添加依赖库

3,依次添加所下载的 TRTC SDK Framework 及其所需依赖库libc++Accelerate.frameworklibresolv.tbdAVFoundation.framework

添加描述

4,授权摄像头和麦克风使用权限

使用 SDK 的音视频功能,需要授权麦克风和摄像头的使用权限。在 App 的 Info.plist 中添加以下两项,分别对应麦克风和摄像头在系统弹出授权对话框时的提示信息。

  • Privacy - Microphone Usage Description,并填入麦克风使用目的提示语。
  • Privacy - Camera Usage Description,并填入摄像头使用目的提示语。

权限设置

5,在 Objective-CSwift 代码中使用 SDK 有两种方式:

  • 模块引用:在项目需要使用 SDK API 的文件里,添加模块引用。 @import TXLiteAVSDK_TRTC;
  • 头文件引用:在项目需要使用 SDK API 的文件里,引入具体的头文件。 #import TXLiteAVSDK_TRTC/TRTCCloud.h

TRTC 接口协议 里设置音频源代理,并设置 ASR 读取音频源。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//1.TRTCAudioFrameDelegate 协议是 TRTC 获取音频源的协议,由于 ASR 识别16k或8k采样率的音频数据,所以需要设置 setAudioQuality 为 TRTCCloudDef#TRTC_AUDIO_QUALITY_SPEECH (流畅:采样率:16k;单声道;音频裸码率:16kbps)

- (void) onCapturedRawAudioFrame:(TRTCAudioFrame *)frame {//此方法为 TRTC 本地麦克风采集到的原始音频数据回调:

  NSUInteger readLength = [frame.data length];
  void *pcmBytes = (void *)frame.data.bytes;
  [dataSource didRecordAudioData:pcmBytes length:readLength];
}

此方法在TRTCCloudDelegate中

本地麦克风采集数据
本地麦克风采集数据

ASR 音频源设置为第三方,并实现具体逻辑。

接入第三方音频源需要在 ASR 接入部分实现 QCloudAudioDataSource 协议。代码示例如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#import<QCloudSDK/QCloudSDK.h>

//1.使用第三方外部数据源传入语音数据,自定义 data source 需要实现 QCloudAudioDataSource 协议
QDAudioDataSource *dataSource = [[QDAudioDataSource alloc] init];

//2.创建 QCloudRealTimeRecognizer 识别实例
QCloudRealTimeRecognizer *realTimeRecognizer = [[QCloudRealTimeRecognizer alloc] initWithConfig:config dataSource:dataSource];

接入 ASR 的 QCloudAudioDataSource 协议如下,协议详情。代码可参考工程中 QDAudioDataSource.m 文件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@interface QDAudioDataSource : NSObject<QCloudAudioDataSource>
@end

@implementation QDAudioDataSource
@synthesize running = _running;

//SDK 会调用此方法获取当前状态
- (BOOL)running{
    return _recording;
}

//SDK 会调用 start 方法,实现此协议的类需要初始化数据源
- (void)start:(void(^)(BOOL didStart, NSError *error))completion{
  _data = [[NSMutableData alloc] init];
}

//SDK 会调用 stop 方法,实现此协议的类需要停止提供数据
- (void)stop{
  _recording = NO;
  _data = nil;
}

//SDK 会调用实现此协议的对象的此方法读取语音数据
- (nullable NSData *)readData:(NSInteger)expectLength{
  NSData *data = nil;
  if ([_data length] >= _offset + expectLength) {
      data = [_data subdataWithRange:NSMakeRange(_offset, expectLength)];
      [_data replaceBytesInRange:NSMakeRange(_offset, expectLength) withBytes:NULL length:0];
  }
  return data;
}

//此处仅为演示,需用户自行完善音频数据源填充
- (void)didRecordAudioData:(void * const )bytes length:(NSInteger)length{
  [_data appendBytes:bytes length:length];
}
@end

识别结果演示

https://video-1302335295.cos.ap-guangzhou.myqcloud.com/videos/TRTC%2BASR/video.mp4

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

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

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

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

评论
作者已关闭评论
暂无评论
推荐阅读
编辑精选文章
换一批
iOS音视频接入 - TRTC接入实时视频通话
(前面我们已经了解TRTC的基本架构和功能,现在我们就来接入实时视频通话功能,此功能和微信的一对一视频通话是一致的,需要两个角色,一个角色是主动呼叫、一个为呼叫接听,结合使用场景我们来接入此功能。
小明同学接音视频
2020/10/13
6K0
iOS音视频接入 - TRTC接入实时视频通话
实时音视频 TRTC 常见问题汇总---集成接入篇
TRTC 的日志默认压缩加密,后缀为 .xlog。日志是否加密是可以通过 setLogCompressEnabled 来控制,生成的文件名里面含 C(compressed) 的就是加密压缩的,含 R(raw) 的就是明文的。
腾讯视频云-Zachary
2019/11/01
14.3K1
实时音视频 TRTC 常见问题汇总---集成接入篇
实时音视频SDK,如何实现类似微信的纯语音通话功能?
实时音视频TRTCSDK适用的业务场景是视频会议、坐席视频、在线教育等,如果您希望实现类似微信的语音通话、语音会议功能,TRTCSDK也是支持的,只需要微调几个参数就可以实现,将采集音视频的api,换成只采集音频。
腾讯云-chaoli
2019/03/05
8K2
实时音视频SDK,如何实现类似微信的纯语音通话功能?
TRTC Android端开发接入学习之常见问题(十一)
V1和V2主要区别在于IM的SDK是否内嵌于TRTC中,V1线路是内嵌,而V2则可选,默认不打包IM的SDK包。V2在通话质量、线路规格、接入难度以及功能扩展上均比V1更有优势。
腾讯云-hongyang
2020/09/27
3.1K0
实时音视频(TRTC)常见问题
一般而言,媒体音量指播放音乐、视频的声音、游戏声音等的音量,而通话音量指打电话的音量,视频通话的音量。
腾讯云-yyuanchen
2019/09/27
13.5K1
快速搭建在线教育互动课堂
受疫情影响,今年以来学生由线下涌至线上,在线教育互动课堂迎来了一个大的爆发。但是自己开发一个互动课堂的门槛还是相当高的,本文主要介绍了使用腾讯云实时音视频TRTC + 即时通信IM的能力快速搭建一个在线教育互动课堂。
腾讯即时通信IM
2020/06/11
6.2K2
快速搭建在线教育互动课堂
实时音视频 TRTC 常见问题汇总---咨询问题篇
支持的平台包括 iOS、Android、Windows(C++)、Windows(C#)、Mac、Web、Electron、微信小程序、Flutter,更多详情请参见 平台支持。
腾讯视频云-Zachary
2019/11/01
13.2K0
实时音视频 TRTC 常见问题汇总---咨询问题篇
新知实验室TRTC初体验
一次偶然的邂逅,让我知道了TRTC实时音视频这个神奇的东西,于是便开始研究起来这个鬼东西,接下来将详细记录一下开发过程,以便后期使用.
全栈若城
2024/02/29
1920
新知实验室TRTC初体验
实时音视频开发学习14 - 常见问题
V1和V2主要区别在于IM的SDK是否内嵌于TRTC中,V1线路是内嵌,而V2则可选,默认不打包IM的SDK包。V2在通话质量、线路规格、接入难度以及功能扩展上均比V1更有优势。
金林学音视频
2020/08/30
2.7K0
实时音视频开发学习14 - 常见问题
iOS音视频接入 - TRTC多人视频会议
官方SDK中提供了可复用的UI和封装了TRTCCloud的model,具体位置见下图。
小明同学接音视频
2020/10/15
2.4K0
iOS音视频接入 - TRTC多人视频会议
iOS音视频接入 - TRTC常见问题
在 TRTC SDK 的示例代码中提供了一个叫做GenerateTestUserSig的开源模块,您只需要将其中的 SDKAPPID、EXPIRETIME 和 SECRETKEY 三个成员变量修改成您自己的配置,就可以调用genTestUserSig()函数获取计算好的 UserSig。
小明同学接音视频
2020/10/21
2.9K0
iOS音视频接入 - TRTC常见问题
TRTC接入实时语音识别-Android SDK
腾讯云实时音视频(TRTC)接入实时语音识别,主要是将TRTC中的音频数据传递到语音识别的音频数据源中进行实时识别。本篇讲述如何对TRTC本地和远端的音频流进行实时识别。
向东平
2021/09/09
3.5K0
产品上线 | 腾讯云实时音视频 TRTC Unity SDK 火热上线!
近日,Unity发布了一份《2021游戏市场风向标报告》,其中包含对2020年游戏市场的洞察分析,以及对2021年的趋势预测。 其中提到,新冠疫情对人们玩视频游戏的方式产生了非常显著的影响。2020年,高清游戏(通常以高分辨率渲染并在PC、macOS以及其他桌面平台上呈现的视频游戏)的玩家数量增加了38%以上。 另外在接受调查的开发者中,有61%的开发者使用Unity。Unity仍然是开发者首选的游戏引擎以及第二大最受欢迎的移动广告网络。 那这么受开发者青睐的Unity,究竟是什么? Unity 是目
腾讯云音视频
2021/05/28
3.5K0
TRTC Android端开发接入学习之视频会议(八)
视频会议是音视频通话的常见应用场景之一,TRTC对着这方面的支持必不可少,本次我们学习如何使用TRTC快速开发视频会议的功能。
腾讯云-hongyang
2020/09/15
1.8K0
TRTC学习之旅(四)-- 用electron实现视频聊天室
前面我们已经学习过在web端用TRTC实时音视频SDK实现了多人会议室和互动直播模式,今天我们学习一下在桌面应用层用electron实现视频聊天。
黑眼圈云豆
2020/07/08
4.8K7
实时音视频开发学习3 - 实现web端跑通知识储备
本节内容主要讲解如何快速使用SDK包,SDK集成方式,SDK目录结构解释以及在web端和小程序端进行跑通。
金林学音视频
2020/08/21
1.6K0
实时音视频开发学习3 - 实现web端跑通知识储备
实时音视频开发学习10 - 小程序端一
小程序端双人通话、多人会议和语音聊天室三个功能。双人通话中实现1V1视频通话,在结合Web IM SDK可实现在线问诊或客服;语音聊天室能支持多人互动语音聊天,混音、混响等声音特效,适用于狼人杀、在线语音直播等社交场景;多人会议支持多路音视频通话、大小画面和屏幕分享等功能,适用于远程培训、在线教育等。
金林学音视频
2020/08/27
1.4K0
实时音视频开发学习10 - 小程序端一
【版本发布】腾讯实时音视频TRTC SDK 6.9
新的版本围绕视频画质、直播 CDN 融合、Android 10.0 系统兼容,以及云端录制等几个方面,增加了很多新的功能特性,期待您的使用:
shixin
2020/01/21
2.7K0
最佳实践 | 基于TRTCCalling快速实现多人音视频通话
TRTCCalling SDK 基于TRTC和TSignaling ,封装了简单易用的 API,接入后可快速实现web和native互通的1v1或群实时通话。 效果展示 群视频通话 语音通话 在线体验 https://web.sdk.qcloud.com/im/demo/latest/index.html 1)注册登录后,创建一个 IM 的群组,拉上其他人入群,打开会话窗口,点击实时音视频选择(语音通话或者视频通话)。 2)选择呼叫用户列表,单击【确定】,就可以发起实时通话了。 3)呼
腾讯云音视频
2021/06/07
3.4K0
TRTC零基础入门之Web篇(一)
在建立这个在线课堂应用过程中,可能会使用到腾讯云的IM、云直播等服务,以及对应安卓端SDK,下面将通过三篇文章来记录这个过程,本文为第一篇。
天上云间
2020/12/20
4.2K2
TRTC零基础入门之Web篇(一)
推荐阅读
相关推荐
iOS音视频接入 - TRTC接入实时视频通话
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验