tencent cloud

文档反馈

实时语音均衡器

最后更新时间:2024-01-18 14:28:46
    为方便开发者调试和接入腾讯云游戏多媒体引擎产品 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
    超高音和超声区
    乐器的高频泛音,调整对语音作用不大。
    具体调整也可以参考下图:
    
    
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持