VQE制御
VQE(voice quality enhancement)は、PlanetKitで動作する音声品質向上機能です。VQEにはノイズ除去フィルターをはじめ、さまざまな音声処理モジュールがありますが、アプリケーションでその機能を制御できます。
サポート通話タイプ | SDKの最低バージョン |
---|---|
1対1通話、グループ通話(カンファレンス) | PlanetKit 4.3 |
VQEには次のような音声処理モジュールがあります。
エコー除去フィルター
エコー(echo)とは、直接的な音の後に遅れてリスナーに届く反響音です。音声通話中にエコーがマイクに混入すると、話者に自分の声が聞こえてくることもあります。エコー除去フィルター(acoustic echo canceller)は、音からエコーを除去します。
音量調整フィルター
マイクハードウェアの特性であるマイク感度により、マイクが捉える音のボリュームが小さすぎたり、大きすぎたりして会話が困難になることがあります。音量調整フィルター(auto gain controller)は、ボリュームを適切なレベルに調整します。
PlanetKitは、次の2つの音量調整モードに対応しています。
- ソフトウェアモード
- 入力音声が一定の音量で維持されるようにソフトウェアで補正します。
- 補正をしすぎると音質に悪い影響を与える可能性があるため、限界があります。
- つまり、マイクから適度な音量が入る方がより良い音質を保証でき、そのために使用するるのがハードウェアモードです。
- ハードウェアモード
- マイクに流入した信号から音声区間のエネルギーを計算し、ハードウェアで音量を調整します。
- 音声区間のエネルギーが基準レベル範囲より大きければ、マイク感度を下げます。
- 音声区間のエネルギーが基準レベル範囲より小さければ、マイク感度を上げます。
- 音声区間のエネルギーが基準レベル範囲内であれば、マイク感度を維持して音声が一定のレベルに入るようにします。
- ハードウェアモードはマイク装置を直接制御するため、マイクを制御できるプラットフォームであるWindowsとmacOSのみ提供されます。
- ハードウェアモードはソフトウェアモードより音量増幅が大きい場合があり、ソフトウェアモードではよく聞こえない音量がハードウェアモードでは適度なレベルまで調整できる場合もあります。
- マイクに流入した信号から音声区間のエネルギーを計算し、ハードウェアで音量を調整します。
音量調整フィルターの基本モード
プラットフォームごとの音量調整フィルターの基本モードは次のとおりです。
プラットフォーム | 基本モード | 備考 |
---|---|---|
Android | ソフトウェアモード | ハードウェアモードは非対応 |
iOS | ソフトウェアモード | ハードウェアモードは非対応 |
macOS | ハードウェアモード | |
Windows | - PlanetKit 4.3および4.4:ソフトウェアモード - PlanetKit 5.0以上:ハードウェアモード |
ノイズ除去フィルター
ノイズとは、話者の音声以外にマイクが拾った音のことです。ノイズ除去フィルター(noise suppressor)はこのようなノイズを除去します。
関連API
PlanetKitのPlanetKitSendVoiceProcessor
クラスで音声処理モジュールを制御するAPIを提供します。
PlanetKitSendVoiceProcessor
自体を無効にすると、すべての音声処理モジュールが動作しなくなります。ユーザーがVoIP会議向けに開発された、内部的に音声処理を提供するオーディオ装置につなげることでPlanetKit通話機能を利用することもできます。このようなオーディオ装置と一緒に使用する場合、PlanetKitSendVoiceProcessor
がすでに処理されたオーディオストリームを二重に処理することによって、オーディオ品質に悪影響を及ぼす可能性があります。このような環境では、より良いオーディオ品質を提供するためにPlanetKitSendVoiceProcessor
を無効にすることをお勧めします。
PlanetKitSendVoiceProcessor
を有効にすると、次のようなAPIを利用して内部オーディオ処理モジュールを制御できます。
関連APIの詳細は、APIリファレンスを参照してください。
エコー除去
エコー除去を制御するには、setAcousticEchoCancellerMode()
メソッドを使用します。このメソッドは、PlanetKitVoiceProcessor.AcousticEchoCancellerMode
をパラメーターで渡されます。PlanetKitVoiceProcessor.AcousticEchoCancellerMode
enumは次のようなモードを提供します。
モード | 説明 |
---|---|
DISABLED | エコー除去フィルターを使用しません。 |
INTENSITY_RECOMMENDED | オーディオ装置およびOSタイプを考慮した品質テストを通じてあらかじめ設定したプリセットを適用します。どのモードに設定するか分からない場合は、INTENSITY_RECOMMENDED を使用します。 |
INTENSITY_MIN | エコー除去を最小限に抑えます。 |
INTENSITY_MAX | 積極的にエコーを低減します。 |
INTENSITY_ADAPTIVE | 内部的にエコー除去の強度を適切に調整します。 |
音量調整
音量調整を制御するには、setAutoGainControlMode()
メソッドを使用します。このメソッドは、PlanetKitVoiceProcessor.AutoGainControlMode
をパラメーターとして取得します。PlanetKitVoiceProcessor.AutoGainControlMode
enumは次のようなモードを提供します。
モード | 説明 |
---|---|
DISABLED | 音量調整フィルターを使用しません。 |
SOFTWARE | ソフトウェアで音量調整を制御します。 |
プラットフォームによって提供する音量調整制御機能に相違点があります。プラットフォームごとの基本モードと対応モードは、音量調整フィルター 基本モードを参照してください。
ノイズ除去
ノイズ除去を制御するには、setNoiseSuppressorMode()
メソッドを使用します。このメソッドは、PlanetKitVoiceProcessor.NoiseSuppressorMode
をパラメーターで渡されます。PlanetKitVoiceProcessor.NoiseSuppressorMode
enumは次のようなモードを提供します。
モード | 説明 |
---|---|
DISABLED | ノイズ除去フィルターを使用しません。 |
ENABLED | ノイズ除去フィルターを使用します。(デフォルト値) |
関連API
VQE制御に関連するAPIは、以下のとおりです。