ARTC SDK は、音声変換、残響、音声美化を含むリアルタイム音響効果を提供します。リアルタイム通信 (RTC) 通話中に、これらの効果をローカルユーザーの音声に適用する 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 アカウントをお持ちであり、RTC アプリケーションを作成済みである必要があります。詳細については、「アプリケーションの作成」をご参照ください。また、アプリケーション管理コンソールから App ID および App Key を取得してください。
-
SDK の統合を完了し、プロジェクト内で基本的な RTC 機能を実装済みである必要があります。SDK の統合手順については、「SDK のダウンロードと統合」をご参照ください。基本的な通話機能の実装については、「音声・動画通話の実装」をご参照ください。
実装方法
このセクションでは、プロジェクト内で各種音響効果を適用するための API 呼び出し方法について説明します。
音声変換
setAudioEffectVoiceChangerMode メソッドを呼び出して、高齢者、少年、少女などの音声変換効果を適用します。各効果には下記の表に示す列挙値が対応しています。
|
音声変換モード |
列挙値 |
|
無効 |
|
|
高齢者 |
|
|
少年 |
|
|
少女 |
|
|
ロボット |
|
|
悪魔 |
|
|
KTV |
|
|
エコー |
|
|
方言 |
|
|
咆哮 |
|
|
電子 |
|
|
フォノグラフ |
|
Android
// プリセットの音声変換モードを設定します。
mAliRtcEngine.setAudioEffectVoiceChangerMode(mode);
iOS
// プリセットの音声変換モードを設定します。
self.rtcEngine?.setAudioEffectVoiceChangerMode(mode)
Mac
// プリセットの音声変換モードを設定します。
[self.rtcEngine setAudioEffectVoiceChangerMode:mode];
Windows
// プリセットの音声変換モードを設定します。
mAliRtcEngine->SetAudioEffectVoiceChangerMode(mode);
残響
setAudioEffectReverbMode メソッドを呼び出して残響効果を適用します。これにより、ユーザーの音声が特定の会場から発せられているかのような空間的な臨場感が得られます。利用可能なモードを以下に示します。
|
残響モード |
列挙値 |
|
オフ |
|
|
Vocal I |
|
|
Vocal II |
|
|
バスルーム |
|
|
小規模明るい部屋 |
|
|
小規模暗い部屋 |
|
|
中規模部屋 |
|
|
広い部屋 |
|
|
教会ホール |
|
Android
// プリセットの残響モードを設定します。
mAliRtcEngine.setAudioEffectReverbMode(mode);
// パラメーターを使用して効果を個別に構成することもできます。
iOS
// プリセットの残響モードを設定します。
self.rtcEngine?.setAudioEffectReverbMode(mode)
Mac
// プリセットの残響モードを設定します。
[self.engine setAudioEffectReverbMode:selectMode];
Windows
// プリセットの残響モードを設定します。
mAliRtcEngine->SetAudioEffectReverbMode(mode);
// パラメーターを使用して効果を個別に構成することもできます。
音声美化
setAudioEffectBeautifyMode メソッドを呼び出して音声美化効果を適用します。プリセットとして「マグネティック」と「フレッシュ」の 2 つのモードが利用可能です。
|
音声美化モード |
列挙値 |
|
マグネティック |
|
|
フレッシュ |
|
Android
// プリセットの音声美化モードを設定します。
mAliRtcEngine.setAudioEffectBeautifyMode(mode);
// パラメーターを使用して効果を個別に構成することもできます。
iOS
// プリセットの音声美化モードを設定します。
self.rtcEngine?.setAudioEffectBeautifyMode(mode)
Mac
// プリセットの音声美化モードを設定します。
[self.engine setAudioEffectBeautifyMode:selectMode];
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(bandIndex, gain):イコライザパラメーターを設定します。setAudioEffectBeautifyModeの呼び出し後にこのメソッドを呼び出す必要があります。-
bandIndex:イコライザバンドのインデックス。範囲は [0, 9] で、10 個の周波数帯域(31、62、125、250、500、1000、2000、4000、8000、16000 Hz)に対応します。 -
gain:バンドのゲイン(単位:dB)。範囲は [-15, 15] です。デフォルト値は 0 です。
-
Android
// ピッチを設定します。値の範囲は 0.5 ~ 2.0 で、デフォルトは 1.0 です。
// 1.0 より小さい値はピッチを下げ、1.0 より大きい値はピッチを上げます。
mAliRtcEngine.setAudioEffectPitchValue(1.5);
// カスタム残響パラメーターを設定するには、まず残響モードを設定する必要があります。
// 例:モードを「Large Room」に設定した後、部屋のサイズを調整します。
mAliRtcEngine.setAudioEffectReverbMode(AliRtcEngine.AliRtcAudioEffectReverbMode.AliRtcSdk_AudioEffect_Reverb_Large_Room);
mAliRtcEngine.setAudioEffectReverbParamType(AliRtcEngine.AliRtcAudioEffectReverbParamType.AliRtcSdk_AudioEffect_Reverb_Room_Size, 50);
// カスタムイコライザパラメーターを設定するには、まず音声美化モードを設定する必要があります。
// 例:モードを「Magnetic」に設定した後、特定のバンドのゲインを調整します。
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)
// カスタム残響パラメーターを設定するには、まず残響モードを設定する必要があります。
// 例:モードを「Large Room」に設定した後、部屋のサイズを調整します。
self.rtcEngine?.setAudioEffectReverbMode(.large_Room)
self.rtcEngine?.setAudioEffectReverbParamType(.room_Size, value: 50)
// カスタムイコライザパラメーターを設定するには、まず音声美化モードを設定する必要があります。
// 例:モードを「Magnetic」に設定した後、特定のバンドのゲインを調整します。
self.rtcEngine?.setAudioEffectBeautifyMode(.magnetic)
self.rtcEngine?.setAudioEffectEqualizationParam(.band1K, gain: 5)
Mac
// ピッチを設定します。値の範囲は 0.5 ~ 2.0 で、デフォルトは 1.0 です。
// 1.0 より小さい値はピッチを下げ、1.0 より大きい値はピッチを上げます。
int pitch = 1.5;
[self.rtcEngine setAudioEffectPitchValue:pitch];
// カスタム残響パラメーターを設定するには、まず残響モードを設定する必要があります。
// 例:モードを「Large Room」に設定した後、部屋のサイズを調整します。
[self.rtcEngine setAudioEffectReverbMode:AliRtcAudioEffectReverb_Large_Room];
[self.rtcEngine setAudioEffectReverbParamType:AliRtcAudioEffectReverb_Room_Size value:50.0];
// カスタムイコライザパラメーターを設定するには、まず音声美化モードを設定する必要があります。
// 例:モードを「Magnetic」に設定した後、特定のバンドのゲインを調整します。
[self.rtcEngine setAudioEffectBeautifyMode:AliRtcAudioEffectBeautify_Magnetic];
[self.rtcEngine setAudioEffectEqualizationParam:AliRtcAudioEffectEqualizationBand1K gain:5.0];
Windows
// ピッチを設定します。値の範囲は 0.5 ~ 2.0 で、デフォルトは 1.0 です。
// 1.0 より小さい値はピッチを下げ、1.0 より大きい値はピッチを上げます。
mAliRtcEngine->SetAudioEffectPitchValue(1.5);
// カスタム残響パラメーターを設定するには、まず残響モードを設定する必要があります。
// 例:モードを「Large Room」に設定した後、部屋のサイズを調整します。
mAliRtcEngine->SetAudioEffectReverbMode(AliEngineAudioEffectReverbMode::AliEngineAudioEffectReverb_Large_Room);
mAliRtcEngine->SetAudioEffectReverbParamType(AliEngineAudioEffectReverbParamType::AliEngineAudioEffectReverbParamType_Room_Size, 50.0f);
// カスタムイコライザパラメーターを設定するには、まず音声美化モードを設定する必要があります。
// 例:モードを「Magnetic」に設定した後、特定のバンドのゲインを調整します。
mAliRtcEngine->SetAudioEffectBeautifyMode(AliEngineAudioEffectBeautifyMode::AliEngineAudioEffectBeautify_Magnetic);
mAliRtcEngine->SetAudioEffectEqualizationParam(AliEngineAudioEffectEqualizationBandFrequency::AliEngineAudioEffectEqualizationBandFrequency_Band1K, 5.0f);