美声特效
融云音视频 SDK 以插件库的形式(RongVoiceBeautifier
)提供了多种美声特效选项。本插件会对麦克风采集的数据和耳返数据进行处理,本地与远端用户均会听到处理后的效果。
CallKit、CallLib、RTCLib 从 5.1.6 版本开始,支持美声插件。
集成美声插件
在导入 SDK 前,您可以前往 融云官网 SDK 下载页面 确认当前最新版本号。
通过 CocoaPods 管理依赖 (推荐)
-
请在
Podfile
文件中添加下面内容。pod 'RongCloudRTC/RongVoiceBeautifier', '~> x.y.z'
x.y.z 代表当前 RTCLib 的具体版本号。您可以在融云官网 SDK 下载页面或 CocoaPods 仓库进行查询。
手动集成
-
前往 融云官网 SDK 下载页面,下载声音特效库:
-
导入以下内容:
RongVoiceBeautifier.bundle
RongVoiceBeautifier.framework
。
-
请将工程中 Target > Build Settings > Other Linker Flags 在此项中添加 -ObjC。为避免造成编译失败,禁止使用 -all_load 和 -force_load。
-
请务必确保资源包
RongVoiceBeautifier.bundle
正确添加到项目中,否则声音音效不会生效。
使用美声插件
将 RongCloudRTC
升级到 5.1.6 及以后版本,在需要美颜功能的文件中导入声音特效插件头文件:
#import <RongVoiceBeautifier/RCRTCVoiceBeautifierEngine.h>
设置美声特效
确保在设置美声特效之前已经初始化 RCRTCEngine
引擎。
-
使用
RCRTCVoiceBeautifierEngine
单例的setPreset
方法设置声音特效。RCVoiceBeautifierType 定义了预设的音效。例如,例如,设置为男孩音效(RCVoiceBeautifierTypeEffectBoy
)。// 设置声音特效
[[RCRTCVoiceBeautifierEngine sharedInstance] setPreset:RCVoiceBeautifierTypeEffectBoy]; -
使用
RCRTCVoiceBeautifierEngine
单例的enable
方法设置声音特效是否启用。通过返回值可判断是否成功启用,返回0
表示 成功,返回-1
表示失败。// 设置声音特效是否开启
BOOL Success = [[RCRTCVoiceBeautifierEngine sharedInstance] enable:YES]; -
检查美声特效是否已启用。
- (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 左右。