Ajouter des améliorations de qualité audio à votre expérience d’appel audio

Les capacités de suppression du bruit d'Azure Communication Services peuvent améliorer vos appels audio en filtrant les bruits d’arrière-plan indésirables. La suppression de bruit est une technologie qui supprime les bruits d’arrière-plan des appels audio. Elle rend les appels audio plus clairs et mieux en éliminant le bruit d’arrière-plan, ce qui facilite la conversation et l’écoute. La suppression du bruit peut également réduire les distractions et la fatigue causées par des endroits bruyants. Par exemple, si vous prenez un appel WebJS Azure Communication Services dans un café avec un bruit considérable, l’activation de la suppression du bruit peut améliorer l’expérience d’appel.

Important

Les fonctionnalités décrites dans cet article sont actuellement en préversion publique. Cette préversion est fournie sans contrat de niveau de service et n’est pas recommandée pour les charges de travail de production. Certaines fonctionnalités peuvent être limitées ou non prises en charge. Pour plus d’informations, consultez Conditions d’Utilisation Supplémentaires relatives aux Évaluations Microsoft Azure.

Utilisation d’effets audio : suppression de bruit

Installer le package npm

Utilisez la commande npm install pour installer le kit de développement logiciel (SDK) Azure Communication Services Audio Effects pour JavaScript.

Important

Ce tutoriel utilise une version 1.24.2-beta.1 (ou supérieure) du kit de développement logiciel (SDK) de l’appel audio Azure Communication Services et une version supérieure ou égale à 1.1.1-beta.1 (ou supérieure) du kit de développement logiciel (SDK) l’appel d’effets Azure Communication Services.

@azure/communication-calling-effects@1.1.1-beta

Remarque

La bibliothèque d’effets d’appel ne peut pas être utilisée de manière autonome et ne peut fonctionner qu’avec la bibliothèque de client Azure Communication Calling pour WebJS (https://www.npmjs.com/package/@azure/communication-calling).

Vous pouvez trouver plus d’informations sur la page du package npm des effets d’appel.

Remarque

La prise en charge actuelle du navigateur pour l’ajout d’effets de suppression de bruit audio n’est disponible que sur les navigateurs Chrome et Edge Desktop.

Vous pouvez en savoir plus sur les spécificités de l’API appelante.

Pour utiliser des effets audio noise suppression dans le Kit de développement logiciel (SDK) Azure Communication Calling, vous avez besoin du LocalAudioStream qui se trouve actuellement dans l’appel. Vous devez accéder à l’API AudioEffects du LocalAudioStream pour le démarrage et l’arrêt des effets audio.

import * as AzureCommunicationCallingSDK from '@azure/communication-calling'; 
import { DeepNoiseSuppressionEffect } from '@azure/communication-calling-effects'; 

// Get the 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(SDK.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}`);
});

À tout moment, si vous souhaitez vérifier quels effets de suppression de bruit sont actuellement actifs, vous pouvez utiliser la propriété activeEffects. La propriété activeEffects retourne un objet avec les noms des effets actifs actuels.

// Using the audio effects feature api
const currentActiveEffects = audioEffectsFeatureApi.activeEffects;

Démarrer un appel avec suppression de bruit activé

Pour démarrer un appel avec la suppression de bruit activée, vous pouvez créer un nouveau LocalAudioStream avec une source AudioDeviceInfo (la source LocalAudioStream ne doit pas être un MediaStream brut pour utiliser des effets audio) et la transmettre dans le CallStartOptions.audioOptions :

// As an example, here we are simply creating a LocalAudioStream using the current selected mic on the DeviceManager
const audioDevice = deviceManager.selectedMicrophone;
const localAudioStreamWithEffects = new SDK.LocalAudioStream(audioDevice);
const audioEffectsFeatureApi = localAudioStreamWithEffects.feature(SDK.Features.AudioEffects);

// Start effect
await audioEffectsFeatureApi.startEffects({
    noiseSuppression: deepNoiseSuppression
});

// Pass the LocalAudioStream in audioOptions in call start/accept options.
await call.startCall({
    audioOptions: {
        muted: false,
        localAudioStreams: [localAudioStreamWithEffects]
    }
});

Comment activer la suppression du bruit pendant un appel en cours

Il existe des situations où un utilisateur peut démarrer un appel et qu’il n’a pas activé la suppression du bruit, mais que son environnement actuel risque d’être bruyant et qu’il a besoin d’activer la suppression du bruit. Pour activer la suppression du bruit, vous pouvez utiliser l’API audioEffectsFeatureApi.startEffects.

// Create the noise supression instance 
const deepNoiseSuppression = new DeepNoiseSuppressionEffect();

// Its recommened to check support for the effect in the current environment 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 browser environment');
}

// To start ACS Deep Noise Suppression,
await audioEffectsFeatureApi.startEffects({
    noiseSuppression: deepNoiseSuppression
});

// To stop ACS Deep Noise Suppression
await audioEffectsFeatureApi.stopEffects({
    noiseSuppression: true
});

Apprenez à configurer les filtres audio avec les SDK Calling Native.

Les effets audio d'Azure Communication Services offrent des filtres qui peuvent améliorer votre appel audio. Pour les plateformes natives (Android, iOS et Windows), vous pouvez configurer les filtres suivants :

Annulation de l’écho

Il élimine l'écho acoustique causé par la voix de l'appelant qui se répercute dans le micro après avoir été émise par le haut-parleur, garantissant ainsi une communication claire.

Vous pouvez configurer le filtre avant et pendant un appel. Vous ne pouvez désactiver l’annulation de l’écho que si le mode musique est activé. Par défaut, ce filtre est activé.

Suppression du bruit

Améliorer la qualité audio en filtrant les bruits de fond indésirables tels que la frappe, la climatisation ou les bruits de la rue. Cette technologie garantit une voix claire et nette, facilitant ainsi une communication plus efficace.

Vous pouvez configurer le filtre avant et pendant un appel. Les modes actuellement disponibles sont Off, Auto, Low et High. Par défaut, cette fonctionnalité est définie sur le mode High .

Contrôle automatique du gain (AGC)

Ajuste automatiquement le volume du micro pour garantir des niveaux audio cohérents tout au long de l'appel.

  • Le contrôle de gain automatique analogique est un filtre disponible uniquement avant un appel. Par défaut, ce filtre est activé.
  • Le contrôle de gain automatique numérique est un filtre disponible uniquement avant un appel. Par défaut, ce filtre est activé.

Mode musique

Le mode musique est un filtre disponible avant et pendant un appel. En savoir plus sur le mode musique ici. Le mode musique ne fonctionne que sur les plateformes natives lors d'appels individuels ou de groupe et ne fonctionne pas lors d'appels individuels entre les plateformes natives et le web. Par défaut, le mode musique est désactivé.

Prérequis

Installer le SDK

Localisez votre fichier build.gradle au niveau du projet et ajoutez mavenCentral() à la liste des référentiels sous buildscript et allprojects :

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

Ensuite, dans votre fichier build.gradle au niveau du module, ajoutez les lignes suivantes à la section dependencies :

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

Initialiser les objets nécessaires

Pour créer une instance CallAgent, vous devez appeler la méthode createCallAgent sur une instance CallClient. Cet appel retourne de façon asynchrone un objet d’instance CallAgent.

La méthode createCallAgent prend CommunicationUserCredential en tant qu’argument, qui encapsule un jeton d’accès.

Pour accéder à DeviceManager, vous devez d’abord créer une instance callAgent. Vous pouvez ensuite utiliser la méthode CallClient.getDeviceManager pour obtenir 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();

Pour définir un nom d’affichage pour l’appelant, utilisez cette autre méthode :

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

La fonctionnalité de filtre audio vous permet d’appliquer différentes options de prétraitement audio à l’audio sortant. Il existe deux types de filtres audio : OutgoingAudioFilters et LiveOutgoingAudioFilters. Utilisez OutgoingAudioFilters pour modifier les paramètres avant le démarrage de l’appel et LiveOutgoingAudioFilters pour modifier les paramètres pendant qu’un appel est en cours.

Vous devez d’abord importer le Kit de développement logiciel (SDK) d’appel et les classes associées :

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

Avant le démarrage de l’appel

OutgoingAudioFilters peut être appliqué lorsqu’un appel démarre.

Commencez par créer un OutgoingAudioFilters et le transmettre à OutgoingAudioOptions, comme indiqué dans le code suivant :

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

Pendant l’appel

Vous pouvez appliquer LiveOutgoingAudioFilters après le début d’un appel. Vous pouvez récupérer cet objet auprès de l’objet d’appel pendant l’appel. Pour modifier le paramètre dans LiveOutgoingAudioFilters, définissez les membres à l’intérieur de la classe sur une valeur valide et ils sont appliqués.

Seuls un sous-ensemble des filtres disponibles à partir de OutgoingAudioFilters sont disponibles pendant un appel actif : mode musique, annulation d’écho et mode de suppression de bruit.

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

Apprenez à configurer les filtres audio avec les SDK Calling Native.

Les effets audio d'Azure Communication Services offrent des filtres qui peuvent améliorer votre appel audio. Pour les plateformes natives (Android, iOS et Windows), vous pouvez configurer les filtres suivants :

Annulation de l’écho

Il élimine l'écho acoustique causé par la voix de l'appelant qui se répercute dans le micro après avoir été émise par le haut-parleur, garantissant ainsi une communication claire.

Vous pouvez configurer le filtre avant et pendant un appel. Vous ne pouvez désactiver l’annulation de l’écho que si le mode musique est activé. Par défaut, ce filtre est activé.

Suppression du bruit

Améliorer la qualité audio en filtrant les bruits de fond indésirables tels que la frappe, la climatisation ou les bruits de la rue. Cette technologie garantit une voix claire et nette, facilitant ainsi une communication plus efficace.

Vous pouvez configurer le filtre avant et pendant un appel. Les modes actuellement disponibles sont Off, Auto, Low et High. Par défaut, cette fonctionnalité est définie sur le mode High .

Contrôle automatique du gain (AGC)

Ajuste automatiquement le volume du micro pour garantir des niveaux audio cohérents tout au long de l'appel.

  • Le contrôle de gain automatique analogique est un filtre disponible uniquement avant un appel. Par défaut, ce filtre est activé.
  • Le contrôle de gain automatique numérique est un filtre disponible uniquement avant un appel. Par défaut, ce filtre est activé.

Mode musique

Le mode musique est un filtre disponible avant et pendant un appel. En savoir plus sur le mode musique ici. Le mode musique ne fonctionne que sur les plateformes natives lors d'appels individuels ou de groupe et ne fonctionne pas lors d'appels individuels entre les plateformes natives et le web. Par défaut, le mode musique est désactivé.

Prérequis

Configurer votre système

Créer le projet Xcode

Dans Xcode, créez un projet iOS et sélectionnez le modèle Single View App. Ce guide de démarrage rapide utilise l’infrastructure SwiftUI. Vous devez donc définir le langage sur Swift et l’interface sur SwiftUI.

Vous n’allez pas créer de tests au cours de ce guide démarrage rapide. N’hésitez pas à désactiver la case Inclure des tests.

Capture d’écran montrant la fenêtre de création d’un projet dans Xcode.

Installer le package et les dépendances à l’aide de CocoaPods

  1. Créez un Podfile pour votre application, comme cet exemple :

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

  3. Ouvrez .xcworkspace en utilisant Xcode.

Demander l’accès au microphone

Pour accéder au microphone de l’appareil, vous devez mettre à jour la liste des propriétés d’informations de votre application à l’aide de NSMicrophoneUsageDescription. Vous définissez la valeur associée sur une chaîne qui sera incluse dans la boîte de dialogue utilisée par le système pour demander l’accès de l’utilisateur.

Cliquez avec le bouton droit sur l’entrée Info.plist de l’arborescence du projet, puis sélectionnez Ouvrir en tant que>Code source. Ajoutez les lignes suivantes à la section <dict> tout en haut, puis enregistrez le fichier.

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

Configurer le framework d’application

Ouvrez le fichier ContentView.swift de votre projet. Ajoutez une déclaration import en haut du fichier pour importer la bibliothèque AzureCommunicationCalling. En outre, importez AVFoundation. Vous en aurez besoin pour les demandes d’autorisations audio dans le code.

import AzureCommunicationCalling
import AVFoundation

Initialiser CallAgent

Pour créer une instance de CallAgent à partir de CallClient, vous devez utiliser une méthode callClient.createCallAgent qui retourne de manière asynchrone un objet CallAgent après qu’il a été initialisé.

Pour créer un client d’appel, transmettez un objet 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)
}

Transmettez l’objet CommunicationTokenCredential que vous avez créé à CallClient et définissez le nom complet :

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

La fonctionnalité de filtre audio vous permet d’appliquer différentes options de prétraitement audio à l’audio sortant. Il existe deux types de filtres audio : OutgoingAudioFilters et LiveOutgoingAudioFilters. Utilisez OutgoingAudioFilters pour modifier les paramètres avant le démarrage de l’appel et LiveOutgoingAudioFilters pour modifier les paramètres pendant qu’un appel est en cours.

Vous devez d’abord importer le Kit de développement logiciel (SDK) Calling :

import AzureCommunicationCalling

Avant le démarrage de l’appel

OutgoingAudioFilters peut être appliqué lorsqu’un appel démarre.

Commencez par créer un OutgoingAudioFilters et le transmettre à OutgoingAudioOptions, comme indiqué dans le code suivant :

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

Pendant l’appel

Vous pouvez appliquer LiveOutgoingAudioFilters après le début d’un appel. Vous pouvez récupérer cet objet auprès de l’objet d’appel pendant l’appel. Pour modifier le paramètre dans LiveOutgoingAudioFilters, définissez les membres à l’intérieur de la classe sur une valeur valide et ils sont appliqués.

Seuls un sous-ensemble des filtres disponibles à partir de OutgoingAudioFilters sont disponibles pendant un appel actif : mode musique, annulation d’écho et mode de suppression de bruit.

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

Apprenez à configurer les filtres audio avec les SDK Calling Native.

Les effets audio d'Azure Communication Services offrent des filtres qui peuvent améliorer votre appel audio. Pour les plateformes natives (Android, iOS et Windows), vous pouvez configurer les filtres suivants :

Annulation de l’écho

Il élimine l'écho acoustique causé par la voix de l'appelant qui se répercute dans le micro après avoir été émise par le haut-parleur, garantissant ainsi une communication claire.

Vous pouvez configurer le filtre avant et pendant un appel. Vous ne pouvez désactiver l’annulation de l’écho que si le mode musique est activé. Par défaut, ce filtre est activé.

Suppression du bruit

Améliorer la qualité audio en filtrant les bruits de fond indésirables tels que la frappe, la climatisation ou les bruits de la rue. Cette technologie garantit une voix claire et nette, facilitant ainsi une communication plus efficace.

Vous pouvez configurer le filtre avant et pendant un appel. Les modes actuellement disponibles sont Off, Auto, Low et High. Par défaut, cette fonctionnalité est définie sur le mode High .

Contrôle automatique du gain (AGC)

Ajuste automatiquement le volume du micro pour garantir des niveaux audio cohérents tout au long de l'appel.

  • Le contrôle de gain automatique analogique est un filtre disponible uniquement avant un appel. Par défaut, ce filtre est activé.
  • Le contrôle de gain automatique numérique est un filtre disponible uniquement avant un appel. Par défaut, ce filtre est activé.

Mode musique

Le mode musique est un filtre disponible avant et pendant un appel. En savoir plus sur le mode musique ici. Le mode musique ne fonctionne que sur les plateformes natives lors d'appels individuels ou de groupe et ne fonctionne pas lors d'appels individuels entre les plateformes natives et le web. Par défaut, le mode musique est désactivé.

Prérequis

Configurer votre système

Créer le projet Visual Studio

Pour une application UWP, dans Visual Studio 2022, créez un projet Application vide (Windows universel). Après avoir entré le nom du projet, n’hésitez pas à choisir un kit de développement logiciel (SDK) Windows d’une version ultérieure à 10.0.17763.0.

Pour une application WinUI 3, créez un projet avec le modèle Application vide, Empaquetée (WinUI 3 dans Desktop) pour configurer une application WinUI 3 monopage. Le SDK d’application Windows version 1.3 ou ultérieure est nécessaire.

Installer le package et les dépendances à l’aide du Gestionnaire de package NuGet

Les API et les bibliothèques du Kit de développement logiciel (SDK) Appel sont accessibles au public via un package NuGet.

Les étapes suivantes illustrent comment rechercher, télécharger et installer le package NuGet du kit de développement logiciel (SDK) Calling :

  1. Ouvrez le Gestionnaire de package NuGet en sélectionnant Outils>Gestionnaire de package NuGet>Gérer les packages NuGet pour la solution.
  2. Sélectionnez Parcourir, puis entrez Azure.Communication.Calling.WindowsClient dans la zone de recherche.
  3. Vérifiez que la case Inclure la préversion est activée.
  4. Sélectionnez le package Azure.Communication.Calling.WindowsClient, puis Azure.Communication.Calling.WindowsClient 1.4.0-beta.1 ou une version plus récente.
  5. Activez la case correspondant au projet Communication Services dans l’onglet de droite.
  6. Sélectionnez le bouton Installer.

La fonctionnalité de filtre audio vous permet d’appliquer différents prétraitements audio à l’audio sortant. Il existe deux types de filtres audio : OutgoingAudioFilters et LiveOutgoingAudioFilters. Utilisez OutgoingAudioFilters pour modifier les paramètres avant le démarrage de l’appel et LiveOutgoingAudioFilters pour modifier les paramètres pendant qu’un appel est en cours.

Vous devez d’abord importer le Kit de développement logiciel (SDK) Calling :

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

Avant le démarrage de l’appel

OutgoingAudioFilters peut être appliqué lorsqu’un appel démarre.

Commencez par créer un OutgoingAudioFilters et le transmettre à OutgoingAudioOptions, comme indiqué dans le code suivant :

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

Pendant l’appel

Vous pouvez appliquer LiveOutgoingAudioFilters après le début d’un appel. Vous pouvez récupérer cet objet auprès de l’objet d’appel une fois l’appel commencé. Pour modifier le paramètre dans LiveOutgoingAudioFilters, définissez les membres à l’intérieur de la classe sur une valeur valide et ils sont appliqués.

Seuls un sous-ensemble des filtres disponibles à partir de OutgoingAudioFilters sont disponibles pendant un appel actif : mode musique, annulation d’écho et mode de suppression de bruit.

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