Verbeteringen in geluidsruisonderdrukking inschakelen

In dit artikel wordt beschreven hoe u audio-effecten toevoegt aan uw gesprekken met behulp van Azure Communication Services.

De functies voor audio-effecten van Azure Communication Services kunnen uw audiogesprekken aanzienlijk verbeteren door ongewenste achtergrondruis te filteren en echo te verwijderen. Ruisonderdrukking werkt door afleidende geluiden te identificeren en te elimineren, zoals verkeer, typen of chatter, waardoor gesprekken duidelijker en gemakkelijker te volgen zijn. Tegelijkertijd zorgt echoverwijdering ervoor dat uw stem niet terugkaatst tijdens het gesprek, wat feedback vermindert en onderbrekingen voorkomt. Deze technologieën verbeteren niet alleen de helderheid van spraak, maar verminderen ook de vermoeidheid van de listener, vooral in lawaaierige omgevingen. Als u bijvoorbeeld een WebJS-oproep van Azure Communication Services gebruikt in een drukke koffiebar, kunnen deze audio-effecten een soepelere, meer gerichte communicatie-ervaring creëren.

🎧 Wat zijn audio-effecten?

Audio-effecten in ACS zijn realtime-verbeteringen toegepast op microfooninvoer tijdens een gesprek. Het pakket audio-effecten van Azure Communications Services heeft meerdere mogelijkheden om ongewenste geluiden uit een gesprek te verwijderen (vanuit het perspectief van een client).

Ruisonderdrukking (ook wel ruisreductie genoemd) richt zich op het elimineren van ongewenste achtergrondgeluiden. Denk aan het geluid van typen, ventilatorgeluiden, verre gesprekken of straatgeluiden. Het is de taak om uw stem te isoleren, zodat degene die luistert u duidelijker hoort en de afleidende achtergrondgeluiden vermindert of verwijdert. Het maakt gebruik van algoritmen die zijn getraind om het verschil tussen uw spraak en omgevingsgeluid te herkennen, en vermindert of verwijdert die ruis in realtime. Deze geluiden kunnen worden beschouwd als een geluid dat geen menselijke stem is. Belangrijke eigenschappen die ruisonderdrukking mogelijk maken:

  • Verwijdert doorlopende of voorspelbare achtergrondgeluiden.
  • Verbeter de spraakhelderheid.
  • Werkt doorgaans aan de kant van de luidspreker voordat de audio wordt verzonden.

Echo-annulering verwijdert de echo die ontstaat wanneer uw microfoon het geluid van uw luidsprekers oppikt. Als iemand bijvoorbeeld via de luidspreker praat en hun microfoon uw stem van de luidspreker oppikt, kan dit als een echo naar u terugkeren. Echoannulering voorspelt en trekt dit terugkerende geluid af, zodat u uzelf niet een fractie van een seconde later hoort praten. Belangrijkste kenmerken voor echo-annulering:

  • Vermindert akoestische feedback.
  • Essentieel in open microfoon- en bureaubladinstellingen waarbij de microfoon audio-uitvoer van een lokale luidspreker ophaalt.
  • Vermindert de vermoeidheid en verwarring bij de luisteraar die wordt veroorzaakt door het horen van je eigen stem.

Audio-effecten gebruiken: het npm-pakket met beleffecten installeren

Belangrijk

Functies voor ruisonderdrukking zijn beschikbaar in de GA WebJS SDK-versie 1.28.4 of hoger, naast de ALGEMENE 1.1.2 versie van de Azure Communication Services Calling Effects SDK of hoger. Als u ervoor kiest om de openbare preview-versie te gebruiken, bieden aanroepende SDK-versies 1.24.2-beta.1 en hoger ook ondersteuning voor ruisonderdrukking.

Belangrijk

Echo-annuleringsfuncties zijn beschikbaar in GA WebJS SDK versie 1.38.1 of hoger. Houd er ook rekening mee dat u de SDK-versie voor audio-effecten versie 1.31.1 of hoger moet gebruiken om echo-annulering te gebruiken. Als u ervoor kiest om de openbare preview-versie te gebruiken, bieden Calling SDK-versies vanaf 1.38.1-beta.1 en hoger ook ondersteuning voor ruisonderdrukking.

Opmerking

  • Het gebruik van audio-effecten is alleen beschikbaar in Chrome- en Edge-desktopbrowsers.
  • De bibliotheek met audio-effecten is geen zelfstandige module en kan niet onafhankelijk werken. Als u de mogelijkheden ervan wilt gebruiken, moet het effectenpakket worden geïntegreerd met de Clientbibliotheek voor aanroepen van Azure Communication Services voor WebJS.
  • Als u de GA-versie van de Calling SDK gebruikt, moet u de GA-versie van het pakket Audio-effecten voor gesprekken gebruiken.
  • Als u de openbare preview-versie van de Calling SDK gebruikt, moet u de openbare preview-versie van het pakket audio-effecten voor gesprekken gebruiken.

Het audio-effectenpakket installeren

Gebruik de npm install opdracht om de Azure Communication Services Audio Effects SDK voor JavaScript te installeren.

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

Als u de openbare preview van de Calling SDK gebruikt, moet u de bètaversie van de Calling Effects SDK gebruiken. Gebruik de npm install opdracht om de Azure Communication Services Audio Effects SDK voor JavaScript te installeren.

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

Audio-effecten inschakelen die u wilt gebruiken

Hier volgt een structuurgestructureerde weergave van de AudioEffects-interface:

AudioEffectsFeature
├── Properties
│   ├── activeEffects: ActiveAudioEffects (read-only)
│   └── name: string (inherited from AudioStreamFeature)
│
├── Methods
│   ├── isSupported(effect: "BrowserNoiseSuppression" | DeepNoiseSuppressionEffect): Promise<boolean>
│   ├── startEffects(config: AudioEffectsStartConfig): Promise<void>
│   ├── stopEffects(config: AudioEffectsStopConfig): Promise<void>
│   ├── on(event: "effectsStarted" | "effectsStopped" | "effectsError", listener: AudioEffectsFeatureListener): void
│   └── off(event: "effectsStarted" | "effectsStopped" | "effectsError", listener: AudioEffectsFeatureListener): void
│
└── Inherited Methods (from AudioStreamFeature)
    └── dispose(): void

Waar

  • activeEffects geeft u de audio-effecten die momenteel worden uitgevoerd.
  • isSupported controleert of een specifiek effect beschikbaar is in de huidige omgeving.
  • startEffects en stopEffects de activering van effecten regelen (ruisonderdrukking, echo-annulering)
  • on / off hiermee kunt u zich abonneren/afmelden voor gebeurtenissen

Bekijk de API-documentatiepagina van de Kenmerkinterface audio-effecten voor meer informatie over de interface die de eigenschappen en methoden van audio-effecten beschrijft.

De functie Audio-effecten initialiseren

Als u audio-effecten wilt gebruiken in de Azure Communication Services Calling SDK, hebt u de LocalAudioStream eigenschap nodig die zich momenteel in het gesprek bevindt. U hebt toegang nodig tot de AudioEffects API van de LocalAudioStream eigenschap om audio-effecten te starten en te stoppen.

Ruisonderdrukking inschakelen

In het volgende codefragment ziet u een voorbeeld van het inschakelen van ruisonderdrukking vanuit de WebJS-omgeving.

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

// Start Communication Services Noise Suppression
await audioEffectsFeatureApi.startEffects({
    noiseSuppression: deepNoiseSuppression
});

Echoannulering inschakelen

In het volgende codefragment ziet u een voorbeeld van het inschakelen van echo-annulering vanuit de WebJS-omgeving.

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

// Create the noise suppression instance 
const echoCancellationEffect = new EchoCancellationEffect();

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

// Start Communication Services echo cancellation
await audioEffectsFeatureApi.startEffects({
    echoCancellation: echoCancellationEffect
}); 

Controleer of de huidige browseromgeving audio-effecten ondersteunt

U wordt aangeraden de ondersteuning voor het effect in de huidige browseromgeving te controleren met behulp van de isSupported methode voor de functie-API. Houd er rekening mee dat audio-effecten alleen worden ondersteund in desktopbrowsers voor Chrome en Edge.


const deepNoiseSuppression = new DeepNoiseSuppressionEffect();
const echoCancellationEffect = new EchoCancellationEffect();

const isEchoCancellationSupported = await audioEffectsFeatureApi.isSupported(echoCancellationEffect);
if (isEchoCancellationSupported) {
    console.log('Echo Cancellation is supported in the current browser environment');
}

const isNoiseSuppressionSupported = await audioEffectsFeatureApi.isSupported(deepNoiseSuppression);
if (isNoiseSuppressionSupported) {
    console.log('Noise Suppression is supported in the current browser environment');
}

Breng het allemaal bij elkaar: Ruisonderdrukking laden en echo-annulering starten

Als u een oproep wilt starten waarvoor ruisonderdrukking en echoannulatie is ingeschakeld, maakt u een nieuwe LocalAudioStream eigenschap met behulp van AudioDeviceInfo. Zorg ervoor dat de LocalAudioStream bron niet is ingesteld als een onbewerkte MediaStream eigenschap ter ondersteuning van audio-effecten. Neem vervolgens de eigenschap binnen CallStartOptions.audioOptions op bij het starten van de aanroep.

import { EchoCancellationEffect, DeepNoiseSuppressionEffect } from '@azure/communication-calling-effects';

// Create the noise suppression instance 
const deepNoiseSuppression = new DeepNoiseSuppressionEffect();
// Create the noise suppression instance 
const echoCancellationEffect = new EchoCancellationEffect();

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

// To start Communication Services Deep Noise Suppression
await audioEffectsFeatureApi.startEffects({
    echoCancellation: echoCancellationEffect,
    noiseSuppression: deepNoiseSuppression
}); 

Ruisonderdrukking inschakelen tijdens een doorlopend gesprek

U kunt een oproep starten en geen ruisonderdrukking inschakelen. De vergaderruimte van eindgebruikers kan luidruchtig worden, zodat ze ruisonderdrukking zouden moeten inschakelen. Als u ruisonderdrukking wilt inschakelen, kunt u de audioEffectsFeatureApi.startEffects interface gebruiken.

// Create the noise suppression 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 suppression is only supported on desktop browsers for Chrome and Edge.
const isDeepNoiseSuppressionSupported = await audioEffectsFeatureApi.isSupported(deepNoiseSuppression);
if (isDeepNoiseSuppressionSupported) {
    console.log('Noise suppression 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
});

Audio-effectenpakketten starten of stoppen tijdens een actief gesprek

U kunt een oproep starten en geen ruisonderdrukking inschakelen. De vergaderruimte van eindgebruikers kan luidruchtig worden, zodat ze ruisonderdrukking zouden moeten inschakelen. Als u ruisonderdrukking wilt inschakelen, kunt u de audioEffectsFeatureApi.startEffects API gebruiken.

Ruisonderdrukking van Azure Communication Services starten

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

Het stoppen van diepe ruisonderdrukking van Azure Communication Services

await audioEffectsFeatureApi.stopEffects({
    noiseSuppression: true
});

Om echo-annulering van Azure Communication Services te starten

await audioEffectsFeatureApi.startEffects({
    noiseSuppression: echoCancellation
});

De echo-annulering van Azure Communication Services uitschakelen

await audioEffectsFeatureApi.stopEffects({
    echoCancellation: true
});

Controleren welke audio-effecten actief zijn

Als u wilt controleren welke geluidsonderdrukkingseffecten momenteel actief zijn, kunt u de activeEffects eigenschap gebruiken. De activeEffects eigenschap retourneert een object met de namen van de huidige actieve effecten. Zie hier voor meer informatie over de activeEffects interface.

import { EchoCancellationEffect, 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);

// Get the current active effects
const activeAudioEffects = audioEffectsFeatureApi.activeEffects;

if (activeAudioEffects.noiseSuppression === 'DeepNoiseSuppression') {
    // Deep Noise Suppression is currently active
}
if (activeAudioEffects.echoCancellation === 'EchoCancellation') {
    // Echo Cancellation is currently active
}
;

Beste praktijken

Het pakket audio-effecten van Azure Communication Services WebJS biedt hulpprogramma's voor het verminderen van ongewenste geluiden. Er kunnen andere maatregelen worden genomen om de audiokwaliteit te verbeteren, zoals:

  • Eindgebruikers aanmoedigen om een hoofdtelefoon te gebruiken om de noodzaak van echo-annulering te minimaliseren.
  • Het inschakelen van ruisonderdrukking in gedeelde of open werkomgevingen.
  • Ruisonderdrukking instellen als de standaardoptie (dat wil bijvoorbeeld dat audio-effecten worden geactiveerd wanneer een gebruiker een oproep start). Als deze functie automatisch wordt ingeschakeld aan het begin van oproepen, hoeven gebruikers deze niet handmatig te activeren. Het inschakelen van ruisonderdrukking en echo-annulering kan standaard helpen bij het beperken van audioproblemen tijdens gesprekken.
  • Test audio-effecten in verschillende omgevingen om de eindgebruikerservaring te optimaliseren.

Zie de documentatiepagina voor audio-effecten voor uitgebreide API-functies.

Audiofilters configureren met de Native Calling SDK's

De audio-effecten van Azure Communication Services bieden filters waarmee uw audiogesprek kan worden verbeterd. Voor systeemeigen platforms (Android, iOS en Windows) kunt u de volgende filters configureren.

Echoannulering

U kunt akoestische echo elimineren die wordt veroorzaakt door de stem van de beller die weer in de microfoon echot nadat deze uit de luidspreker is verzonden. Echo-annulering zorgt voor duidelijke communicatie.

U kunt het filter configureren voor en tijdens een gesprek. U kunt echo-annulering alleen in- of uitschakelen als de muziekmodus is ingeschakeld. Dit filter is standaard ingeschakeld.

Ruisonderdrukking

U kunt de geluidskwaliteit verbeteren door ongewenste achtergrondgeluiden zoals typen, airconditioning of straatgeluiden te filteren. Deze technologie zorgt ervoor dat de stem helder en helder is om effectievere communicatie te vergemakkelijken.

U kunt het filter configureren voor en tijdens een gesprek. De momenteel beschikbare modi zijn Uitgeschakeld, Auto, Laag en Hoog. Deze functie is standaard ingesteld op Hoog.

Automatisch controle over verkrijgen

U kunt het volume van de microfoon automatisch aanpassen om consistente audioniveaus tijdens het gesprek te garanderen.

  • Analoge automatische versterkingscontrole is een filter dat alleen beschikbaar is voor een oproep. Dit filter is standaard ingeschakeld.
  • Digitaal automatisch beheer voor automatisch verkrijgen is een filter dat alleen beschikbaar is vóór een oproep. Dit filter is standaard ingeschakeld.

Muziekmodus

Muziekmodus is een filter dat beschikbaar is voor en tijdens een gesprek. Zie de muziekmodus op native Calling SDK voor meer informatie over de muziekmodus. De muziekmodus werkt alleen op systeemeigen platforms via een-op-een- of groepsgesprekken. Het werkt niet in een-op-een-aanroepen tussen systeemeigen platforms en het web. Standaard is de muziekmodus uitgeschakeld.

Vereisten

Installeer de SDK

Zoek het bestand op projectniveau build.gradle en voeg deze toe aan mavenCentral() de lijst met opslagplaatsen onder buildscript en allprojects:

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

Voeg vervolgens in het bestand op moduleniveau build.gradle de volgende regels toe aan de dependencies sectie:

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

De vereiste objecten initialiseren

Als u een CallAgent exemplaar wilt maken, moet u de createCallAgent methode voor een CallClient exemplaar aanroepen. Hiermee wordt asynchroon een CallAgent exemplaarobject geretourneerd.

De createCallAgent methode wordt CommunicationUserCredential gebruikt als een argument, dat een toegangstoken inkapselt.

Als u toegang DeviceManagerwilt krijgen, moet u eerst een callAgent exemplaar maken. Vervolgens kunt u de CallClient.getDeviceManager methode gebruiken om op te halen 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();

Als u een weergavenaam voor de aanroeper wilt instellen, gebruikt u deze alternatieve methode:

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

U kunt de functie audiofilter gebruiken om verschillende opties voor audiovoorverwerking toe te passen op uitgaande audio. De twee typen audiofilters zijn OutgoingAudioFilters en LiveOutgoingAudioFilters. Hiermee OutgoingAudioFilters kunt u instellingen wijzigen voordat de oproep wordt gestart. Gebruik LiveOutgoingAudioFilters dit om de instellingen te wijzigen terwijl een oproep wordt uitgevoerd.

U moet eerst de Aanroepende SDK en de bijbehorende klassen importeren:

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

Voordat een gesprek begint

U kunt dit toepassen OutgoingAudioFilters wanneer een oproep wordt gestart.

Begin met het maken van een OutgoingAudioFilters eigenschap en deze door te geven aan OutgoingAudioOptions, zoals wordt weergegeven in de volgende code:

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

Tijdens het gesprek

U kunt dit toepassen LiveOutgoingAudioFilters nadat een gesprek is gestart. U kunt dit object ophalen uit het aanroepobject tijdens de aanroep. Als u de instelling wilt LiveOutgoingAudioFilterswijzigen, stelt u de leden in de klasse in op een geldige waarde en worden ze toegepast.

Alleen een subset van de filters waaruit beschikbaar OutgoingAudioFilters is, zijn beschikbaar tijdens een actieve aanroep. Ze zijn muziekmodus, echo-annulering en ruisonderdrukkingsmodus.

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

Audiofilters configureren met de Native Calling SDK's

De audio-effecten van Azure Communication Services bieden filters waarmee uw audiogesprek kan worden verbeterd. Voor systeemeigen platforms (Android, iOS en Windows) kunt u de volgende filters configureren.

Echoannulering

U kunt akoestische echo elimineren die wordt veroorzaakt door de stem van de beller die weer in de microfoon echot nadat deze uit de luidspreker is verzonden. Echo-annulering zorgt voor duidelijke communicatie.

U kunt het filter configureren voor en tijdens een gesprek. U kunt echo-annulering alleen in- of uitschakelen als de muziekmodus is ingeschakeld. Dit filter is standaard ingeschakeld.

Ruisonderdrukking

U kunt de geluidskwaliteit verbeteren door ongewenste achtergrondgeluiden zoals typen, airconditioning of straatgeluiden te filteren. Deze technologie zorgt ervoor dat de stem helder en helder is om effectievere communicatie te vergemakkelijken.

U kunt het filter configureren voor en tijdens een gesprek. De momenteel beschikbare modi zijn Uitgeschakeld, Auto, Laag en Hoog. Deze functie is standaard ingesteld op Hoog.

Automatisch controle over verkrijgen

U kunt het volume van de microfoon automatisch aanpassen om consistente audioniveaus tijdens het gesprek te garanderen.

  • Analoge automatische versterkingscontrole is een filter dat alleen beschikbaar is voor een oproep. Dit filter is standaard ingeschakeld.
  • Digitaal automatisch beheer voor automatisch verkrijgen is een filter dat alleen beschikbaar is vóór een oproep. Dit filter is standaard ingeschakeld.

Muziekmodus

Muziekmodus is een filter dat beschikbaar is voor en tijdens een gesprek. Zie de muziekmodus op native Calling SDK voor meer informatie over de muziekmodus. De muziekmodus werkt alleen op systeemeigen platforms via een-op-een- of groepsgesprekken. Het werkt niet in een-op-een-aanroepen tussen systeemeigen platforms en het web. Standaard is de muziekmodus uitgeschakeld.

Vereisten

Uw systeem instellen

Volg deze stappen om uw systeem in te stellen.

Het Xcode-project maken

Maak in Xcode een nieuw iOS-project en selecteer de sjabloon Single View-app (Toepassing met één weergave). In dit artikel wordt het SwiftUI-framework gebruikt, dus u moet taal instellen op Swift en interface instellen op SwiftUI.

U gaat geen tests maken in dit artikel. Schakel het selectievakje Inclusief tests uit.

Schermopname van het venster voor het maken van een project in Xcode.

Het pakket en afhankelijkheden installeren met CocoaPods

  1. Maak een Podfile voor uw toepassing, zoals in dit voorbeeld:

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

  3. Open .xcworkspace met behulp van Xcode.

Toegang tot de microfoon aanvragen

Voor toegang tot de microfoon van het apparaat moet u de lijst met gegevenseigenschappen van uw app bijwerken met behulp van NSMicrophoneUsageDescription. Stel de gekoppelde waarde in op een tekenreeks die is opgenomen in het dialoogvenster dat het systeem gebruikt om toegang van de gebruiker aan te vragen.

Klik met de rechtermuisknop op de vermelding Info.plist van de projectstructuur en selecteer Open As.> Voeg de volgende regels toe in de sectie op het hoogste niveau <dict> en sla het bestand op.

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

Stel het app-framework in

Open het projectbestand ContentView.swift . Voeg een import declaratie toe aan het begin van het bestand om de AzureCommunicationCalling bibliotheek te importeren. Daarnaast importeert u AVFoundation. U hebt deze nodig voor audiomachtigingsaanvragen in de code.

import AzureCommunicationCalling
import AVFoundation

CallAgent initialiseren

Als u een CallAgent exemplaar CallClientwilt maken, moet u een callClient.createCallAgent methode gebruiken die asynchroon een CallAgent object retourneert nadat het is geïnitialiseerd.

Als u een aanroepclient wilt maken, geeft u een CommunicationTokenCredential object door:

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

Geef het CommunicationTokenCredential object door waarnaar u hebt gemaakt CallClienten stel de weergavenaam in:

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

U kunt de functie audiofilter gebruiken om verschillende opties voor audiovoorverwerking toe te passen op uitgaande audio. De twee typen audiofilters zijn OutgoingAudioFilters en LiveOutgoingAudioFilters. Hiermee OutgoingAudioFilters kunt u instellingen wijzigen voordat de oproep wordt gestart. Gebruik LiveOutgoingAudioFilters dit om de instellingen te wijzigen terwijl een oproep wordt uitgevoerd.

U moet eerst de Aanroepende SDK importeren:

import AzureCommunicationCalling

Voordat het gesprek wordt gestart

U kunt dit toepassen OutgoingAudioFilters wanneer een oproep wordt gestart.

Maak eerst een OutgoingAudioFilters eigenschap en geef deze door aan OutgoingAudioOptions, zoals hier wordt weergegeven:

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

Tijdens het gesprek

U kunt dit toepassen LiveOutgoingAudioFilters nadat een gesprek is gestart. U kunt dit object ophalen uit het aanroepobject tijdens de aanroep. Als u de instelling wilt LiveOutgoingAudioFilterswijzigen, stelt u de leden in de klasse in op een geldige waarde en worden ze toegepast.

Alleen een subset van de filters waaruit beschikbaar OutgoingAudioFilters is, zijn beschikbaar tijdens een actieve aanroep. Ze zijn muziekmodus, echo-annulering en ruisonderdrukkingsmodus.

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

Audiofilters configureren met de Native Calling SDK's

De audio-effecten van Azure Communication Services bieden filters waarmee uw audiogesprek kan worden verbeterd. Voor systeemeigen platforms (Android, iOS en Windows) kunt u de volgende filters configureren.

Echoannulering

U kunt akoestische echo elimineren die wordt veroorzaakt door de stem van de beller die weer in de microfoon echot nadat deze uit de luidspreker is verzonden. Echo-annulering zorgt voor duidelijke communicatie.

U kunt het filter configureren voor en tijdens een gesprek. U kunt echo-annulering alleen in- of uitschakelen als de muziekmodus is ingeschakeld. Dit filter is standaard ingeschakeld.

Ruisonderdrukking

U kunt de geluidskwaliteit verbeteren door ongewenste achtergrondgeluiden zoals typen, airconditioning of straatgeluiden te filteren. Deze technologie zorgt ervoor dat de stem helder en helder is om effectievere communicatie te vergemakkelijken.

U kunt het filter configureren voor en tijdens een gesprek. De momenteel beschikbare modi zijn Uitgeschakeld, Auto, Laag en Hoog. Deze functie is standaard ingesteld op Hoog.

Automatisch controle over verkrijgen

U kunt het volume van de microfoon automatisch aanpassen om consistente audioniveaus tijdens het gesprek te garanderen.

  • Analoge automatische versterkingscontrole is een filter dat alleen beschikbaar is voor een oproep. Dit filter is standaard ingeschakeld.
  • Digitaal automatisch beheer voor automatisch verkrijgen is een filter dat alleen beschikbaar is vóór een oproep. Dit filter is standaard ingeschakeld.

Muziekmodus

Muziekmodus is een filter dat beschikbaar is voor en tijdens een gesprek. Zie de muziekmodus op native Calling SDK voor meer informatie over de muziekmodus. De muziekmodus werkt alleen op systeemeigen platforms via een-op-een- of groepsgesprekken. Het werkt niet in een-op-een-aanroepen tussen systeemeigen platforms en het web. Standaard is de muziekmodus uitgeschakeld.

Vereisten

Uw systeem instellen

Volg deze stappen om uw systeem in te stellen.

Het Visual Studio-project maken

Voor een Universeel Windows-platform-app maakt u in Visual Studio 2022 een nieuw leeg app-project (Universal Windows). Nadat u de projectnaam hebt ingevoerd, kunt u een Windows SDK kiezen die hoger is dan 10.0.17763.0.

Maak voor een WinUI 3-app een nieuw project met de sjabloon Blank App, Packaged (WinUI 3 in Desktop) om een WinUI 3-app met één pagina in te stellen. Windows-app SDK versie 1.3 of hoger is vereist.

Installeer het pakket en afhankelijkheden met behulp van NuGet Pakketbeheer

De Aanroepende SDK-API's en -bibliotheken zijn openbaar beschikbaar via een NuGet-pakket.

Het NuGet-pakket voor aanroepende SDK zoeken, downloaden en installeren:

  1. Open NuGet Pakketbeheer door Tools
  2. Selecteer Bladeren en voer vervolgens Azure.Communication.Calling.WindowsClient in het zoekvak in.
  3. Zorg ervoor dat het selectievakje Voorlopige versie opnemen is ingeschakeld.
  4. Selecteer het pakket Azure.Communication.Calling.WindowsClient en selecteer vervolgens Azure.Communication.Calling.WindowsClient1.4.0-beta.1 of een nieuwere versie.
  5. Schakel het selectievakje in dat overeenkomt met het Azure Communication Services-project in het rechterdeelvenster.
  6. Selecteer Installeren.

U kunt de functie audiofilter gebruiken om verschillende audiovoorverwerking toe te passen op uitgaande audio. De twee typen audiofilters zijn OutgoingAudioFilters en LiveOutgoingAudioFilters. Hiermee OutgoingAudioFilters kunt u instellingen wijzigen voordat de oproep wordt gestart. Gebruik LiveOutgoingAudioFilters dit om de instellingen te wijzigen terwijl een oproep wordt uitgevoerd.

U moet eerst de Aanroepende SDK importeren:

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

Voordat een gesprek begint

U kunt dit toepassen OutgoingAudioFilters wanneer een oproep wordt gestart.

Begin met het maken van een OutgoingAudioFilters eigenschap en deze door te geven aan OutgoingAudioOptions, zoals wordt weergegeven in de volgende code:

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

Tijdens het gesprek

U kunt dit toepassen LiveOutgoingAudioFilters nadat een gesprek is gestart. U kunt dit object ophalen uit het aanroepobject nadat de aanroep is gestart. Als u de instelling wilt LiveOutgoingAudioFilterswijzigen, stelt u de leden in de klasse in op een geldige waarde en worden ze toegepast.

Alleen een subset van de filters waaruit beschikbaar OutgoingAudioFilters is, zijn beschikbaar tijdens een actieve aanroep. Ze zijn muziekmodus, echo-annulering en ruisonderdrukkingsmodus.

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