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
前提條件
在設定視頻配置之前,請確保達成以下條件:
功能實現
本節將介紹如何在您的專案中調用相關介面以實現各種音效
變聲
調用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介面實現人聲美化,支援磁性和清新兩種預定模式。
美聲模式 | 枚舉值 |
磁性 |
|
清新 |
|
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:均衡器增益值(-15dB 到 15dB,預設為 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)