Udostępnij za pośrednictwem


Dodawanie ulepszeń jakości dźwięku do środowiska połączeń audio

Możliwości pomijania szumu w usługach Azure Communication Services mogą poprawić wywołania audio przez filtrowanie niepożądanych szumów w tle. Tłumienie szumu to technologia, która usuwa szumy tła z wywołań dźwiękowych. Wyeliminowanie szumu tła ułatwia rozmowę i słuchanie. Tłumienie szumu może również zmniejszyć rozproszenie uwagi i zmęczenie spowodowane hałaśliwymi miejscami. Jeśli na przykład wykonujesz wywołanie webJS usług Azure Communication Services w hałaśliwym kawiarni, włączenie tłumienia szumu może poprawić środowisko wywołania.

Używanie efektów dźwiękowych: instalowanie pakietu npm efektów wywołujących

Ważne

Ten samouczek korzysta z wersji zestawu SDK wywoływania usług Azure Communication Services lub nowszej wraz z wersją 1.28.4 1.1.2 zestawu SDK wywołania usług Azure Communication Services lub nowszą. Ogólnie dostępna wersja stabilna i nowsza wersja 1.28.4 zestawu Sdk wywołującego obsługują funkcje pomijania szumów. Alternatywnie, jeśli zdecydujesz się korzystać z publicznej wersji zapoznawczej, wywoływanie wersji 1.24.2-beta.1 zestawu SDK i nowszych również obsługuje tłumienie szumu.

Bieżąca obsługa przeglądarki na potrzeby dodawania efektów pomijania szumu audio jest dostępna tylko w przeglądarkach klasycznych Chrome i Edge.

Biblioteka efektów wywołujących nie może być używana autonomicznie. Działa tylko wtedy, gdy jest używana z biblioteką klienta wywołującą usługi Azure Communication Services dla usługi WebJS.

Użyj polecenia , npm install aby zainstalować zestaw SDK efektów dźwiękowych usług Azure Communication Services dla języka JavaScript.

Jeśli używasz ogólnie dostępnej wersji zestawu SDK wywołującego, musisz użyć ogólnie dostępnej wersji zestawu SDK efektów wywołujących.

@azure/communication-calling-effects/v/latest

Jeśli używasz publicznej wersji zapoznawczej zestawu Calling SDK, musisz użyć wersji beta zestawu SDK wywołującego efekty.

@azure/communication-calling-effects/v/next

Ładowanie biblioteki efektów pomijania szumu

Aby uzyskać informacje na temat interfejsu, który zawiera szczegółowe informacje o właściwościach i metodach efektów dźwiękowych, zobacz stronę dokumentacji interfejsu API interfejsu API funkcji efektów dźwiękowych.

Aby użyć efektów dźwiękowych pomijania szumu w zestawie SDK wywołującym usługi Azure Communication Services, potrzebujesz LocalAudioStream właściwości, która jest obecnie w wywołaniu. Aby uruchomić i zatrzymać efekty dźwiękowe, musisz mieć dostęp do interfejsu AudioEffects LocalAudioStream API właściwości .

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}`);
});

Sprawdzanie, jakie efekty dźwiękowe są aktywne

Aby sprawdzić, jakie efekty tłumienia szumu są obecnie aktywne, możesz użyć activeEffects właściwości .

Właściwość activeEffects zwraca obiekt z nazwami bieżących aktywnych efektów.

// 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
});

Uruchamianie wywołania z automatycznym pomijaniem szumu

Możesz rozpocząć wywołanie z włączonym pomijaniem szumu. Utwórz nową LocalAudioStream właściwość za AudioDeviceInfo pomocą polecenia ( LocalAudioStream źródło nie powinno być właściwością raw MediaStream do używania efektów dźwiękowych) i przekaż ją w pliku CallStartOptions.audioOptions:

// 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]
    }
});

Włączanie tłumienia szumu podczas trwającego wywołania

Możesz uruchomić wywołanie i nie włączyć pomijania szumu. Środowisko może być hałaśliwe, aby trzeba było włączyć tłumienie szumu. Aby włączyć pomijanie szumu, możesz użyć interfejsu audioEffectsFeatureApi.startEffects API.

// 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
});

Zobacz stronę dokumentacji interfejsu funkcji Audio Effects, aby uzyskać szczegółowe informacje o rozszerzonych funkcjach interfejsu API.

Dowiedz się, jak skonfigurować filtry audio przy użyciu natywnych zestawów SDK wywoływania

Efekty dźwiękowe usług Azure Communication Services oferują filtry, które mogą poprawić połączenie audio. W przypadku platform natywnych (Android, iOS i Windows) można skonfigurować następujące filtry.

Anulowanie echa

Możesz wyeliminować echo akustyczne spowodowane przez głos dzwoniącego, który odbija się z powrotem do mikrofonu po jego emisji z głośnika. Anulowanie echa zapewnia wyraźną komunikację.

Filtr można skonfigurować przed wywołaniem i podczas jego wywołania. Anulowanie echa można przełączać tylko wtedy, gdy jest włączony tryb muzyki. Domyślnie ten filtr jest włączony.

Tłumienie szumów

Jakość dźwięku można poprawić, filtrując niechciane szumy tła, takie jak wpisywanie, klimatyzacja lub dźwięki uliczne. Technologia ta zapewnia, że głos jest ostry i jasny, aby ułatwić skuteczniejszą komunikację.

Filtr można skonfigurować przed wywołaniem i podczas jego wywołania. Obecnie dostępne tryby to Wyłączone, Automatyczne, Niskie i Wysokie. Domyślnie ta funkcja jest ustawiona na Wartość Wysoka.

Automatyczna kontrola nad przyrostem

Możesz automatycznie dostosować głośność mikrofonu, aby zapewnić spójne poziomy dźwięku w całym wywołaniu.

  • Analog automatyczna kontrola przyrostka jest filtrem dostępnym tylko przed wywołaniem. Domyślnie ten filtr jest włączony.
  • Cyfrowe automatyczne sterowanie przyrostkiem jest filtrem dostępnym tylko przed wywołaniem. Domyślnie ten filtr jest włączony.

Tryb muzyki

Tryb muzyki to filtr dostępny przed i podczas połączenia. Aby dowiedzieć się więcej na temat trybu muzycznego, zobacz Tryb muzyki w zestawie SDK natywnych wywołań. Tryb muzyki działa tylko na platformach natywnych za pośrednictwem wywołań jeden na jeden lub grup. Nie działa w wywołaniach "jeden do jednego" między platformami natywnymi i siecią Web. Domyślnie tryb muzyki jest wyłączony.

Wymagania wstępne

Instalacja zestawu SDK

Znajdź plik na poziomie build.gradle projektu i dodaj mavenCentral() go do listy repozytoriów w obszarze buildscript i allprojects:

buildscript {
    repositories {
    ...
        mavenCentral()
    ...
    }
}
allprojects {
    repositories {
    ...
        mavenCentral()
    ...
    }
}

Następnie w pliku na poziomie build.gradle modułu dependencies dodaj następujące wiersze do sekcji:

dependencies {
    ...
    implementation 'com.azure.android:azure-communication-calling:1.0.0'
    ...
}

Inicjowanie wymaganych obiektów

Aby utworzyć CallAgent wystąpienie, należy wywołać createCallAgent metodę w wystąpieniu CallClient . To wywołanie asynchroniczne zwraca CallAgent obiekt wystąpienia.

Metoda createCallAgent przyjmuje CommunicationUserCredential jako argument, który hermetyzuje token dostępu.

Aby uzyskać dostęp, DeviceManagernależy najpierw utworzyć callAgent wystąpienie. Następnie możesz użyć metody , aby pobrać metodę 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();

Aby ustawić nazwę wyświetlaną elementu wywołującego, użyj tej alternatywnej metody:

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();

Możesz użyć funkcji filtru audio, aby zastosować różne opcje przetwarzania wstępnego audio do wychodzącego dźwięku. Istnieją dwa typy filtrów OutgoingAudioFilters audio i LiveOutgoingAudioFilters. Użyj polecenia OutgoingAudioFilters , aby zmienić ustawienia przed rozpoczęciem wywołania. Użyj LiveOutgoingAudioFilters polecenia , aby zmienić ustawienia, gdy wywołanie jest w toku.

Najpierw należy zaimportować zestaw SDK wywoływania i skojarzone klasy:

import com.azure.android.communication.calling.OutgoingAudioOptions;
import com.azure.android.communication.calling.OutgoingAudioFilters;
import com.azure.android.communication.calling.LiveOutgoingAudioFilters;

Przed rozpoczęciem połączenia

Można zastosować OutgoingAudioFilters podczas uruchamiania wywołania.

Zacznij od utworzenia OutgoingAudioFilters właściwości i przekazania jej do OutgoingAudioOptionselementu , jak pokazano w poniższym kodzie:

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);

W trakcie rozmowy telefonicznej

Można zastosować po LiveOutgoingAudioFilters rozpoczęciu połączenia. Ten obiekt można pobrać z obiektu wywołania podczas wywołania. Aby zmienić ustawienie w LiveOutgoingAudioFilterspliku , ustaw elementy członkowskie wewnątrz klasy na prawidłową wartość i są one stosowane.

Podczas aktywnego wywołania jest dostępny tylko podzbiór dostępnych filtrów OutgoingAudioFilters . Są one trybem muzycznym, anulowaniem echa i trybem pomijania szumu.

LiveOutgoingAudioFilters filters = call.getLiveOutgoingAudioFilters();
filters.setMusicModeEnabled(false);
filters.setAcousticEchoCancellationEnabled(false);
filters.setNoiseSuppressionMode(NoiseSuppressionMode.HIGH);

Dowiedz się, jak skonfigurować filtry audio przy użyciu natywnych zestawów SDK wywoływania

Efekty dźwiękowe usług Azure Communication Services oferują filtry, które mogą poprawić połączenie audio. W przypadku platform natywnych (Android, iOS i Windows) można skonfigurować następujące filtry.

Anulowanie echa

Możesz wyeliminować echo akustyczne spowodowane przez głos dzwoniącego, który odbija się z powrotem do mikrofonu po jego emisji z głośnika. Anulowanie echa zapewnia wyraźną komunikację.

Filtr można skonfigurować przed wywołaniem i podczas jego wywołania. Anulowanie echa można przełączać tylko wtedy, gdy jest włączony tryb muzyki. Domyślnie ten filtr jest włączony.

Tłumienie szumów

Jakość dźwięku można poprawić, filtrując niechciane szumy tła, takie jak wpisywanie, klimatyzacja lub dźwięki uliczne. Technologia ta zapewnia, że głos jest ostry i jasny, aby ułatwić skuteczniejszą komunikację.

Filtr można skonfigurować przed wywołaniem i podczas jego wywołania. Obecnie dostępne tryby to Wyłączone, Automatyczne, Niskie i Wysokie. Domyślnie ta funkcja jest ustawiona na Wartość Wysoka.

Automatyczna kontrola nad przyrostem

Możesz automatycznie dostosować głośność mikrofonu, aby zapewnić spójne poziomy dźwięku w całym wywołaniu.

  • Analog automatyczna kontrola przyrostka jest filtrem dostępnym tylko przed wywołaniem. Domyślnie ten filtr jest włączony.
  • Cyfrowe automatyczne sterowanie przyrostkiem jest filtrem dostępnym tylko przed wywołaniem. Domyślnie ten filtr jest włączony.

Tryb muzyki

Tryb muzyki to filtr dostępny przed i podczas połączenia. Aby dowiedzieć się więcej na temat trybu muzycznego, zobacz Tryb muzyki w zestawie SDK natywnych wywołań. Tryb muzyki działa tylko na platformach natywnych za pośrednictwem wywołań jeden na jeden lub grup. Nie działa w wywołaniach "jeden do jednego" między platformami natywnymi i siecią Web. Domyślnie tryb muzyki jest wyłączony.

Wymagania wstępne

Konfigurowanie systemu

Wykonaj następujące kroki, aby skonfigurować system.

Tworzenie projektu Xcode

W programie Xcode utwórz nowy projekt systemu iOS i wybierz szablon Aplikacja z jednym widokiem. W tym artykule jest używana struktura SwiftUI, dlatego należy ustawić wartość Language na Swift i ustawić wartość Interface na SwiftUI.

Nie zamierzasz tworzyć testów w tym artykule. Możesz wyczyścić pole wyboru Uwzględnij testy .

Zrzut ekranu przedstawiający okno tworzenia projektu w programie Xcode.

Instalowanie pakietu i zależności przy użyciu narzędzia CocoaPods

  1. Utwórz plik Podfile dla aplikacji, podobnie jak w tym przykładzie:

    platform :ios, '13.0'
    use_frameworks!
    target 'AzureCommunicationCallingSample' do
        pod 'AzureCommunicationCalling', '~> 1.0.0'
    end
    
  2. Uruchom program pod install.

  3. Otwórz .xcworkspace za pomocą programu Xcode.

Żądanie dostępu do mikrofonu

Aby uzyskać dostęp do mikrofonu urządzenia, należy zaktualizować listę właściwości informacji aplikacji przy użyciu polecenia NSMicrophoneUsageDescription. Ustaw skojarzona wartość na ciąg zawarty w oknie dialogowym używanym przez system do żądania dostępu od użytkownika.

Kliknij prawym przyciskiem myszy wpis Info.plist drzewa projektu, a następnie wybierz pozycję Otwórz jako>kod źródłowy. Dodaj następujące wiersze w sekcji najwyższego poziomu <dict> , a następnie zapisz plik.

<key>NSMicrophoneUsageDescription</key>
<string>Need microphone access for VOIP calling.</string>

Konfigurowanie struktury aplikacji

Otwórz plik projektu ContentView.swift . Dodaj deklarację import na początku pliku, aby zaimportować bibliotekę AzureCommunicationCalling . Ponadto zaimportuj plik AVFoundation. Potrzebne są żądania uprawnień dźwięku w kodzie.

import AzureCommunicationCalling
import AVFoundation

Inicjowanie klasy CallAgent

Aby utworzyć CallAgent wystąpienie z CallClientklasy , należy użyć callClient.createCallAgent metody, która asynchronicznie zwraca CallAgent obiekt po zainicjowaniu.

Aby utworzyć klienta wywołania, przekaż CommunicationTokenCredential obiekt:

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 Przekaż utworzony obiekt do CallClient, a następnie ustaw nazwę wyświetlaną:

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")
        }
})

Możesz użyć funkcji filtru audio, aby zastosować różne opcje przetwarzania wstępnego audio do wychodzącego dźwięku. Istnieją dwa typy filtrów OutgoingAudioFilters audio i LiveOutgoingAudioFilters. Użyj polecenia OutgoingAudioFilters , aby zmienić ustawienia przed rozpoczęciem wywołania. Użyj LiveOutgoingAudioFilters polecenia , aby zmienić ustawienia, gdy wywołanie jest w toku.

Najpierw należy zaimportować zestaw SDK wywołujący:

import AzureCommunicationCalling

Przed rozpoczęciem połączenia

Można zastosować OutgoingAudioFilters podczas uruchamiania wywołania.

Zacznij od utworzenia OutgoingAudioFilters właściwości i przekazania jej do OutgoingAudioOptionselementu , jak pokazano poniżej:

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

W trakcie rozmowy telefonicznej

Można zastosować po LiveOutgoingAudioFilters rozpoczęciu połączenia. Ten obiekt można pobrać z obiektu wywołania podczas wywołania. Aby zmienić ustawienie w LiveOutgoingAudioFilterspliku , ustaw elementy członkowskie wewnątrz klasy na prawidłową wartość i są one stosowane.

Podczas aktywnego wywołania jest dostępny tylko podzbiór dostępnych filtrów OutgoingAudioFilters . Są one trybem muzycznym, anulowaniem echa i trybem pomijania szumu.

LiveOutgoingAudioFilters filters = call.liveOutgoingAudioFilters
filters.musicModeEnabled = true
filters.acousticEchoCancellationEnabled = true
filters.NoiseSuppressionMode = NoiseSuppressionMode.high

Dowiedz się, jak skonfigurować filtry audio przy użyciu natywnych zestawów SDK wywoływania

Efekty dźwiękowe usług Azure Communication Services oferują filtry, które mogą poprawić połączenie audio. W przypadku platform natywnych (Android, iOS i Windows) można skonfigurować następujące filtry.

Anulowanie echa

Możesz wyeliminować echo akustyczne spowodowane przez głos dzwoniącego, który odbija się z powrotem do mikrofonu po jego emisji z głośnika. Anulowanie echa zapewnia wyraźną komunikację.

Filtr można skonfigurować przed wywołaniem i podczas jego wywołania. Anulowanie echa można przełączać tylko wtedy, gdy jest włączony tryb muzyki. Domyślnie ten filtr jest włączony.

Tłumienie szumów

Jakość dźwięku można poprawić, filtrując niechciane szumy tła, takie jak wpisywanie, klimatyzacja lub dźwięki uliczne. Technologia ta zapewnia, że głos jest ostry i jasny, aby ułatwić skuteczniejszą komunikację.

Filtr można skonfigurować przed wywołaniem i podczas jego wywołania. Obecnie dostępne tryby to Wyłączone, Automatyczne, Niskie i Wysokie. Domyślnie ta funkcja jest ustawiona na Wartość Wysoka.

Automatyczna kontrola nad przyrostem

Możesz automatycznie dostosować głośność mikrofonu, aby zapewnić spójne poziomy dźwięku w całym wywołaniu.

  • Analog automatyczna kontrola przyrostka jest filtrem dostępnym tylko przed wywołaniem. Domyślnie ten filtr jest włączony.
  • Cyfrowe automatyczne sterowanie przyrostkiem jest filtrem dostępnym tylko przed wywołaniem. Domyślnie ten filtr jest włączony.

Tryb muzyki

Tryb muzyki to filtr dostępny przed i podczas połączenia. Aby dowiedzieć się więcej na temat trybu muzycznego, zobacz Tryb muzyki w zestawie SDK natywnych wywołań. Tryb muzyki działa tylko na platformach natywnych za pośrednictwem wywołań jeden na jeden lub grup. Nie działa w wywołaniach "jeden do jednego" między platformami natywnymi i siecią Web. Domyślnie tryb muzyki jest wyłączony.

Wymagania wstępne

Konfigurowanie systemu

Wykonaj następujące kroki, aby skonfigurować system.

Tworzenie projektu programu Visual Studio

W przypadku aplikacji platforma uniwersalna systemu Windows w programie Visual Studio 2022 utwórz nowy projekt Pusta aplikacja (uniwersalny system Windows). Po wprowadzeniu nazwy projektu możesz wybrać dowolny zestaw Windows SDK nowszy niż 10.0.17763.0.

W przypadku aplikacji WinUI 3 utwórz nowy projekt z pustą aplikacją, spakowanym szablonem (WinUI 3 w programie Desktop), aby skonfigurować jednostronicową aplikację WinUI 3. Wymagany jest zestaw Windows App SDK w wersji 1.3 lub nowszej.

Instalowanie pakietu i zależności przy użyciu Menedżer pakietów NuGet

Interfejsy API i biblioteki zestawu SDK wywołujących są publicznie dostępne za pośrednictwem pakietu NuGet.

Aby znaleźć, pobrać i zainstalować pakiet NuGet zestawu SDK wywołującego:

  1. Otwórz Menedżer pakietów NuGet, wybierając pozycję Narzędzia>NuGet Menedżer pakietów> Zarządzanie pakietami NuGet dla rozwiązania.
  2. Wybierz pozycję Przeglądaj, a następnie wprowadź ciąg Azure.Communication.Calling.WindowsClient w polu wyszukiwania.
  3. Upewnij się, że pole wyboru Uwzględnij wersję wstępną zostało zaznaczone.
  4. Wybierz pakiet Azure.Communication.Calling.WindowsClient, a następnie wybierz pozycję Azure.Communication.Calling.WindowsClient 1.4.0-beta.1 lub nowszą wersję.
  5. Zaznacz pole wyboru odpowiadające projektowi usług Azure Communication Services w okienku po prawej stronie.
  6. Wybierz Zainstaluj.

Możesz użyć funkcji filtru audio, aby zastosować różne wstępne przetwarzanie audio do wychodzącego dźwięku. Istnieją dwa typy filtrów OutgoingAudioFilters audio i LiveOutgoingAudioFilters. Użyj polecenia OutgoingAudioFilters , aby zmienić ustawienia przed rozpoczęciem wywołania. Użyj LiveOutgoingAudioFilters polecenia , aby zmienić ustawienia, gdy wywołanie jest w toku.

Najpierw należy zaimportować zestaw SDK wywołujący:

using Azure.Communication;
using Azure.Communication.Calling.WindowsClient;

Przed rozpoczęciem połączenia

Można zastosować OutgoingAudioFilters podczas uruchamiania wywołania.

Zacznij od utworzenia OutgoingAudioFilters właściwości i przekazania jej do OutgoingAudioOptionselementu , jak pokazano w poniższym kodzie:

var outgoingAudioOptions = new OutgoingAudioOptions();
var filters = new OutgoingAudioFilters()
{
    AnalogAutomaticGainControlEnabled = true,
    DigitalAutomaticGainControlEnabled = true,
    MusicModeEnabled = true,
    AcousticEchoCancellationEnabled = true,
    NoiseSuppressionMode = NoiseSuppressionMode.High
};
outgoingAudioOptions.Filters = filters;

W trakcie rozmowy telefonicznej

Można zastosować po LiveOutgoingAudioFilters rozpoczęciu połączenia. Ten obiekt można pobrać z obiektu wywołania po rozpoczęciu wywołania. Aby zmienić ustawienie w LiveOutgoingAudioFilterspliku , ustaw elementy członkowskie wewnątrz klasy na prawidłową wartość i są one stosowane.

Podczas aktywnego wywołania jest dostępny tylko podzbiór dostępnych filtrów OutgoingAudioFilters . Są one trybem muzycznym, anulowaniem echa i trybem pomijania szumu.

LiveOutgoingAudioFilters filter = call.LiveOutgoingAudioFilters;
filter.MusicModeEnabled = true;
filter.AcousticEchoCancellationEnabled = true;
filter.NoiseSuppressionMode = NoiseSuppressionMode.Auto;