美声变声

更新时间: 2024/03/15 17:20:45

NERTC SDK 支持设置多种预设的美声与变声音效。玩家可以将音色调整成“大叔音”、“萝莉音”等形式,在语音聊天、游戏互动等场景中展现更加有趣和吸引人的声音形象。

注意事项

  • setAudioEffectPreset 方法和 setLocalVoicePitch 互斥,调用了其中任一方法后,另一方法会被重置为默认值。
  • 各人声效果相关接口在加入房间前后均可调用。退出房间后,各人声效果相关参数均恢复至默认值。

预设人声效果

NERTC SDK 为您提供多种类型的预设人声效果,以满足您在不同场景下的美声与变声需求。

美声效果

美声指声音的美化,即调整人声的音色,例如让声音更加低沉、圆润或清澈。另外,NERTC 的预设美声效果还可以实现场景空间环境的效果塑造,即营造场景化的空间氛围,使人声听起来像是处于特定的空间或场所。

调用 setVoiceBeautifierPreset 方法可以使用 SDK 预设的美声效果。目前支持以下预设的美声效果:

枚举值 描述
kNERtcVoiceBeautifierOff (默认)关闭美声效果。
kNERtcVoiceBeautifierMuffled 低沉。
kNERtcVoiceBeautifierMellow 圆润。
kNERtcVoiceBeautifierClear 清澈。
kNERtcVoiceBeautifierMagnetic 磁性。
kNERtcVoiceBeautifierRecordingstudio 录音棚。
kNERtcVoiceBeautifierNature 天籁。
kNERtcVoiceBeautifierKTV KTV。
kNERtcVoiceBeautifierRemote 悠远。
kNERtcVoiceBeautifierChurch 教堂。
kNERtcVoiceBeautifierBedroom 卧室。
kNERtcVoiceBeautifierLive Live。

预设美声效果的示例代码如下:

//以设置美声效果为预设的磁性为例
NERtcVoiceBeautifierType beautifier_type = kNERtcVoiceBeautifierMagnetic;
engine->setVoiceBeautifierPreset(beautifier_type);

变声效果

变声指转变人声的特质,例如让声音听起来像机器人、萝莉或具有其它的搞怪效果。

调用 setAudioEffectPreset 方法可以使用 SDK 预设的变声效果。目前支持以下预设的变声效果:

枚举值 描述
kNERtcVoiceChangerOff (默认)关闭变声音效。
kNERtcVoiceChangerRobot 机器人。
kNERtcVoiceChangerGaint 巨人。
kNERtcVoiceChangerHorror 恐怖。
kNERtcVoiceChangerMature 成熟。
kNERtcVoiceChangerManToWoman 男变女。
kNERtcVoiceChangerWomanToMan 女变男。
kNERtcVoiceChangerManToLoli 男变萝莉。
kNERtcVoiceChangerWomanToLoli 女变萝莉。

预设变声效果的示例代码如下:

//以设置变声效果为预设的男变女为例
NERtcVoiceChangerType voice_changer = kNERtcVoiceChangerManToWoman;
engine->setAudioEffectPreset(voice_changer);

API 参考

方法 功能描述
setVoiceBeautifierPreset 设置预设的美声效果
setAudioEffectPreset 设置预设的变声效果

自定义人声效果

如果以上美声与变声效果无法满足您的需求,您也可以通过音调、音效均衡和混响,实现自定义的人声效果。

设置音调

调用 setLocalVoicePitch 方法可以设置本地语音音调,例如将音调调高或者调低。调用此方法时,您需要通过设置 pitch 参数调整语音频率。该参数的取值范围为 0.5 ~ 2.0,取值越小表示音调越低;默认值为 1.0,表示不需要修改音调。

设置语音音调的示例代码如下:

//设置语音音调
double pitch = 1.5  /**< 在 [0.5, 2.0] 范围内设置*/
engine->setLocalVoicePitch(pitch);

设置音效均衡

调用 setLocalVoiceEqualization 方法可以设置本地语音音效均衡,即自定义设置本地人声均衡波段的中心频率。调用此方法时,您需要设置 bandFrequency 和 bandGain 参数,相关参数的说明如下:

  • bandFrequency:频谱子带索引。该参数的单位为赫兹(Hz),取值范围为 0 ~ 9,分别代表 10 个频带,对应的中心频率分别为 31、62、125、250、500、1k、2k、4k、8k 和 16k。
  • bandGain:每个频带的增益。该参数的单位为分贝(dB),每个频带对应的增益取值范围为 -15 ~ 15,默认值为 0。

设置语音音效均衡的示例代码如下:

//设置本地语音音效均衡
engine->setLocalVoiceEqualization(kNERtcVoiceEqualizationBand_125, 6);
engine->setLocalVoiceEqualization(kNERtcVoiceEqualizationBand_250, 8);
engine->setLocalVoiceEqualization(kNERtcVoiceEqualizationBand_500, 6);

API 参考

方法 功能描述
setLocalVoicePitch 设置本地语音音调
setLocalVoiceEqualization 设置本地语音音效均衡
此文档是否对你有帮助?
有帮助
去反馈
  • 注意事项
  • 预设人声效果
  • 美声效果
  • 变声效果
  • API 参考
  • 自定义人声效果
  • 设置音调
  • 设置音效均衡
  • API 参考