음성 통화 환경에 오디오 품질 향상 기능을 추가합니다.
Azure Communication Services 오디오 효과 노이즈 제거 기능은 원치 않는 백그라운드 노이즈를 필터링하여 음성 통화를 개선할 수 있습니다. 노이즈 제거는 음성 통화에서 백그라운드 노이즈를 제거하는 기술입니다. 배경 소음을 제거하면 더 쉽게 말하고 들을 수 있습니다. 노이즈 제거는 또한 노이즈가 많은 장소로 인해 발생하는 방해와 피로를 줄일 수 있습니다. 예를 들어 시끄러운 커피숍에서 Azure Communication Services WebJS 호출을 수행하는 경우 노이즈 억제를 켜면 통화 환경이 향상됩니다.
오디오 효과 사용: npm 패키지 호출 효과 설치
Important
이 자습서에서는 Azure Communication Services 통화 효과 SDK 버전 1.28.4
이상과 함께 Azure Communication Services 통화 SDK 버전을 1.1.2
사용합니다. GA(일반 공급) 안정적인 버전 1.28.4
이상 통화 SDK는 노이즈 억제 기능을 지원합니다. 또는 공개 미리 보기 버전을 사용하도록 선택하는 경우 호출 SDK 버전 1.24.2-beta.1
이상에서도 노이즈 억제를 지원합니다.
오디오 노이즈 억제 효과 추가에 대한 현재 브라우저 지원은 Chrome 및 Edge 데스크톱 브라우저에서만 사용할 수 있습니다.
호출 효과 라이브러리는 독립 실행형으로 사용할 수 없습니다. WebJS용 Azure Communication Services 통화 클라이언트 라이브러리와 함께 사용할 때만 작동합니다.
JavaScript용 Azure Communication Services 오디오 효과 SDK를 설치하려면 npm install
명령을 사용합니다.
GA 버전의 통화 SDK를 사용하는 경우 GA 버전의 통화 효과 SDK를 사용해야 합니다.
@azure/communication-calling-effects/v/latest
통화 SDK의 공개 미리 보기를 사용하는 경우 호출 효과 SDK의 베타 버전을 사용해야 합니다.
@azure/communication-calling-effects/v/next
노이즈 억제 효과 라이브러리 로드
오디오 효과 속성 및 메서드를 자세히 알아보는 인터페이스에 대한 자세한 내용은 오디오 효과 기능 인터페이스 API 설명서 페이지를 참조하세요.
Azure Communication Services 통화 SDK 내에서 노이즈 억제 오디오 효과를 사용하려면 현재 호출 중인 속성이 필요합니다 LocalAudioStream
. 오디오 효과를 시작하고 중지하려면 속성의 LocalAudioStream
API에 액세스 AudioEffects
해야 합니다.
import * as AzureCommunicationCallingSDK from '@azure/communication-calling';
import { DeepNoiseSuppressionEffect } from '@azure/communication-calling-effects';
// Get LocalAudioStream from the localAudioStream collection on the call object.
// 'call' here represents the call object.
const localAudioStreamInCall = call.localAudioStreams[0];
// Get the audio effects feature API from LocalAudioStream
const audioEffectsFeatureApi = localAudioStreamInCall.feature(AzureCommunicationCallingSDK.Features.AudioEffects);
// Subscribe to useful events that show audio effects status
audioEffectsFeatureApi.on('effectsStarted', (activeEffects: ActiveAudioEffects) => {
console.log(`Current status audio effects: ${activeEffects}`);
});
audioEffectsFeatureApi.on('effectsStopped', (activeEffects: ActiveAudioEffects) => {
console.log(`Current status audio effects: ${activeEffects}`);
});
audioEffectsFeatureApi.on('effectsError', (error: AudioEffectErrorPayload) => {
console.log(`Error with audio effects: ${error.message}`);
});
활성 오디오 효과 확인
현재 활성화된 노이즈 억제 효과를 확인하려면 이 속성을 사용할 activeEffects
수 있습니다.
activeEffects
속성은 현재 활성 효과의 이름이 포함된 개체를 반환합니다.
// Use the audio effects feature API.
const currentActiveEffects = audioEffectsFeatureApi.activeEffects;
// Create the noise suppression instance.
const deepNoiseSuppression = new DeepNoiseSuppressionEffect();
// We recommend that you check support for the effect in the current environment by using the isSupported API
// method. Remember that noise supression is only supported on desktop browsers for Chrome and Edge.
const isDeepNoiseSuppressionSupported = await audioEffectsFeatureApi.isSupported(deepNoiseSuppression);
if (isDeepNoiseSuppressionSupported) {
console.log('Noise supression is supported in local browser environment');
}
// To start Communication Services Deep Noise Suppression
await audioEffectsFeatureApi.startEffects({
noiseSuppression: deepNoiseSuppression
});
// To stop Communication Services Deep Noise Suppression
await audioEffectsFeatureApi.stopEffects({
noiseSuppression: true
});
노이즈 억제를 자동으로 사용하도록 설정된 통화 시작
노이즈 억제가 켜져 있는 상태에서 호출을 시작할 수 있습니다. 오디오 효과를 사용하기 위해 원본이 원시 속성이 되어서는 안 됨)을 사용하여 새 LocalAudioStream
속성을 AudioDeviceInfo
만들고 다음으로 CallStartOptions.audioOptions
전달합니다.MediaStream
LocalAudioStream
// As an example, here we're simply creating LocalAudioStream by using the current selected mic on DeviceManager.
const audioDevice = deviceManager.selectedMicrophone;
const localAudioStreamWithEffects = new AzureCommunicationCallingSDK.LocalAudioStream(audioDevice);
const audioEffectsFeatureApi = localAudioStreamWithEffects.feature(AzureCommunicationCallingSDK.Features.AudioEffects);
// Start effect
await audioEffectsFeatureApi.startEffects({
noiseSuppression: deepNoiseSuppression
});
// Pass LocalAudioStream in audioOptions in call start/accept options.
await call.startCall({
audioOptions: {
muted: false,
localAudioStreams: [localAudioStreamWithEffects]
}
});
진행 중인 호출 중에 노이즈 억제 켜기
호출을 시작하고 노이즈 억제를 설정하지 않을 수 있습니다. 노이즈 억제를 켜야 하므로 환경이 시끄러워질 수 있습니다. 노이즈 억제를 켜려면 API를 audioEffectsFeatureApi.startEffects
사용할 수 있습니다.
// Create the noise supression instance
const deepNoiseSuppression = new DeepNoiseSuppressionEffect();
// Get LocalAudioStream from the localAudioStream collection on the call object
// 'call' here represents the call object.
const localAudioStreamInCall = call.localAudioStreams[0];
// Get the audio effects feature API from LocalAudioStream
const audioEffectsFeatureApi = localAudioStreamInCall.feature(AzureCommunicationCallingSDK.Features.AudioEffects);
// We recommend that you check support for the effect in the current environment by using the isSupported method on the feature API. Remember that noise supression is only supported on desktop browsers for Chrome and Edge.
const isDeepNoiseSuppressionSupported = await audioEffectsFeatureApi.isSupported(deepNoiseSuppression);
if (isDeepNoiseSuppressionSupported) {
console.log('Noise supression is supported in the current browser environment');
}
// To start Communication Services Deep Noise Suppression
await audioEffectsFeatureApi.startEffects({
noiseSuppression: deepNoiseSuppression
});
// To stop Communication Services Deep Noise Suppression
await audioEffectsFeatureApi.stopEffects({
noiseSuppression: true
});
관련 콘텐츠
확장 API 기능 세부 정보는 오디오 효과 기능 인터페이스 설명서 페이지를 참조하세요.
네이티브 호출 SDK를 사용하여 오디오 필터를 구성하는 방법 알아보기
Azure Communication Services 오디오 효과는 오디오 통화를 개선할 수 있는 필터를 제공합니다. 네이티브 플랫폼(Android, iOS 및 Windows)의 경우 다음 필터를 구성할 수 있습니다.
에코 취소
스피커에서 내보낸 후 마이크에 다시 울려 퍼지는 발신자의 음성으로 인한 음향 에코를 제거할 수 있습니다. 에코 취소는 명확한 통신을 보장합니다.
통화 전과 통화 중에 필터를 구성할 수 있습니다. 음악 모드를 사용하는 경우에만 에코 취소를 전환할 수 있습니다. 기본적으로 이 필터는 사용하도록 설정됩니다.
노이즈 표시 안 함
입력, 에어컨 또는 거리 소리와 같은 원치 않는 배경 소음을 필터링하여 오디오 품질을 향상시킬 수 있습니다. 이 기술은 음성이 선명하고 명확하여 보다 효과적인 통신을 용이하게 합니다.
통화 전과 통화 중에 필터를 구성할 수 있습니다. 현재 사용 가능한 모드는 Off, Auto, Low 및 High입니다. 기본적으로 이 기능은 높음으로 설정됩니다.
자동 게인 컨트롤
통화 내내 일관된 오디오 수준을 보장하기 위해 마이크 볼륨을 자동으로 조정할 수 있습니다.
- 아날로그 자동 게인 컨트롤은 호출 전에만 사용할 수 있는 필터입니다. 기본적으로 이 필터는 사용하도록 설정됩니다.
- 디지털 자동 게인 컨트롤은 호출 전에만 사용할 수 있는 필터입니다. 기본적으로 이 필터는 사용하도록 설정됩니다.
음악 모드
음악 모드는 통화 전과 통화 중에 사용할 수 있는 필터입니다. 음악 모드에 대한 자세한 내용은 네이티브 통화 SDK의 음악 모드를 참조 하세요. 음악 모드는 일대일 또는 그룹 호출을 통해 네이티브 플랫폼에서만 작동합니다. 네이티브 플랫폼과 웹 간의 일대일 호출에서는 작동하지 않습니다. 기본적으로 음악 모드는 사용하지 않도록 설정됩니다.
필수 조건
- 활성 구독이 있는 Azure 계정. 체험 계정을 만듭니다.
- 배포된 Azure Communication Services 리소스. Azure Communication Services 리소스를 만듭니다.
- 호출 클라이언트를 사용하도록 설정하는 사용자 액세스 토큰입니다. 자세한 내용은 액세스 토큰 만들기 및 관리를 참조하세요.
- 선택 사항: 빠른 시작을 완료하여 애플리케이션에 음성 통화를 추가합니다.
SDK 설치
프로젝트 수준 build.gradle
파일을 찾아 다음 아래 buildscript
allprojects
의 리포지토리 목록에 추가 mavenCentral()
합니다.
buildscript {
repositories {
...
mavenCentral()
...
}
}
allprojects {
repositories {
...
mavenCentral()
...
}
}
그런 다음, 모듈 수준 build.gradle
파일에서 섹션에 다음 줄을 dependencies
추가합니다.
dependencies {
...
implementation 'com.azure.android:azure-communication-calling:1.0.0'
...
}
필요한 개체 초기화
CallAgent
인스턴스를 만들려면 CallClient
인스턴스에서 createCallAgent
메서드를 호출해야 합니다. 이 호출은 CallAgent
인스턴스 개체를 비동기적으로 반환합니다.
createCallAgent
메서드는 CommunicationUserCredential
을 인수로 사용하여 액세스 토큰을 캡슐화합니다.
DeviceManager
에 액세스하려면 먼저 callAgent
인스턴스를 만들어야 합니다. 그런 다음 CallClient.getDeviceManager
메서드를 사용하여 DeviceManager
를 가져올 수 있습니다.
String userToken = '<user token>';
CallClient callClient = new CallClient();
CommunicationTokenCredential tokenCredential = new CommunicationTokenCredential(userToken);
android.content.Context appContext = this.getApplicationContext(); // From within an activity, for instance
CallAgent callAgent = callClient.createCallAgent(appContext, tokenCredential).get();
DeviceManager deviceManager = callClient.getDeviceManager(appContext).get();
호출자의 표시 이름을 설정하려면 다음과 같은 대체 방법을 사용합니다.
String userToken = '<user token>';
CallClient callClient = new CallClient();
CommunicationTokenCredential tokenCredential = new CommunicationTokenCredential(userToken);
android.content.Context appContext = this.getApplicationContext(); // From within an activity, for instance
CallAgentOptions callAgentOptions = new CallAgentOptions();
callAgentOptions.setDisplayName("Alice Bob");
DeviceManager deviceManager = callClient.getDeviceManager(appContext).get();
CallAgent callAgent = callClient.createCallAgent(appContext, tokenCredential, callAgentOptions).get();
오디오 필터 기능을 사용하여 나가는 오디오에 다른 오디오 전처리 옵션을 적용할 수 있습니다. 오디오 필터의 두 가지 유형은 다음과 LiveOutgoingAudioFilters
같습니다OutgoingAudioFilters
. 호출이 시작되기 전에 설정을 변경하는 데 사용합니다 OutgoingAudioFilters
. 통화가 진행 중인 동안 설정을 변경하는 데 사용합니다 LiveOutgoingAudioFilters
.
먼저 통화 SDK 및 관련 클래스를 가져와야 합니다.
import com.azure.android.communication.calling.OutgoingAudioOptions;
import com.azure.android.communication.calling.OutgoingAudioFilters;
import com.azure.android.communication.calling.LiveOutgoingAudioFilters;
통화가 시작되기 전에
통화가 시작될 때 적용 OutgoingAudioFilters
할 수 있습니다.
다음 코드와 같이 속성을 만들어 OutgoingAudioFilters
전달 OutgoingAudioOptions
하여 시작합니다.
OutgoingAudioOptions outgoingAudioOptions = new OutgoingAudioOptions();
OutgoingAudioFilters filters = new OutgoingAudioFilters();
filters.setNoiseSuppressionMode(NoiseSuppressionMode.HIGH);
filters.setAnalogAutomaticGainControlEnabled(true);
filters.setDigitalAutomaticGainControlEnabled(true);
filters.setMusicModeEnabled(true);
filters.setAcousticEchoCancellationEnabled(true);
outgoingAudioOptions.setAudioFilters(filters);
통화 중
통화가 시작된 후에는 LiveOutgoingAudioFilters
를 적용할 수 있습니다. 통화 중에 통화 개체에서 이 개체를 검색할 수 있습니다. LiveOutgoingAudioFilters
의 설정을 변경하려면 클래스 내의 구성원들을 유효한 값으로 설정한 뒤 적용합니다.
활성 호출 중에 사용할 수 있는 OutgoingAudioFilters
필터의 하위 집합만 사용할 수 있습니다. 음악 모드, 에코 취소 및 노이즈 억제 모드입니다.
LiveOutgoingAudioFilters filters = call.getLiveOutgoingAudioFilters();
filters.setMusicModeEnabled(false);
filters.setAcousticEchoCancellationEnabled(false);
filters.setNoiseSuppressionMode(NoiseSuppressionMode.HIGH);
네이티브 호출 SDK를 사용하여 오디오 필터를 구성하는 방법 알아보기
Azure Communication Services 오디오 효과는 오디오 통화를 개선할 수 있는 필터를 제공합니다. 네이티브 플랫폼(Android, iOS 및 Windows)의 경우 다음 필터를 구성할 수 있습니다.
에코 취소
스피커에서 내보낸 후 마이크에 다시 울려 퍼지는 발신자의 음성으로 인한 음향 에코를 제거할 수 있습니다. 에코 취소는 명확한 통신을 보장합니다.
통화 전과 통화 중에 필터를 구성할 수 있습니다. 음악 모드를 사용하는 경우에만 에코 취소를 전환할 수 있습니다. 기본적으로 이 필터는 사용하도록 설정됩니다.
노이즈 표시 안 함
입력, 에어컨 또는 거리 소리와 같은 원치 않는 배경 소음을 필터링하여 오디오 품질을 향상시킬 수 있습니다. 이 기술은 음성이 선명하고 명확하여 보다 효과적인 통신을 용이하게 합니다.
통화 전과 통화 중에 필터를 구성할 수 있습니다. 현재 사용 가능한 모드는 Off, Auto, Low 및 High입니다. 기본적으로 이 기능은 높음으로 설정됩니다.
자동 게인 컨트롤
통화 내내 일관된 오디오 수준을 보장하기 위해 마이크 볼륨을 자동으로 조정할 수 있습니다.
- 아날로그 자동 게인 컨트롤은 호출 전에만 사용할 수 있는 필터입니다. 기본적으로 이 필터는 사용하도록 설정됩니다.
- 디지털 자동 게인 컨트롤은 호출 전에만 사용할 수 있는 필터입니다. 기본적으로 이 필터는 사용하도록 설정됩니다.
음악 모드
음악 모드는 통화 전과 통화 중에 사용할 수 있는 필터입니다. 음악 모드에 대한 자세한 내용은 네이티브 통화 SDK의 음악 모드를 참조 하세요. 음악 모드는 일대일 또는 그룹 호출을 통해 네이티브 플랫폼에서만 작동합니다. 네이티브 플랫폼과 웹 간의 일대일 호출에서는 작동하지 않습니다. 기본적으로 음악 모드는 사용하지 않도록 설정됩니다.
필수 조건
- 활성 구독이 있는 Azure 계정. 체험 계정을 만듭니다.
- 배포된 Azure Communication Services 리소스. Azure Communication Services 리소스를 만듭니다.
- 호출 클라이언트를 사용하도록 설정하는 사용자 액세스 토큰입니다. 자세한 내용은 액세스 토큰 만들기 및 관리를 참조하세요.
- 선택 사항: 빠른 시작을 완료하여 애플리케이션에 음성 통화를 추가합니다.
시스템 설정
다음 단계에 따라 시스템을 설정합니다.
Xcode 프로젝트 만들기
Xcode에서 새 iOS 프로젝트를 만들고 단일 보기 앱 템플릿을 선택합니다. 이 문서에서는 SwiftUI 프레임워크를 사용하므로 언어를 Swift로 설정하고 인터페이스를 SwiftUI로 설정해야 합니다.
이 문서에서는 테스트를 만들지 않을 것입니다. 테스트 포함 확인란을 선택 취소합니다.
CocoaPods를 사용하여 패키지 및 종속성 설치
다음 예제와 같이 애플리케이션에 대한 Podfile을 만듭니다.
platform :ios, '13.0' use_frameworks! target 'AzureCommunicationCallingSample' do pod 'AzureCommunicationCalling', '~> 1.0.0' end
pod install
를 실행합니다.Xcode로
.xcworkspace
를 엽니다.
마이크에 대한 액세스 요청
디바이스의 마이크에 액세스하려면 앱의 정보 속성 목록을 NSMicrophoneUsageDescription
(으)로 업데이트해야 합니다. 연결된 값을 시스템에서 사용자의 액세스를 요청하는 데 사용하는 대화 상자에 포함된 문자열로 설정합니다.
프로젝트 트리의 Info.plist 항목을 마우스 오른쪽 단추로 클릭한 다음 Open As>Source Code를 선택합니다. 최상위 <dict>
섹션에 다음 줄을 추가한 다음, 파일을 저장합니다.
<key>NSMicrophoneUsageDescription</key>
<string>Need microphone access for VOIP calling.</string>
앱 프레임워크 설정
프로젝트의 ContentView.swift
파일을 엽니다. AzureCommunicationCalling
라이브러리를 가져오려면 파일 상단에 import
선언을 추가합니다. 추가로 AVFoundation
을 가져옵니다. 코드의 오디오 권한 요청에 필요합니다.
import AzureCommunicationCalling
import AVFoundation
CallAgent 초기화
CallAgent
에서 CallClient
인스턴스를 만들려면 초기화된 후 비동기적으로 callClient.createCallAgent
개체를 반환하는 CallAgent
메서드를 사용해야 합니다.
호출 클라이언트를 만들려면 CommunicationTokenCredential
개체를 전달합니다.
import AzureCommunication
let tokenString = "token_string"
var userCredential: CommunicationTokenCredential?
do {
let options = CommunicationTokenRefreshOptions(initialToken: token, refreshProactively: true, tokenRefresher: self.fetchTokenSync)
userCredential = try CommunicationTokenCredential(withOptions: options)
} catch {
updates("Couldn't created Credential object", false)
initializationDispatchGroup!.leave()
return
}
// tokenProvider needs to be implemented by Contoso, which fetches a new token
public func fetchTokenSync(then onCompletion: TokenRefreshOnCompletion) {
let newToken = self.tokenProvider!.fetchNewToken()
onCompletion(newToken, nil)
}
직접 만든 CommunicationTokenCredential
개체를 CallClient
에 전달하고 표시 이름을 설정합니다.
self.callClient = CallClient()
let callAgentOptions = CallAgentOptions()
options.displayName = " iOS Azure Communication Services User"
self.callClient!.createCallAgent(userCredential: userCredential!,
options: callAgentOptions) { (callAgent, error) in
if error == nil {
print("Create agent succeeded")
self.callAgent = callAgent
} else {
print("Create agent failed")
}
})
오디오 필터 기능을 사용하여 나가는 오디오에 다른 오디오 전처리 옵션을 적용할 수 있습니다. 오디오 필터의 두 가지 유형은 다음과 LiveOutgoingAudioFilters
같습니다OutgoingAudioFilters
. 호출이 시작되기 전에 설정을 변경하는 데 사용합니다 OutgoingAudioFilters
. 통화가 진행 중인 동안 설정을 변경하는 데 사용합니다 LiveOutgoingAudioFilters
.
먼저 통화 SDK를 가져와야 합니다.
import AzureCommunicationCalling
통화가 시작되기 전에
통화가 시작될 때 적용 OutgoingAudioFilters
할 수 있습니다.
속성을 만들고 OutgoingAudioFilters
여기에 표시된 대로 전달 OutgoingAudioOptions
하여 시작합니다.
let outgoingAudioOptions = OutgoingAudioOptions()
let filters = OutgoingAudioFilters()
filters.NoiseSuppressionMode = NoiseSuppressionMode.high
filters.analogAutomaticGainControlEnabled = true
filters.digitalAutomaticGainControlEnabled = true
filters.musicModeEnabled = true
filters.acousticEchoCancellationEnabled = true
outgoingAudioOptions.audioFilters = filters
통화 중
통화가 시작된 후에는 LiveOutgoingAudioFilters
를 적용할 수 있습니다. 통화 중에 통화 개체에서 이 개체를 검색할 수 있습니다. LiveOutgoingAudioFilters
의 설정을 변경하려면 클래스 내의 구성원들을 유효한 값으로 설정한 뒤 적용합니다.
활성 호출 중에 사용할 수 있는 OutgoingAudioFilters
필터의 하위 집합만 사용할 수 있습니다. 음악 모드, 에코 취소 및 노이즈 억제 모드입니다.
LiveOutgoingAudioFilters filters = call.liveOutgoingAudioFilters
filters.musicModeEnabled = true
filters.acousticEchoCancellationEnabled = true
filters.NoiseSuppressionMode = NoiseSuppressionMode.high
네이티브 호출 SDK를 사용하여 오디오 필터를 구성하는 방법 알아보기
Azure Communication Services 오디오 효과는 오디오 통화를 개선할 수 있는 필터를 제공합니다. 네이티브 플랫폼(Android, iOS 및 Windows)의 경우 다음 필터를 구성할 수 있습니다.
에코 취소
스피커에서 내보낸 후 마이크에 다시 울려 퍼지는 발신자의 음성으로 인한 음향 에코를 제거할 수 있습니다. 에코 취소는 명확한 통신을 보장합니다.
통화 전과 통화 중에 필터를 구성할 수 있습니다. 음악 모드를 사용하는 경우에만 에코 취소를 전환할 수 있습니다. 기본적으로 이 필터는 사용하도록 설정됩니다.
노이즈 표시 안 함
입력, 에어컨 또는 거리 소리와 같은 원치 않는 배경 소음을 필터링하여 오디오 품질을 향상시킬 수 있습니다. 이 기술은 음성이 선명하고 명확하여 보다 효과적인 통신을 용이하게 합니다.
통화 전과 통화 중에 필터를 구성할 수 있습니다. 현재 사용 가능한 모드는 Off, Auto, Low 및 High입니다. 기본적으로 이 기능은 높음으로 설정됩니다.
자동 게인 컨트롤
통화 내내 일관된 오디오 수준을 보장하기 위해 마이크 볼륨을 자동으로 조정할 수 있습니다.
- 아날로그 자동 게인 컨트롤은 호출 전에만 사용할 수 있는 필터입니다. 기본적으로 이 필터는 사용하도록 설정됩니다.
- 디지털 자동 게인 컨트롤은 호출 전에만 사용할 수 있는 필터입니다. 기본적으로 이 필터는 사용하도록 설정됩니다.
음악 모드
음악 모드는 통화 전과 통화 중에 사용할 수 있는 필터입니다. 음악 모드에 대한 자세한 내용은 네이티브 통화 SDK의 음악 모드를 참조 하세요. 음악 모드는 일대일 또는 그룹 호출을 통해 네이티브 플랫폼에서만 작동합니다. 네이티브 플랫폼과 웹 간의 일대일 호출에서는 작동하지 않습니다. 기본적으로 음악 모드는 사용하지 않도록 설정됩니다.
필수 조건
- 활성 구독이 있는 Azure 계정. 체험 계정을 만듭니다.
- 배포된 Azure Communication Services 리소스. Azure Communication Services 리소스를 만듭니다.
- 호출 클라이언트를 사용하도록 설정하는 사용자 액세스 토큰입니다. 자세한 내용은 액세스 토큰 만들기 및 관리를 참조하세요.
- 선택 사항: 빠른 시작을 완료하여 애플리케이션에 음성 통화를 추가합니다.
시스템 설정
다음 단계에 따라 시스템을 설정합니다.
Visual Studio 프로젝트 만들기
유니버설 Windows 플랫폼 앱의 경우 Visual Studio 2022에서 새 빈 앱(유니버설 Windows) 프로젝트를 만듭니다. 프로젝트 이름을 입력한 다음 10.0.17763.0보다 버전이 높은 Windows SDK를 아무거나 선택합니다.
WinUI 3 앱의 경우, 빈 앱, 패키지됨(데스크톱의 WinUI 3) 템플릿으로 새 프로젝트를 만들어 한 페이지 짜리 WinUI 3 앱을 설정합니다. Windows 앱 SDK 버전 1.3 이상이 필요합니다.
NuGet 패키지 관리자를 사용하여 패키지와 종속성 설치
Calling SDK API와 라이브러리는 NuGet 패키지를 통해 공개적으로 사용할 수 있습니다.
호출 SDK NuGet 패키지를 찾고, 다운로드하고, 설치하려면 다음을 수행합니다.
- 도구>NuGet 패키지 관리자>솔루션용 NuGet 패키지 관리를 선택해 NuGet 패키지 관리자를 엽니다.
- 찾아보기를 선택한 다음 검색 상자에 Azure.Communication.Calling.WindowsClient를 입력합니다.
- 시험판 포함 확인란이 선택되어 있는지 확인합니다.
- Azure.Communication.Calling.WindowsClient 패키지를 선택한 다음, Azure.Communication.Calling.WindowsClient 1.4.0-beta.1 이상 버전을 선택합니다.
- 오른쪽 창에서 Azure Communication Services 프로젝트에 해당하는 확인란을 선택합니다.
- 설치를 선택합니다.
오디오 필터 기능을 사용하여 나가는 오디오에 다른 오디오 전처리를 적용할 수 있습니다. 오디오 필터의 두 가지 유형은 다음과 LiveOutgoingAudioFilters
같습니다OutgoingAudioFilters
. 호출이 시작되기 전에 설정을 변경하는 데 사용합니다 OutgoingAudioFilters
. 통화가 진행 중인 동안 설정을 변경하는 데 사용합니다 LiveOutgoingAudioFilters
.
먼저 통화 SDK를 가져와야 합니다.
using Azure.Communication;
using Azure.Communication.Calling.WindowsClient;
통화가 시작되기 전에
통화가 시작될 때 적용 OutgoingAudioFilters
할 수 있습니다.
다음 코드와 같이 속성을 만들어 OutgoingAudioFilters
전달 OutgoingAudioOptions
하여 시작합니다.
var outgoingAudioOptions = new OutgoingAudioOptions();
var filters = new OutgoingAudioFilters()
{
AnalogAutomaticGainControlEnabled = true,
DigitalAutomaticGainControlEnabled = true,
MusicModeEnabled = true,
AcousticEchoCancellationEnabled = true,
NoiseSuppressionMode = NoiseSuppressionMode.High
};
outgoingAudioOptions.Filters = filters;
통화 중
통화가 시작된 후에는 LiveOutgoingAudioFilters
를 적용할 수 있습니다. 호출이 시작된 후 호출 개체에서 이 개체를 검색할 수 있습니다. LiveOutgoingAudioFilters
의 설정을 변경하려면 클래스 내의 구성원들을 유효한 값으로 설정한 뒤 적용합니다.
활성 호출 중에 사용할 수 있는 OutgoingAudioFilters
필터의 하위 집합만 사용할 수 있습니다. 음악 모드, 에코 취소 및 노이즈 억제 모드입니다.
LiveOutgoingAudioFilters filter = call.LiveOutgoingAudioFilters;
filter.MusicModeEnabled = true;
filter.AcousticEchoCancellationEnabled = true;
filter.NoiseSuppressionMode = NoiseSuppressionMode.Auto;