为方便开发者调试和接入腾讯云游戏多媒体引擎产品 API,本文为您介绍游戏多媒体引擎实时语音均衡器功能的接入指引。
使用场景
GME 均衡器功能,可以将 GME SDK 采集的音频流实时进行均衡器调整。该功能可应用于线上K歌场景,玩家开始唱歌后,调用 GME SDK 的 均衡器 接口,即可将玩家的实时语音流做声音美化效果方面的调整。
前提条件
已开通实时语音服务:可参见 服务开通指引。
已接入 GME SDK:包括核心接口和实时语音接口的接入,详情可参见 Native SDK 快速接入、Unity SDK 快速接入、Unreal SDK 快速接入。
体验 Demo
下载 Demo
此体验 Demo 为一个 Windows 可执行程序,界面如下:
配置参数
在 Appid 和 Key 的输入框中填入自己申请的 GME AppID 以及 Key。
如果需要,您也可以输入目标房间号以及 OpenID。
使用方法
1. 进房打开麦克风扬声器流程如下:Init > EnterRoom > EnableCapture > EnablePlay > EnableSend > EnableRecv。
2. 进房成功之后,可以开启 EnableLoopBack 听到自己的声音。
3. 后续再调整红框中的 EQ 均衡器(EQ 是频段增益,Exditor 和 Reverb 是混响器)。
均衡器功能接入
使用此接口需要在进房成功的状态下,才能对本端采集的声音实现均衡器调节效果。
函数原型
int SetKaraokeType(ITMG_VOICE_TYPE_EQUALIZER* pEqualizer, ITMG_VOICE_TYPE_REVERB* pReverb)
参数 | 类型 | 意义 |
pEqualizer | ITMG_VOICE_TYPE_EQUALIZER | 频段增益 |
pReverb | ITMG_VOICE_TYPE_REVERB | 涵盖 HARMONIC 和 REVERB |
结构体详细信息
ITMG_VOICE_TYPE_EQUALIZER 中结构体成员为 float 类型,数值范围为-12到12。
ITMG_VOICE_TYPE_EQUALIZER | 意义 |
EQUALIZER_32HZ | 32HZ频段上施加的增益 |
EQUALIZER_64HZ | 64HZ频段上施加的增益 |
EQUALIZER_128HZ | 128HZ频段上施加的增益 |
EQUALIZER_250HZ | 250HZ频段上施加的增益 |
EQUALIZER_500HZ | 500HZ频段上施加的增益 |
EQUALIZER_1KHZ | 1KHZ频段上施加的增益 |
EQUALIZER_2KHZ | 2KHZ频段上施加的增益 |
EQUALIZER_4KHZ | 4KHZ频段上施加的增益 |
EQUALIZER_8KHZ | 8KHZ频段上施加的增益 |
EQUALIZER_16KHZ | 16KHZ频段上施加的增益 |
EQUALIZER_MASTER_GAIN | 整体音量 |
ITMG_VOICE_TYPE_REVERB 中结构体成员为 float 类型,数值范围为0到 1。
ITMG_VOICE_TYPE_REVERB |
HARMONIC_GAIN |
HARMONIC_START_FREQUENCY |
HARMONIC_BASS_CONTROL |
REVERB_SIZE |
REVERB_DEPTH |
REVERB_GAIN |
REVERB_ECHO_DEPTH |
示例代码
void CTMGSDK_For_AudioDlg::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar){if ((CWnd*)pScrollBar == (CWnd*)&m_SliderEQ1 ||(CWnd*)pScrollBar == (CWnd*)&m_SliderEQ2 ||(CWnd*)pScrollBar == (CWnd*)&m_SliderEQ3 ||(CWnd*)pScrollBar == (CWnd*)&m_SliderEQ4 ||(CWnd*)pScrollBar == (CWnd*)&m_SliderEQ5 ||(CWnd*)pScrollBar == (CWnd*)&m_SliderEQ6 ||(CWnd*)pScrollBar == (CWnd*)&m_SliderEQ7 ||(CWnd*)pScrollBar == (CWnd*)&m_SliderEQ8 ||(CWnd*)pScrollBar == (CWnd*)&m_SliderEQ9 ||(CWnd*)pScrollBar == (CWnd*)&m_SliderEQ10 ||(CWnd*)pScrollBar == (CWnd*)&m_SliderEQ11 ||(CWnd*)pScrollBar == (CWnd*)&m_SliderExGain ||(CWnd*)pScrollBar == (CWnd*)&m_SliderExStartFrequency ||(CWnd*)pScrollBar == (CWnd*)&m_SliderExBaseCtrl ||(CWnd*)pScrollBar == (CWnd*)&m_SliderReverbSize ||(CWnd*)pScrollBar == (CWnd*)&m_SliderReverbDepth ||(CWnd*)pScrollBar == (CWnd*)&m_SliderReverbGain ||(CWnd*)pScrollBar == (CWnd*)&m_SliderReverbEchoDepth){ITMG_VOICE_TYPE_EQUALIZER equalizer = {(m_SliderEQ1.GetPos() - 50) * 24.0f / 100,(m_SliderEQ2.GetPos() - 50) * 24.0f / 100,(m_SliderEQ3.GetPos() - 50) * 24.0f / 100,(m_SliderEQ4.GetPos() - 50) * 24.0f / 100,(m_SliderEQ5.GetPos() - 50) * 24.0f / 100,(m_SliderEQ6.GetPos() - 50) * 24.0f / 100,(m_SliderEQ7.GetPos() - 50) * 24.0f / 100,(m_SliderEQ8.GetPos() - 50) * 24.0f / 100,(m_SliderEQ9.GetPos() - 50) * 24.0f / 100,(m_SliderEQ10.GetPos() - 50) * 24.0f / 100,(m_SliderEQ11.GetPos() - 50) * 24.0f / 100};ITMG_VOICE_TYPE_REVERB reverb = {(m_SliderExGain.GetPos()) * 1.0f / 100.0f,(m_SliderExStartFrequency.GetPos()) * 1.0f / 100.0f,(m_SliderExBaseCtrl.GetPos()) * 1.0f / 100.0f,(m_SliderReverbSize.GetPos()) * 1.0f / 100.0f,(m_SliderReverbDepth.GetPos()) * 1.0f / 100.0f,(m_SliderReverbGain.GetPos()) * 1.0f / 100.0f,(m_SliderReverbEchoDepth.GetPos()) * 1.0f / 100.0f};m_pTmgContext->GetAudioEffectCtrl()->SetKaraokeType(&equalizer, &reverb);}CDialogEx::OnVScroll(nSBCode, nPos, pScrollBar);}
均衡器使用指引
注意
此处仅提供指引,如果需要更加深入的使用 EQ 效果,需要专业的调音师协作。
人耳可以听到的声音范围大致为20HZ - 20KHZ,人耳对于各频段的感知呈现对数关系,因此混音工程中常将人的可听频段分成10个八度分别进行调整,调音大致分为如下几个区域:
频段 | 区域 | 说明 |
20HZ - 32HZ | 次声和超低音区 | 大部分频段低于人耳听觉下限,多用触觉感知,音乐中超大型管风琴以及电影中的爆炸和雷声音效可以达到这个频率,人声无法达到这个频段,一般 VOIP 通话建议调至z最低,去除直流干扰,将信号能量留给其他频段。 |
32HZ - 64HZ | 重低音区 | 主要用于调整鼓和贝斯的下潜,音调感觉不明显,部分男低音音域可达这个频段。VOIP 通话人声调音一般建议调低,去除工频干扰,将能量留给其他频段。 |
64HZ - 125HZ | 低音区 | 大部分管弦乐器的基频的范围,也决定打击乐的力度。 |
125HZ - 250HZ | 低音区 | 人声的基频的范围,决定人声音调感知,过重会导致声音浑浊。 |
250HZ - 500HZ | 中低音区 | 包含人声音色的重要的低次谐波所在频段,可用于调整男声音色,适当增强这一段使人声音色温暖,厚重;增强过度声音变浑浊。 |
500HZ - 1KHZ | 中音区 | 调整女声音色,使其更饱满,调整太高会导致鼻音重。手机等移动播放设备的共振峰处于这个频段,建议避免调整太高容易引起结构振动杂音。 |
1KHZ - 2KHZ | 中音区 | 人耳较敏感区域,影响响度和临场感,可以适当增强。 |
2KHZ - 4KHZ | 中高音区 | 人耳最敏感的区域,提升这一判断可以提高声音的响度,提升语音可懂度相关,调整太高会导致齿音过重。 |
4KHZ - 8KHZ | 高音区 | 表现镲等高频乐器,已经弦乐器摩擦音等声音细节。决定人声的高频细节,如唇齿音,摩擦音等,一般不建议提升。 |
8KHZ - 16KHZ | 超高音和超声区 | 乐器的高频泛音,调整对语音作用不大。 |
具体调整也可以参考下图: