跳到主要内容

美声特效

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

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

集成美声插件

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

通过 CocoaPods 管理依赖 (推荐)

  1. 请在 Podfile 文件中添加下面内容。

    pod 'RongCloudRTC/RongVoiceBeautifier', '~> x.y.z'

    x.y.z 代表当前 RTCLib 的具体版本号。您可以在融云官网 SDK 下载页面或 CocoaPods 仓库进行查询。

手动集成

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

  2. 导入以下内容:

    • RongVoiceBeautifier.bundle
    • RongVoiceBeautifier.framework
  3. 请将工程中 Target > Build Settings > Other Linker Flags 在此项中添加 -ObjC。为避免造成编译失败,禁止使用 -all_load-force_load

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

使用美声插件

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

#import <RongVoiceBeautifier/RCRTCVoiceBeautifierEngine.h>

设置美声特效

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

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

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

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

    - (BOOL)isEnable;

取消美声特效

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

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

// 例如,退出房间时重置美声特效为使用原声
[[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 左右。