Alibaba リアルタイムコミュニケーション (ARTC) のソフトウェア開発キット (SDK) は、ボイスチェンジ、リバーブ、ボイスビューティフィケーションなどのリアルタイム効果音を提供します。音声通話やビデオ通話中に 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 アカウントを使用して、リアルタイム音声・映像アプリケーションを作成します。詳細については、「アプリケーションの作成」をご参照ください。次に、管理コンソールから App ID と App Key を取得します。
ARTC SDK をプロジェクトに統合し、基本的なリアルタイムの音声およびビデオ機能を実装します。SDK の統合に関する詳細については、「SDK のダウンロード/統合」をご参照ください。音声通話およびビデオ通話の実装に関する詳細については、「音声通話とビデオ通話の実装」をご参照ください。
実装
このセクションでは、プロジェクトで関連するインターフェイスを呼び出して、さまざまな効果音を実装する方法について説明します。
ボイスチェンジ
setAudioEffectVoiceChangerMode インターフェイスを呼び出して、ボイスチェンジエフェクトを設定できます。このエフェクトは、声を老人、少年、少女の声のように聞こえさせることができます。各効果音は列挙値に対応しています。利用可能なボイスチェンジモードは次のとおりです:
ボイスチェンジエフェクトモード | 列挙値 |
オフ |
|
老人 |
|
少年 |
|
少女 |
|
ロボット |
|
悪魔 |
|
KTV |
|
エコー |
|
方言 |
|
咆哮 |
|
エレクトロニック |
|
蓄音機 |
|
Android
/* プリセットのボイスチェンジモード。 */
mAliRtcEngine.setAudioEffectVoiceChangerMode(mode);iOS
/* プリセットのボイスチェンジモード。 */
self.rtcEngine?.setAudioEffectVoiceChangerMode(mode)Windows
/* プリセットのボイスチェンジモード。 */
mAliRtcEngine->SetAudioEffectVoiceChangerMode(mode);リバーブ
setAudioEffectReverbMode インターフェイスを呼び出して、リバーブエフェクトを実装できます。これらのエフェクトは、特定の空間的な雰囲気を作り出し、特定の会場から聞こえてくるような音声にします。関連する列挙値は次のとおりです:
リバーブモード | 列挙値 |
リバーブオフ |
|
ボーカル I |
|
ボーカル II |
|
バスルーム |
|
明るい小部屋 |
|
暗い小部屋 |
|
中くらいの部屋 |
|
広い部屋 |
|
教会ホール |
|
Android
/* プリセットのリバーブモード。 */
mAliRtcEngine.setAudioEffectReverbMode(mode);
/* パラメーターを設定してモードを指定することもできます。 */iOS
/* プリセットのリバーブモード。 */
self.rtcEngine?.setAudioEffectReverbMode(mode)Windows
/* プリセットのリバーブモード。 */
mAliRtcEngine->SetAudioEffectReverbMode(mode);
/* パラメーターを設定してモードを指定することもできます。 */ボイスビューティフィケーション
setAudioEffectBeautifyMode インターフェイスを呼び出して、ボイスビューティフィケーションを実装できます。磁気のある声とさわやかな声の 2 つのプリセットモードがサポートされています。
ボイスビューティフィケーションモード | 列挙値 |
磁気 |
|
新しい |
|
Android
/* プリセットのボイスビューティフィケーションモード。 */
mAliRtcEngine.setAudioEffectBeautifyMode(mode);
/* パラメーターを設定してモードを指定することもできます。 */iOS
/* プリセットのボイスビューティフィケーションモード。 */
self.rtcEngine?.setAudioEffectBeautifyMode(mode)Windows
/* プリセットのボイスビューティフィケーションモード。 */
mAliRtcEngine->SetAudioEffectBeautifyMode(mode);
/* パラメーターを設定してモードを指定することもできます。 */カスタムボイスエフェクト
プリセットの効果音が要件を満たさない場合は、次のインターフェイスを呼び出して、音声のピッチ、イコライゼーション、リバーブのパラメーターを調整できます。これにより、カスタムボイスエフェクトを作成できます。
関連するインターフェイスは次のとおりです:
setAudioEffectPitchValue(value): ピッチパラメーターを設定します。value: 値の範囲は [0.5, 2.0] です。値 1.0 はピッチが変更されないことを示します。1.0 未満の値はピッチを下げ、1.0 より大きい値はピッチを上げます。
setAudioEffectReverbParamType(type, value): リバーブエフェクトのパラメーターを設定します。このインターフェイスは、setAudioEffectReverbModeの後で呼び出す必要があります。type: リバーブパラメーターのタイプ。詳細については、「AliRtcAudioEffectReverbParamType」をご参照ください。value: リバーブパラメーターの値。リバーブパラメーターのタイプによって値の範囲は異なります。詳細については、「AliRtcAudioEffectReverbParamType」をご参照ください。
setAudioEffectEqualizationParam: イコライザーパラメーターを設定します。このインターフェイスは、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)