跳到主要内容

美声特效

融云 RTCLib SDK 以插件库的形式(RongVoiceBeautifier)提供了多种美声特效选项。本插件会对麦克风采集的数据和耳返数据进行处理,本地与远端用户均会听到处理后的效果。

提示

CallKit、CallLib、RTCLib 从 5.1.6 版本开始,支持美声插件。

集成美声插件​

在导入 SDK 前,您可以前往 融云官网 SDK 下载页面 确认当前最新版本号。

通过 CocoaPods 管理依赖 (推荐)​

  1. 如果您的项目中没有 Podfile 文件,您需要打开终端并进入到项目的根目录,在终端中运行 pod init 命令,之后系统会自动创建一个默认的 Podfile 文件,在项目中的 Podfile 文件中添加如下内容:

    ruby
    pod 'RongCloudRTC/RongVoiceBeautifier', '~> x.y.z'
    提示
    • 美声插件会自动依赖下载对应版本的 RTCLib 库,一般不需要手动指定。
    • x.y.z 代表 RTCLib 具体的版本号,您可以在融云官网 SDK 下载页面或在终端中通过先执行 pod repo update,再执行 pod search RongCloudRTC 命令在 CocoaPods 仓库查询 RTCLib 最新的版本。
  2. 打开终端并进入到 Podfile 文件所在的目录,在终端中运行以下命令:

    shell
    pod install
    提示

    如果终端中出现类似 CocoaPods could not find compatible versions for 等找不到相关版本的报错,可先在终端中执行 pod repo update 命令,再执行 pod install 命令。

  3. 通过 Xcode 打开项目目录下的 xcworkspace 文件加载工程。

手动集成​

  1. 前往 融云官网 SDK 下载页面,下载美声特效库:

  2. 导入以下内容:

    • RongVoiceBeautifier.bundle
    • RongVoiceBeautifier.framework。
  3. 修改您的项目配置。在 General → Frameworks, Libraries, and Embedded Binaries 中,将手动导入的美声特效 SDK 所有的 Framework 全部改为 Embed & Sign。

  4. 请将工程中 Target > Build Settings > Other Linker Flags 在此项中添加 -ObjC。为避免编译失败,请勿使用 -all_load 和 -force_load。

  5. 请务必确保资源包 RongVoiceBeautifier.bundle 正确添加到项目中,否则美声特效不会生效。

使用美声插件​

将 RongCloudRTC 升级到 5.1.6 及以后版本,在需要美声功能的文件中导入美声特效插件头文件:

Objective C
#import <RongVoiceBeautifier/RCRTCVoiceBeautifierEngine.h>

设置美声特效​

确保在设置美声特效之前已经初始化 RCRTCEngine 引擎。

  1. 使用 RCRTCVoiceBeautifierEngine 单例的 setPreset 方法设置美声特效。RCVoiceBeautifierType 定义了预设的音效。例如,设置为男孩音效(RCVoiceBeautifierTypeEffectBoy)。

    Objective C
    // 设置美声特效
    [[RCRTCVoiceBeautifierEngine sharedInstance] setPreset:RCVoiceBeautifierTypeEffectBoy];
  2. 使用 RCRTCVoiceBeautifierEngine 单例的 enable 方法设置声音特效是否启用。通过返回值可判断是否成功启用,返回 0 表示 成功,返回 -1 表示失败。

    Objective C
    // 设置美声特效是否开启
    BOOL success = [[RCRTCVoiceBeautifierEngine sharedInstance] enable:YES];
  3. 检查美声特效是否已启用。

    Objective C
    BOOL enabled = [[RCRTCVoiceBeautifierEngine sharedInstance] isEnable];

取消美声特效​

设置美声特效后,会在当前客户端持续生效。如有需要,可在切换房间时修改、重置美声效果,或直接关闭美声特效功能。

提示

因为 RCRTCVoiceBeautifierEngine 类是单例对象,所以会保留开发者设置的声音特效参数。

Objective C
// 退出房间时重置美声特效为使用原声
[[RCRTCVoiceBeautifierEngine sharedInstance] setPreset:RCVoiceBeautifierTypeNone];

预置美声特效​

RCVoiceBeautifierType 定义了预设的音效效果,提供美声、变声、混响三类效果。

声音类型特效类别说明
RCVoiceBeautifierTypeNone原声关闭美声
RCVoiceBeautifierTypeAcousticsFull美声饱满
RCVoiceBeautifierTypeAcousticsLow美声低沉
RCVoiceBeautifierTypeAcousticsHyperactivity美声高亢
RCVoiceBeautifierTypeMagnetic美声磁性(男)(SDK ≧ 5.4.1)
RCVoiceBeautifierTypeFresh美声清新(女) (SDK ≧ 5.4.1)
RCVoiceBeautifierTypeVitality美声活力(女) (SDK ≧ 5.4.1)
RCVoiceBeautifierTypeMellow美声圆润 (SDK ≧ 5.4.1)
RCVoiceBeautifierTypeClear美声清澈 (SDK ≧ 5.4.1)
RCVoiceBeautifierTypeRinging美声嘹亮 (SDK ≧ 5.4.1)
RCVoiceBeautifierTypeVigorous美声浑厚 (SDK ≧ 5.4.1)
RCVoiceBeautifierTypeEffectFalsetto变声假声
RCVoiceBeautifierTypeEffectBoy变声小男孩
RCVoiceBeautifierTypeEffectBoyToMan变声男孩转中年
RCVoiceBeautifierTypeEffectOldMan变声老年人
RCVoiceBeautifierTypeEffectGirl变声小女孩
RCVoiceBeautifierTypeSister变声小姐姐 (SDK ≧ 5.4.1)
RCVoiceBeautifierTypeEffectGirlToWoman变声女孩转中年
RCVoiceBeautifierTypePigKing变声猪八戒 (SDK ≧ 5.4.1)
RCVoiceBeautifierTypeEffectHulk变声绿巨人
RCVoiceBeautifierTypeAcousticsKTV混响KTV
RCVoiceBeautifierTypeAcousticsVocalConcert混响演唱会
RCVoiceBeautifierTypeEffectStudio混响录音棚 (SDK ≧ 5.4.1)
RCVoiceBeautifierTypeEffectPhonograph混响留声机 (SDK ≧ 5.4.1)
RCVoiceBeautifierTypeEffectStereo混响立体声 (SDK ≧ 5.4.1)
RCVoiceBeautifierTypeEffectValley混响空旷 (SDK ≧ 5.4.1)
RCVoiceBeautifierTypeEffectLobby混响3D 环绕 (SDK ≧ 5.4.1)

性能与功耗​

美声特效插件 RCRTCVoiceBeautifier.framework 自身包体积为 37.7M。添加美声特效插件后:

  • CPU 消耗增加 5% 左右。
  • Memory 消耗增加 3M 左右。
  • 打包应用包体积增加 13.6M 左右。