Alibaba Real-Time Communication (ARTC) ソフトウェア開発キット (SDK) は、ボイスチェンジャー、リバーブ、美声などのリアルタイム音響効果を提供します。音声・映像通話中に API を呼び出すことで、ローカルオーディオストリームにさまざまな音響効果を追加でき、インタラクティブなエンターテインメント体験を向上させます。
機能概要
開発者は、関連する API を呼び出すことで、効果音を素早く有効にできます:
ボイスチェンジャー:ユーザーの声を、おじさん、男の子、女の子のような声に変化させます。
リバーブ:特定の空間的な雰囲気を作り出し、声が特定の会場から聞こえてくるかのようにします。
美声:声の音色を微調整し、より磁性のある、またはフレッシュな響きにします。
カスタムボイスエフェクト:プリセットの音響効果モードに加えて、API を呼び出して声のピッチ、リバーブ、イコライゼーションを調整し、カスタムエフェクトを作成できます。
サンプルコード
ARTC は、ご参考のためにオープンソースのサンプルプロジェクトを提供しています。プロジェクトをダウンロードするか、ソースコードを表示できます。サンプルコードは、以下のファイルにあります:
Android でのボイスチェンジャー、リバーブ、美声エフェクトの設定: Android/ARTCExample/BasicUsage/src/main/java/com/aliyun/artc/api/basicusage/VoiceChange/VoiceChangeActivity.java
iOS でのボイスチェンジャー、リバーブ、美声エフェクトの設定: iOS/ARTCExample/BasicUsage/VoiceChange/VoiceChangeVC.swift
前提条件
ビデオ構成を設定する前に、以下の要件を満たす必要があります。
有効な Alibaba Cloud アカウントを持ち、ApsaraVideo Real-time Communication アプリケーションを作成済みであること。詳細については、「アプリケーションの作成」をご参照ください。App ID と App Key は、アプリケーション管理コンソールから取得できます。
ARTC SDK をプロジェクトに統合し、基本的なリアルタイムの音声・映像機能を実装済みであること。SDK の統合に関する詳細については、「SDK のダウンロードと統合」をご参照ください。音声・映像通話の実装に関する詳細については、「音声・映像通話の実装」をご参照ください。
実装
このセクションでは、プロジェクトで必要な API を呼び出して、さまざまな音響効果を実装する方法について説明します。
ボイスチェンジャー
setAudioEffectVoiceChangerMode API を呼び出して、ボイスチェンジャーエフェクトを設定できます。この API は、声をおじさん、男の子、女の子のような声に変化させることができます。各音響効果は列挙値に対応しています。利用可能なボイスチェンジャーモードは以下の通りです:
ボイスチェンジャーモード | 列挙値 |
オフ |
|
老人 |
|
少年 |
|
少女 |
|
ロボット |
|
悪魔 |
|
KTV |
|
エコー |
|
方言 |
|
叫び |
|
電子音楽 |
|
蓄音機 |
|
Android
/* プリセットのボイスチェンジャーモード */
mAliRtcEngine.setAudioEffectVoiceChangerMode(mode);iOS
/* プリセットのボイスチェンジャーモード */
self.rtcEngine?.setAudioEffectVoiceChangerMode(mode)Windows
/* プリセットのボイスチェンジャーモード */
mAliRtcEngine->SetAudioEffectVoiceChangerMode(mode);リバーブ
setAudioEffectReverbMode API を呼び出して、リバーブエフェクトを実装できます。リバーブは特定の空間的な雰囲気を作り出し、声が特定の会場から聞こえてくるかのようにします。利用可能なリバーブモードとそれに対応する列挙値は以下の通りです:
リバーブモード | 列挙値 |
リバーブオフ |
|
ボーカル I |
|
ボーカル II |
|
バスルーム |
|
明るい小部屋 |
|
暗い小部屋 |
|
中くらいの部屋 |
|
広い部屋 |
|
教会ホール |
|
Android
/* プリセットのリバーブモード */
mAliRtcEngine.setAudioEffectReverbMode(mode);
/* パラメーターを設定することもできます。 */iOS
/* プリセットのリバーブモード */
self.rtcEngine?.setAudioEffectReverbMode(mode)Windows
/* プリセットのリバーブモード */
mAliRtcEngine->SetAudioEffectReverbMode(mode);
/* パラメーターを設定することもできます。 */美化
setAudioEffectBeautifyMode API を呼び出して、美声効果を実装できます。磁性のある声とフレッシュな声の 2 つのプリセットモードがサポートされています。
ビューティーモード | 列挙値 |
磁気 |
|
新しい |
|
Android
/* プリセットの美声モード */
mAliRtcEngine.setAudioEffectBeautifyMode(mode);
/* パラメーターを設定することもできます。 */iOS
/* プリセットの美声モード */
self.rtcEngine?.setAudioEffectBeautifyMode(mode)Windows
/* プリセットの美声モード */
mAliRtcEngine->SetAudioEffectBeautifyMode(mode);
/* パラメーターを設定することもできます。 */カスタムボイスエフェクト
プリセットの音響効果が要件を満たさない場合は、以下の API を呼び出してピッチ、イコライゼーション、リバーブのパラメーターを調整し、カスタムボイスエフェクトを作成できます。
利用可能な API は以下の通りです:
setAudioEffectPitchValue(value): ピッチパラメーターを設定します。value:ピッチを指定します。有効値は [0.5, 2.0] です。値 1.0 は元のピッチを示します。1.0 未満の値はピッチを下げ、1.0 を超える値はピッチを上げます。
setAudioEffectReverbParamType(type, value):リバーブエフェクトのパラメーターを設定します。この API はsetAudioEffectReverbModeの後で呼び出す必要があります。type:リバーブパラメーターのタイプ。詳細については、「AliRtcAudioEffectReverbParamType」をご参照ください。value:リバーブパラメーターの値。リバーブパラメーターのタイプによって有効値が異なります。詳細については、「AliRtcAudioEffectReverbParamType」をご参照ください。
setAudioEffectEqualizationParam:イコライザーのパラメーターを設定します。この API はsetAudioEffectBeautifyModeの後で呼び出す必要があります。bandIndex:イコライザーのバンドインデックス。有効値は 0 から 9 で、[31, 62, 125, 250, 500, 1000, 2000, 4000, 8000, 16000] Hz の 10 の周波数帯を表します。gain:イコライザーのゲイン値。有効値は -15 dB から 15 dB です。デフォルト値は 0 です。
Android
// ピッチを設定します。有効値は [0.5, 2.0] です。1.0 はピッチが変更されないことを意味します。1.0 未満の値はピッチを下げ、1.0 を超える値はピッチを上げます。
mAliRtcEngine.setAudioEffectPitchValue(1.5);
// リバーブパラメーターの設定例。setAudioEffectReverbMode の後に呼び出す必要があります。
mAliRtcEngine.setAudioEffectReverbMode(AliRtcEngine.AliRtcAudioEffectReverbMode.AliRtcSdk_AudioEffect_Reverb_Large_Room);
mAliRtcEngine.setAudioEffectReverbParamType(AliRtcEngine.AliRtcAudioEffectReverbParamType.AliRtcSdk_AudioEffect_Reverb_Room_Size, 50);
// 美声パラメーターの設定例。
mAliRtcEngine.setAudioEffectBeautifyMode(AliRtcEngine.AliRtcAudioEffectBeautifyMode.AliRtcSdk_AudioEffect_Beautify_Magnetic);
mAliRtcEngine.setAudioEffectEqualizationParam(AliRtcEngine.AliRtcAudioEffectEqualizationBandFrequency.AliRtcSdk_AudioEffect_EqualizationBand1K, 5); iOS
// ピッチを設定します。有効値は [0.5, 2.0] です。1.0 はピッチが変更されないことを意味します。1.0 未満の値はピッチを下げ、1.0 を超える値はピッチを上げます。
let pitch = 1.5
self.rtcEngine?.setAudioEffectPitchValue(pitch)
// リバーブパラメーターの設定例。setAudioEffectReverbMode の後に呼び出す必要があります。
self.rtcEngine?.setAudioEffectReverbMode(.large_Room)
self.rtcEngine?.setAudioEffectReverbParamType(.room_Size, value: 50)
// 美声パラメーターの設定例。
self.rtcEngine?.setAudioEffectBeautifyMode(.vigorous)
self.rtcEngine?.setAudioEffectEqualizationParam(.band1K, gain: 5)