美声与变声
更新时间: 2024/08/05 15:02:55
在泛娱乐行业的多种强互动场景中,往往需要多种丰富的美化与特效功能提升场景的趣味性、提高互动体验,例如美声与变声功能。在多人语聊或音频直播场景中,美声与变声功能可以美化主播或连麦者的声音,提升场景的娱乐氛围。
NERTC SDK 支持设置多种美声与变声音效,您也可以通过设置本地语音音效均衡或混淆来达到自定义的人声效果,增加场景气氛。
注意事项
setAudioEffectPreset
方法和setLocalVoicePitch
互斥,调用了其中任一方法后,另一方法会被重置为默认值。- 当房间内的本地用户和远端用户均使用小程序平台时,美声和变声能力不会生效;当本地用户使用小程序平台,而远端用户使用的是 Android、iOS、Windows、macOS 或 Web 平台时,美声和变声能力才会生效。
实现方式
预设人声效果
NERTC SDK 为您提供多种类型的预设人声效果,以满足您在不同场景下的美声与变声需求。
美声效果
美声指声音的美化,即调整人声的音色,例如让声音更加低沉、圆润或清澈。另外,NERTC 的预设美声效果还可以实现场景空间环境的效果塑造,即营造场景化的空间氛围,使人声听起来像是处于特定的空间或场所。 通过 setVoiceBeautifierPreset 可以使用 SDK 预设的美声效果。目前支持以下预设的美声效果:
类型 | 描述 |
---|---|
VOICE_BEAUTIFIER_OFF | (默认)关闭美声效果 |
VOICE_BEAUTIFIER_MUFFLED | 低沉效果 |
VOICE_BEAUTIFIER_MELLOW | 圆润效果 |
VOICE_BEAUTIFIER_CLEAR | 清澈效果 |
VOICE_BEAUTIFIER_MAGNETIC | 磁性效果 |
VOICE_BEAUTIFIER_RECORDINGSTUDIO | 录音棚效果 |
VOICE_BEAUTIFIER_NATURE | 天籁效果 |
VOICE_BEAUTIFIER_KTV | KTV 效果 |
VOICE_BEAUTIFIER_REMOTE | 悠远效果 |
VOICE_BEAUTIFIER_CHURCH | 教堂效果 |
VOICE_BEAUTIFIER_BEDROOM | 卧室效果 |
VOICE_BEAUTIFIER_LIVE | Live 效果 |
变声效果
变声指转变人声的特质,例如让声音听起来像机器人或萝莉。通过 setAudioEffectPreset 可以使用 SDK 预设的变声效果。目前支持以下预设的变声效果:
类型 | 描述 |
---|---|
AUDIO_EFFECT_OFF | (默认)关闭变声音效 |
VOICE_CHANGER_EFFECT_ROBOT | 机器人 |
VOICE_CHANGER_EFFECT_GIANT | 巨人 |
VOICE_CHANGER_EFFECT_HORROR | 恐怖 |
VOICE_CHANGER_EFFECT_MATURE | 成熟 |
VOICE_CHANGER_EFFECT_MANTOWOMAN | 男变女 |
VOICE_CHANGER_EFFECT_WOMANTOMAN | 女变男 |
VOICE_CHANGER_EFFECT_MANTOLOLI | 男变萝莉 |
VOICE_CHANGER_EFFECT_WOMANTOLOLI | 女变萝莉 |
自定义人声效果
如果以上美声与变声效果无法满足您的需求,您也可以通过音调和音效均衡,实现自定义的人声效果。
- 通过 setLocalVoicePitch 设置本地语音音调,例如将音调调高或者调低。
- 通过 setLocalVoiceEqualization 设置本地语音音效均衡,即自定义设置本地人声均衡波段的中心频率。
示例代码
//预设美声效果
const type = YunXinMiniappSDK.VOICE_BEAUTIFIER_MUFFLED //声音低沉
client.setVoiceBeautifierPreset(type)
//预设变声效果
const type = YunXinMiniappSDK.VOICE_CHANGER_EFFECT_ROBOT //声音变成机器人效果
client.setAudioEffectPreset(type)
//调整语音音调
const pitch = 0.6; //pitch 输入pitch区间在[0.5,2] ,默认值为1.25
client.setLocalVoicePitch(pitch)
//本地语音音效均衡
let gain = 10 //取值范围是[-15,15]。默认值为0
let bandFrequency = YunXinMiniappSDK.AUDIO_EQUALIZATION_BAND_1K; //表示中心频率为1000的位置增益设置为10
client.setLocalVoiceEqualization(bandFrequency, gain)
此文档是否对你有帮助?