Condividi tramite


Aggiungere miglioramenti della qualità audio all'esperienza della chiamata audio

Le capacità di eliminazione del rumore degli effetti audio di Servizi di comunicazione di Azure possono migliorare le chiamate audio filtrando i rumori di fondo indesiderati. L'eliminazione del rumore è una tecnologia che rimuove i rumori di fondo dalle chiamate audio. L'eliminazione del rumore di fondo rende più semplice parlare e ascoltare. L'eliminazione del rumore inoltre può ridurre le distrazioni e la stanchezza causate da luoghi rumorosi. Ad esempio, se si sta prendendo una chiamata webJS Servizi di comunicazione di Azure in un negozio di caffè rumoroso, l'attivazione dell'eliminazione del rumore può rendere l'esperienza di chiamata migliore.

Usare gli effetti audio: installare il pacchetto npm degli effetti chiamante

Importante

Questa esercitazione usa la versione 1.28.4 Servizi di comunicazione di Azure Calling SDK o versioni successive, insieme alla versione 1.1.2 Servizi di comunicazione di Azure Calling Effects SDK o versioni successive. La versione 1.28.4 stabile di disponibilità generale e versioni successive di Calling SDK supportano le funzionalità di eliminazione del rumore. In alternativa, se si sceglie di usare la versione di anteprima pubblica, le versioni 1.24.2-beta.1 di Calling SDK e versioni successive supportano anche l'eliminazione del rumore.

Il supporto corrente del browser per l'aggiunta di effetti di eliminazione del rumore audio è disponibile solo nei browser desktop Chrome e Edge.

La libreria degli effetti chiamante non può essere usata in modalità autonoma. Funziona solo quando viene usata con la libreria client di chiamata Servizi di comunicazione di Azure per WebJS.

Usare il comando npm install per installare SDK Effetti Audio di Servizi di comunicazione di Azure per JavaScript.

Se si usa la versione GA di Calling SDK, è necessario usare la versione GA di Calling Effects SDK.

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

Se si usa l'anteprima pubblica di Calling SDK, è necessario usare la versione beta di Calling Effects SDK.

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

Caricare la libreria degli effetti di eliminazione del rumore

Per informazioni sull'interfaccia che illustra in dettaglio le proprietà e i metodi degli effetti audio, vedere la pagina della documentazione dell'API dell'interfaccia delle funzionalità degli effetti audio.

Per usare gli effetti audio di eliminazione del rumore all'interno di Servizi di comunicazione di Azure Calling SDK, è necessaria la LocalAudioStream proprietà attualmente presente nella chiamata. È necessario accedere all'API AudioEffects della LocalAudioStream proprietà per avviare e arrestare gli effetti audio.

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

Controllare quali effetti audio sono attivi

Per controllare quali effetti di eliminazione del rumore sono attualmente attivi, è possibile utilizzare la activeEffects proprietà .

La proprietà activeEffects restituisce un oggetto con i nomi degli effetti attivi correnti.

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

Avviare una chiamata con eliminazione del rumore abilitata automaticamente

È possibile avviare una chiamata con eliminazione del rumore attivata. Creare una nuova LocalAudioStream proprietà con AudioDeviceInfo (l'origine LocalAudioStream non deve essere una proprietà non elaborata MediaStream per usare gli effetti audio) e passarla in 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]
    }
});

Attivare l'eliminazione del rumore durante una chiamata in corso

È possibile avviare una chiamata e non avere l'eliminazione del rumore attivata. L'ambiente potrebbe diventare rumoroso in modo che sia necessario attivare l'eliminazione del rumore. Per attivare l'eliminazione del rumore, è possibile usare l'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
});

Per informazioni dettagliate sulle funzionalità dell'API estesa, vedere la pagina della documentazione dell'interfaccia delle funzionalità degli effetti audio.

Informazioni su come configurare i filtri audio con gli SDK per chiamate native

Gli effetti audio di Servizi di comunicazione di Azure offrono filtri capaci di migliorare la chiamata audio. Per le piattaforme native (Android, iOS e Windows), è possibile configurare i filtri seguenti.

Annullamento eco

È possibile eliminare l'eco acustica causata dalla voce del chiamante che ritrae nel microfono dopo che viene emessa dall'altoparlante. L'annullamento echo garantisce una comunicazione chiara.

Il filtro è configurabile prima della chiamata e nel corso della stessa. Puoi attivare o disattivare l'annullamento dell'eco solo se la modalità musica è abilitata. Per impostazione predefinita, il filtro è abilitato.

Eliminazione del rumore

È possibile migliorare la qualità audio filtrando i rumori di fondo indesiderati, ad esempio digitazione, aria condizionata o suoni stradali. Questa tecnologia garantisce che la voce sia nitida e chiara per facilitare una comunicazione più efficace.

Il filtro è configurabile prima della chiamata e nel corso della stessa. Le modalità attualmente disponibili sono Off, Auto, Low e High. Per impostazione predefinita, questa funzionalità è impostata su Alto.

Controllo del guadagno automatico

Puoi regolare automaticamente il volume del microfono per garantire livelli audio coerenti durante la chiamata.

  • Il controllo del guadagno automatico analogico è un filtro disponibile solo prima di una chiamata. Per impostazione predefinita, il filtro è abilitato.
  • Il controllo del guadagno automatico digitale è un filtro disponibile solo prima di una chiamata. Per impostazione predefinita, il filtro è abilitato.

Modalità musica

La modalità musica è un filtro disponibile prima e durante una chiamata. Per altre informazioni sulla modalità musica, vedere Modalità musica in Native Calling SDK. La modalità musica funziona solo su piattaforme native tramite chiamate one-on-one o di gruppo. Non funziona nelle chiamate uno-a-uno tra piattaforme native e il Web. Per impostazione predefinita, la modalità musica è disabilitata.

Prerequisiti

Installazione dell'SDK

Individuare il file a livello build.gradle di progetto e aggiungere mavenCentral() all'elenco dei repository in buildscript e allprojects:

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

Quindi, nel file a livello build.gradle di modulo aggiungere le righe seguenti alla dependencies sezione :

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

Inizializzare gli oggetti necessari

Per creare un'istanza CallAgent, è necessario chiamare il metodo createCallAgent in un'istanza CallClient. Questa chiamata restituisce in modo asincrono un oggetto istanza CallAgent.

Il metodo createCallAgent accetta CommunicationUserCredential come argomento, che incapsula un token di accesso.

Per accedere a DeviceManager, è prima necessario creare un'istanza callAgent. Quindi è possibile usare il metodo CallClient.getDeviceManager per ottenere 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();

Per impostare nome visualizzato per il chiamante, usare questo metodo alternativo:

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

Puoi usare la funzionalità filtro audio per applicare diverse opzioni di pre-elaborazione audio all'audio in uscita. I due tipi di filtri audio sono OutgoingAudioFilters e LiveOutgoingAudioFilters. Usare OutgoingAudioFilters per modificare le impostazioni prima dell'avvio della chiamata. Usare LiveOutgoingAudioFilters per modificare le impostazioni mentre è in corso una chiamata.

È necessario importare prima l'SDK della chiamata e le classi associate:

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

Prima dell'avvio di una chiamata

È possibile applicare OutgoingAudioFilters all'avvio di una chiamata.

Iniziare creando una OutgoingAudioFilters proprietà e passandola a OutgoingAudioOptions, come illustrato nel codice seguente:

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

Durante la chiamata

Dopo l’inizio di una chiamata, è possibile applicare LiveOutgoingAudioFilters. Questo oggetto è recuperabile dall'oggetto chiamata durante la chiamata. Per modificare l'impostazione in LiveOutgoingAudioFilters, impostare i membri all'interno della classe su un valore valido, e sono applicati.

Durante una chiamata attiva sono disponibili solo un subset dei filtri disponibili da OutgoingAudioFilters . Sono modalità musica, annullamento dell'eco e modalità di eliminazione del rumore.

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

Informazioni su come configurare i filtri audio con gli SDK per chiamate native

Gli effetti audio di Servizi di comunicazione di Azure offrono filtri capaci di migliorare la chiamata audio. Per le piattaforme native (Android, iOS e Windows), è possibile configurare i filtri seguenti.

Annullamento eco

È possibile eliminare l'eco acustica causata dalla voce del chiamante che ritrae nel microfono dopo che viene emessa dall'altoparlante. L'annullamento echo garantisce una comunicazione chiara.

Il filtro è configurabile prima della chiamata e nel corso della stessa. Puoi attivare o disattivare l'annullamento dell'eco solo se la modalità musica è abilitata. Per impostazione predefinita, il filtro è abilitato.

Eliminazione del rumore

È possibile migliorare la qualità audio filtrando i rumori di fondo indesiderati, ad esempio digitazione, aria condizionata o suoni stradali. Questa tecnologia garantisce che la voce sia nitida e chiara per facilitare una comunicazione più efficace.

Il filtro è configurabile prima della chiamata e nel corso della stessa. Le modalità attualmente disponibili sono Off, Auto, Low e High. Per impostazione predefinita, questa funzionalità è impostata su Alto.

Controllo del guadagno automatico

Puoi regolare automaticamente il volume del microfono per garantire livelli audio coerenti durante la chiamata.

  • Il controllo del guadagno automatico analogico è un filtro disponibile solo prima di una chiamata. Per impostazione predefinita, il filtro è abilitato.
  • Il controllo del guadagno automatico digitale è un filtro disponibile solo prima di una chiamata. Per impostazione predefinita, il filtro è abilitato.

Modalità musica

La modalità musica è un filtro disponibile prima e durante una chiamata. Per altre informazioni sulla modalità musica, vedere Modalità musica in Native Calling SDK. La modalità musica funziona solo su piattaforme native tramite chiamate one-on-one o di gruppo. Non funziona nelle chiamate uno-a-uno tra piattaforme native e il Web. Per impostazione predefinita, la modalità musica è disabilitata.

Prerequisiti

Configurare il sistema

Seguire questa procedura per configurare il sistema.

Creare il progetto Xcode

In Xcode creare un nuovo progetto iOS e selezionare il modello Single View Application. Questo articolo usa il framework SwiftUI, quindi è consigliabile impostare Language su Swift e impostare Interface su SwiftUI.

In questo articolo non verranno creati test. È possibile deselezionare la casella di controllo Includi i test.

Screenshot che mostra la finestra per la creazione di un progetto in Xcode.

Installare il pacchetto e le dipendenze usando CocoaPods

  1. Creare un file Podfile per l'applicazione, come questo esempio:

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

  3. Aprire .xcworkspace con Xcode.

Richiedere l'accesso al microfono

Per accedere al microfono del dispositivo, è necessario aggiornare l'elenco delle proprietà informazioni dell'app usando NSMicrophoneUsageDescription. Impostare il valore associato su una stringa inclusa nella finestra di dialogo usata dal sistema per richiedere l'accesso dall'utente.

Fare clic con il pulsante destro del mouse sulla voce info.plist dell'albero del progetto, quindi selezionare Apri come>codice sorgente. Aggiungere le righe seguenti nella sezione di primo livello <dict> e quindi salvare il file.

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

Configurare il framework dell'app

Aprire il file del ContentView.swift progetto. Aggiungere una dichiarazione import all'inizio del file per importare la libreria AzureCommunicationCalling. Inoltre, importare AVFoundation: È necessario per le richieste di autorizzazione audio nel codice.

import AzureCommunicationCalling
import AVFoundation

Inizializzare CallAgent

Per creare un'istanza CallAgent da CallClient, è necessario usare un metodo callClient.createCallAgent che restituisce in modo asincrono un oggetto CallAgent dopo l'inizializzazione.

Per creare un client di chiamata, passare un oggetto 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)
}

Passare l'oggetto CommunicationTokenCredential creato in CallClient e impostare il nome visualizzato:

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

Puoi usare la funzionalità filtro audio per applicare diverse opzioni di pre-elaborazione audio all'audio in uscita. I due tipi di filtri audio sono OutgoingAudioFilters e LiveOutgoingAudioFilters. Usare OutgoingAudioFilters per modificare le impostazioni prima dell'avvio della chiamata. Usare LiveOutgoingAudioFilters per modificare le impostazioni mentre è in corso una chiamata.

È necessario prima importare l'SDK della chiamata:

import AzureCommunicationCalling

Prima dell'avvio della chiamata

È possibile applicare OutgoingAudioFilters all'avvio di una chiamata.

Iniziare creando una OutgoingAudioFilters proprietà e passandola a OutgoingAudioOptions, come illustrato di seguito:

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

Durante la chiamata

Dopo l’inizio di una chiamata, è possibile applicare LiveOutgoingAudioFilters. Questo oggetto è recuperabile dall'oggetto chiamata durante la chiamata. Per modificare l'impostazione in LiveOutgoingAudioFilters, impostare i membri all'interno della classe su un valore valido, e sono applicati.

Durante una chiamata attiva sono disponibili solo un subset dei filtri disponibili da OutgoingAudioFilters . Sono modalità musica, annullamento dell'eco e modalità di eliminazione del rumore.

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

Informazioni su come configurare i filtri audio con gli SDK per chiamate native

Gli effetti audio di Servizi di comunicazione di Azure offrono filtri capaci di migliorare la chiamata audio. Per le piattaforme native (Android, iOS e Windows), è possibile configurare i filtri seguenti.

Annullamento eco

È possibile eliminare l'eco acustica causata dalla voce del chiamante che ritrae nel microfono dopo che viene emessa dall'altoparlante. L'annullamento echo garantisce una comunicazione chiara.

Il filtro è configurabile prima della chiamata e nel corso della stessa. Puoi attivare o disattivare l'annullamento dell'eco solo se la modalità musica è abilitata. Per impostazione predefinita, il filtro è abilitato.

Eliminazione del rumore

È possibile migliorare la qualità audio filtrando i rumori di fondo indesiderati, ad esempio digitazione, aria condizionata o suoni stradali. Questa tecnologia garantisce che la voce sia nitida e chiara per facilitare una comunicazione più efficace.

Il filtro è configurabile prima della chiamata e nel corso della stessa. Le modalità attualmente disponibili sono Off, Auto, Low e High. Per impostazione predefinita, questa funzionalità è impostata su Alto.

Controllo del guadagno automatico

Puoi regolare automaticamente il volume del microfono per garantire livelli audio coerenti durante la chiamata.

  • Il controllo del guadagno automatico analogico è un filtro disponibile solo prima di una chiamata. Per impostazione predefinita, il filtro è abilitato.
  • Il controllo del guadagno automatico digitale è un filtro disponibile solo prima di una chiamata. Per impostazione predefinita, il filtro è abilitato.

Modalità musica

La modalità musica è un filtro disponibile prima e durante una chiamata. Per altre informazioni sulla modalità musica, vedere Modalità musica in Native Calling SDK. La modalità musica funziona solo su piattaforme native tramite chiamate one-on-one o di gruppo. Non funziona nelle chiamate uno-a-uno tra piattaforme native e il Web. Per impostazione predefinita, la modalità musica è disabilitata.

Prerequisiti

Configurare il sistema

Seguire questa procedura per configurare il sistema.

Creare il progetto di Visual Studio

Per un'app piattaforma UWP (Universal Windows Platform), in Visual Studio 2022 creare un nuovo progetto App vuota (Windows universale). Dopo aver immesso il nome del progetto, è possibile scegliere qualsiasi Windows SDK successivo alla versione 10.0.17763.0.

Per un'app WinUI 3, creare un nuovo progetto con il modello App vuota, Incluso nel pacchetto (WinUI 3 in Desktop) per configurare un'app WinUI 3 a pagina singola. È necessario SDK per app di Windows in versione 1.3 o successiva.

Installare il pacchetto e le dipendenze usando Gestione pacchetti NuGet

Le API e le librerie di SDK Chiamata sono disponibili pubblicamente tramite un pacchetto NuGet.

Per trovare, scaricare e installare il pacchetto NuGet Calling SDK:

  1. Aprire Gestione pacchetti NuGet selezionando Strumenti>Gestione pacchetti NuGet> Gestisci pacchetti NuGet per la soluzione.
  2. Selezionare Sfoglia e quindi immettere Azure.Communication.Calling.WindowsClient nella casella di ricerca.
  3. Assicurarsi che la casella di controllo Includi versione preliminare sia selezionata.
  4. Selezionare il pacchetto Azure.Communication.Calling.WindowsClient e quindi selezionare Azure.Communication.Calling.WindowsClient 1.4.0-beta.1 o una versione più recente.
  5. Selezionare la casella di controllo corrispondente al progetto Servizi di comunicazione di Azure nel riquadro destro.
  6. Selezionare Installa.

Puoi usare la funzionalità di filtro audio per applicare pre-elaborazione audio diverse all'audio in uscita. I due tipi di filtri audio sono OutgoingAudioFilters e LiveOutgoingAudioFilters. Usare OutgoingAudioFilters per modificare le impostazioni prima dell'avvio della chiamata. Usare LiveOutgoingAudioFilters per modificare le impostazioni mentre è in corso una chiamata.

È necessario prima importare l'SDK della chiamata:

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

Prima dell'avvio di una chiamata

È possibile applicare OutgoingAudioFilters all'avvio di una chiamata.

Iniziare creando una OutgoingAudioFilters proprietà e passandola a OutgoingAudioOptions, come illustrato nel codice seguente:

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

Durante la chiamata

Dopo l’inizio di una chiamata, è possibile applicare LiveOutgoingAudioFilters. È possibile recuperare questo oggetto dall'oggetto chiamata dopo l'inizio della chiamata. Per modificare l'impostazione in LiveOutgoingAudioFilters, impostare i membri all'interno della classe su un valore valido, e sono applicati.

Durante una chiamata attiva sono disponibili solo un subset dei filtri disponibili da OutgoingAudioFilters . Sono modalità musica, annullamento dell'eco e modalità di eliminazione del rumore.

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