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.1-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.0-beta.1 (ou supérieure) du kit de développement logiciel (SDK) l’appel d’effets Azure Communication Services.

npm install @azure/communication-calling-effects --save

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