美声与混响

更新时间: 2023/06/29 03:29:00

在泛娱乐行业的多种强互动场景中,往往需要多种丰富的美化与特效功能提升场景的趣味性、提高互动体验,例如美声与混响功能。在语聊房或 K 歌场景中,美声功能可以美化主播或连麦者的声音,让声音更加低沉、圆润或清澈。混响功能可以让声音更具立体感,提升场景的娱乐氛围,烘托气氛。

功能介绍

NERoom 支持通过设置本地语音音效均衡或混响来达到自定义的人声效果,增加场景气氛。

美声指声音的美化,即调整人声的音色,例如让声音更加低沉、圆润或清澈。

注意事项

各人声效果相关接口在加入房间前后均可调用。退出房间后,各人声效果相关参数均恢复至默认值。

自定义人声效果

您可以通过音调、音效均衡和混响,实现自定义的人声效果。

设置音调

调用 setLocalVoicePitch 方法可以设置本地语音音调,例如将音调调高或者调低,实现例如男声变女声等变声效果。参数说明如下表所示。

参数 说明
pitch 调整语音频率。该参数的取值范围为 0.5 ~ 2.0,取值越小表示音调越低;默认值为 1.0,表示不需要修改音调。

设置音效均衡

音效均衡通过对声音某一个或多个频段进行增益或者衰减,其他频段保持不变,从而达到调整音色的目的。

调用 setLocalVoiceEqualization 方法可以设置本地语音音效均衡。参数说明如下表所示。

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

原理解析

调节不同频段的增益,相应音色的调节效果说明如下:

  • 31:影响音色的空间感。例如适当衰减该频段,可以消除低频噪声,使音色更加纯净。
  • 62:影响声音的浑厚感,是低音的基音区。如果需要消除鼻音,可以衰减该频段。
  • 125:影响音乐的厚实感。例如,男音在这个频段略微衰减 3 dB 左右,可以增加清晰度。
  • 250:影响声音的力度,尤其是男音的力度。例如,男音在该频段可以提升增益,让声音更有力度。
  • 500:影响人声的厚度和力度,提升该人声明亮、清晰,否则单薄、混浊。
  • 1k、2k:影响声音的明亮度。可以适当提升该频段的增益,让人声更加清晰,但不宜调的太多(建议不要超过 6 db),否则会使声音发硬。
  • 4k:影响语音的清晰度、明亮度。如果该频段成分缺少,音色则变得平平淡淡;如果这频段成分过多,音色则变得尖锐,人声可能出现齿音。
  • 8k:该频段是音乐的高音区,如果想要声音呈现甜美感觉,可以适当调整该频段。
  • 16k:影响整体的色彩感,这个频段过于黯淡会导致乐器失去个性,过多则会产生毛刺感。

设置混响

混响指赋予声音一定立体效果,让声音如同在山洞、音乐厅等场景中发出一般,通常会让声音变得更加饱满、动听。

调用 setLocalVoiceReverbParam 方法可以设置本地语音混响,即自定义设置本地人声的混响回声效果。参数说明如下表所示。

参数 说明
wetGain 湿信号增益。该参数的单位为分贝(dB),取值范围为 0 ~ 1,默认值为 0.0。
dryGain 干信号增益。该参数的单位为分贝(dB),取值范围为 0 ~ 1,默认值为 1.0。
damping 混响阻尼,用于设置混响的衰减程度,阻尼越大表示衰减越大。取值范围为 0 ~ 1,默认值为 1.0。
roomSize 房间大小,用于设置模拟的“房间”大小,房间越大表示混响越强。取值范围为 0.1 ~ 2,默认值为 0.1。
dacayTime 持续强度,用于设置混响的拖尾长度。该参数的单位为秒,取值范围为 0.1 ~ 20,默认值为 0.1。
preDelay 延迟长度。该参数的单位为秒,取值范围为 0 ~ 1,默认值为 0.0。

示例代码

//设置本地语音音调
double pitch = 1.0;
NERoomKit.instance.getRoomService().getRoomContext(roomUuid).getRtcController().setLocalVoicePitch(pitch);

//设置本地语音混响参数
NERoomReverbParam param = new NERoomReverbParam();
param.wetGain = 0.0;
param.dryGain = 1.0;
param.damping = 1.0;
param.roomSize = 0.1;
param.decayTime = 0.1;
param.preDelay = 0.0;
NERoomKit.instance.getRoomService().getRoomContext(roomUuid).getRtcController().setLocalVoiceReverbParam(param);

//设置本地语音音效均衡,即自定义设置本地人声均衡波段的中心频率
int bandFrequency = 2;
int bandGain = 0;
NERoomKit.instance.getRoomService().getRoomContext(roomUuid).getRtcController().setLocalVoiceEqualization(bandFrequency, bandGain);

API 参考

方法 功能描述
setLocalVoicePitch 设置本地语音音调
setLocalVoiceEqualization 设置本地语音音效均衡
setLocalVoiceReverbParam 设置本地语音混响
此文档是否对你有帮助?
有帮助
去反馈
  • 功能介绍
  • 注意事项
  • 自定义人声效果
  • 设置音调
  • 设置音效均衡
  • 设置混响
  • 示例代码
  • API 参考