tencent cloud

Game Multimedia Engine

製品アップデート情報
製品紹介
製品概要
優位性のある特徴
製品機能
ユースケース
セキュリティコンプライアンス認証
初心者ガイド
SDKダウンロードガイド
製品機能体験
基本機能Demo
シーン化体験
コンソールガイド
使用量の表示
サービスの有効化
クイックスタート
Quick Integration of SDK
Quick Integration of Sample Project
基本機能開発ガイド
Authentication Key
リアルタイム音声ロール設定
音質設定
拡張機能開発ガイド
サーバー側のレコーディング
レンジボイス
3Dサウンド
効果音と伴奏
ネットワークオーディオストリーム転送ルーティング
カスタムメッセージチャネル
社内ファイアーフォール制限への対応について
Language Parameter Reference List
GMEルーム管理機能の導入
クライアントAPI
SDK for Unity
SDK for Unreal Engine
Cocos2D SDK
SDK for Windows
SDK for iOS
SDK for Android
SDK for macOS
H5 SDK
Electron SDK
SDK for Flutter
SDK Version Upgrade Guide
エラーコード
Toolchain
Server APIs
History
Introduction
API Category
Usage APIs
Recording APIs
Making API Requests
Voice Chat APIs
Application APIs
Data Types
Error Codes
よくある質問
製品機能質問
問題解決ガイド
課金について
Sample Projectの使用上の問題
一般的な質問
認証について
リアルタイム音声ルーム参加失敗について
リアルタイム音声利用時に音声が聞こえない問題とオーディオ関連について
ネットワークについて
ボイス・ツー・テキスト変換について
プロジェクトエクスポートについて
Service Agreement
Service Level Agreement
お問い合わせ
用語集
GME ポリシー
データ処理とセキュリティ契約
プライバシーポリシー

リアルタイムなサウンドイコライザ

PDF
フォーカスモード
フォントサイズ
最終更新日: 2024-01-18 15:47:47
開発者がTencent Cloud GME製品のAPIを容易にデバッグして導入するために、このドキュメントではGMEリアルタイムなサウンドイコライザの導入を紹介します。




シナリオ

GMEイコライザ機能は、GME SDKで収集したオーディオストリームをリアルタイムでイコライザ調整することができます。この機能はオンラインのカラオケシーンに使用されます。プレイヤーが歌い始めた後、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
超高音や超音波領域
楽器の高周波オーバトーンです。調整が音声にあまり影響しません。
調整の詳細については、次の図をご参照ください。




ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック