Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln beskriver hur du lägger till ljudeffekter i dina samtal med Hjälp av Azure Communication Services.
Funktionerna för ljudeffekter i Azure Communication Services kan avsevärt förbättra dina ljudsamtal genom att filtrera bort oönskat bakgrundsbrus och ta bort eko. Brusdämpning fungerar genom att identifiera och eliminera störande ljud som trafik, skriva eller chatta, vilket gör konversationerna tydligare och enklare att följa. Samtidigt säkerställer ekoborttagning att din röst inte studsar tillbaka under samtalet, vilket minskar feedbacken och förhindrar avbrott. Dessa tekniker förbättrar inte bara talskärpa utan minskar också lyssnartröttheten , särskilt i bullriga miljöer. Om du till exempel är på ett Azure Communication Services WebJS-samtal i ett upptaget kafé kan aktivering av dessa ljudeffekter skapa en smidigare och mer fokuserad kommunikationsupplevelse.
🎧 Vad är ljudeffekter?
Ljudeffekter i ACS är realtidsförbättringar som tillämpas på mikrofoninmatning under ett samtal. Azure Communications Services-ljudeffektpaketet har flera funktioner för att ta bort oönskade ljud från ett anrop (ur ett klientperspektiv).
Brusreducering (kallas ibland brusreducering) fokuserar på att eliminera oönskade bakgrundsljud. Tänk tangentljud, fläktens surr, avlägsna samtal eller gatubrus. Dess uppgift är att isolera din röst så att den som lyssnar hör dig tydligare och minska eller ta bort distraherande bakgrundsljud. Den använder algoritmer som tränats för att identifiera skillnaden mellan ditt tal och omgivande brus och minskar eller tar sedan bort bruset i realtid. Dessa ljud kan betraktas som ett ljud som inte är mänsklig röst. Viktiga egenskaper som brusundertryckning möjliggör:
- Tar bort kontinuerliga eller förutsägbara bakgrundsbrus.
- Förbättra talskärpa.
- Fungerar vanligtvis hos talaren innan ljudet skickas ut.
Ekoreducering tar bort eko som orsakas när mikrofonen hämtar ljud från högtalarna. Till exempel, när någon är på högtalartelefonen och deras mikrofon plockar upp din röst från sin högtalare, kan den loopa tillbaka till dig som ett eko. Ekoreducering förutsäger och subtraherar det här returnerande ljudet så att du inte hör dig själv prata tillbaka en bråkdel av en sekund senare. Viktiga egenskaper för ekoreducering:
- Minskar akustisk feedback.
- Viktigt i öppna mikrofon- och skrivbordsinstallationer där mikrofonen hämtar ljudutdata från en lokal högtalare.
- Minskar lyssnarens trötthet och förvirring som orsakas av att höra din egen röst returneras.
Använd ljudeffekter: Installera NPM-paketet för samtalseffekter
Viktigt!
Funktioner för brusreducering är tillgängliga i GA WebJS SDK-versionen 1.28.4 eller senare, tillsammans med Azure Communication Services Calling Effects SDK version GA 1.1.2 eller senare. Om du väljer att använda den offentliga förhandsversionen stöder anropande SDK-versioner 1.24.2-beta.1 och senare även brusreducering.
Viktigt!
Funktioner för ekoreducering är tillgängliga i GA WebJS SDK version 1.38.1 eller senare. Observera också att om du vill använda ekodämpning måste du använda ljudeffekter SDK version GA 1.31.1 eller senare. Om du väljer att använda den offentliga förhandsversionen stöder Calling SDK version 1.38.1-beta.1 och senare även brusreducering.
Anmärkning
- Användning av ljudeffekter är endast tillgängligt i Chrome- och Edge-skrivbordswebbläsare.
- Ljudeffektbiblioteket är inte en fristående modul och kan inte fungera oberoende av varandra. Om du vill använda dess funktioner måste effektpaketet integreras med Azure Communication Services Calling-klientbiblioteket för WebJS.
- Om du använder GA-versionen av Calling SDK måste du använda GA-versionen av paketet Samtalsljudeffekter.
- Om du använder den offentliga förhandsversionen av Calling SDK måste du använda den offentliga förhandsversionen av paketet Samtalsljudeffekter.
Installera ljudeffektpaketet
npm install Använd kommandot för att installera Azure Communication Services Audio Effects SDK för JavaScript.
@azure/communication-calling-effects/v/latest
Om du använder den offentliga förhandsversionen av Calling SDK måste du använda betaversionen av Calling Effects SDK.
npm install Använd kommandot för att installera Azure Communication Services Audio Effects SDK för JavaScript.
@azure/communication-calling-effects/v/next
Aktivera ljudeffekter som du vill använda
Följande är en trädstrukturerad representation av AudioEffects-gränssnittet:
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
Var
-
activeEffectsger dig de ljudeffekter som körs just nu. -
isSupportedkontrollerar om en specifik effekt är tillgänglig i den aktuella miljön. -
startEffectsochstopEffectskontrollera aktiveringen av effekter (brusreducering, ekoreducering) -
on/offlåter dig prenumerera/avbryta prenumerationen på händelser
Mer information om gränssnittet som beskriver egenskaper och metoder för ljudeffekter finns på API-dokumentationssidan för ljudeffekter.
Initiera funktionen Ljudeffekter
Om du vill använda ljudeffekter i Azure Communication Services Calling SDK behöver du den LocalAudioStream egenskap som för närvarande finns i anropet. Du behöver åtkomst till -API:et AudioEffects för LocalAudioStream egenskapen för att starta och stoppa ljudeffekter.
Aktivera brusundertryckning
Följande kodfragment visar ett exempel på hur du aktiverar brusreducering inifrån WebJS-miljön.
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
});
Aktivera ekodämpning
Följande kodfragment visar ett exempel på hur du aktiverar ekoreducering inifrån WebJS-miljön.
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
});
Kontrollera att den aktuella webbläsarmiljön stöder ljudeffekter
Vi rekommenderar att du kontrollerar stödet för effekten i den aktuella webbläsarmiljön med hjälp av metoden isSupported i funktionens API. Kom ihåg att ljudeffekter endast stöds i skrivbordswebbläsare för Chrome och 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');
}
Samla allt samman: Ladda och starta brusreducering och ekosläckning
Om du vill initiera ett anrop med både brusreducering och ekoreducering aktiverat skapar du en ny LocalAudioStream egenskap med .AudioDeviceInfo Kontrollera att LocalAudioStream källan inte har angetts som en rå MediaStream egenskap för att stödja ljudeffekter. Inkludera sedan den här egenskapen i CallStartOptions.audioOptions när du startar anropet.
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
});
Aktivera brusdämpning under ett pågående samtal
Du kan starta ett samtal och inte ha brusundertryckning aktiverat. Slutanvändarrummet kan bli bullrigt så att de måste aktivera brusreducering. Om du vill aktivera brusundertryckning kan du använda audioEffectsFeatureApi.startEffects gränssnittet.
// 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
});
Starta eller stoppa ljudeffektpaket under ett aktivt anrop
Du kan starta ett samtal och inte ha brusundertryckning aktiverat. Slutanvändarrummet kan bli bullrigt så att de måste aktivera brusreducering. Om du vill aktivera brusundertryckning kan du använda API:et audioEffectsFeatureApi.startEffects .
För att starta brusundertryckning i Azure Communication Services
await audioEffectsFeatureApi.startEffects({
noiseSuppression: deepNoiseSuppression
});
Så här stoppar du djup brusreducering i Azure Communication Services
await audioEffectsFeatureApi.stopEffects({
noiseSuppression: true
});
Så här startar du ekoreparation för Azure Communication Services
await audioEffectsFeatureApi.startEffects({
noiseSuppression: echoCancellation
});
Så här stoppar du ekorering av Azure Communication Services
await audioEffectsFeatureApi.stopEffects({
echoCancellation: true
});
Kontrollera vilka ljudeffekter som är aktiva
Om du vill kontrollera vilka brusundertryckningseffekter som för närvarande är aktiva kan du använda activeEffects egenskapen . Egenskapen activeEffects returnerar ett objekt med namnen på de aktuella aktiva effekterna. Mer information om gränssnittet finns activeEffects.
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
}
;
Metodtips
Azure Communication Services WebJS-ljudeffektpaketet innehåller verktyg för att minska oönskade ljud. Andra åtgärder kan vidtas för att förbättra ljudkvaliteten, till exempel:
- Uppmuntra slutanvändarna att överväga att använda hörlurar för att minimera behovet av ekoreducering.
- Aktivera brusdämpning i delade eller öppna arbetsmiljöer.
- Ange brusundertryckning som standardalternativ (d.v.s. att aktivera ljudeffekter när en användare initierar ett anrop). Om den här funktionen aktiveras automatiskt i början av anrop behöver användarna inte aktivera den manuellt. Om du aktiverar brusreducering och ekoreducering som standard kan du minimera ljudproblem under samtal.
- Testa ljudeffekter i olika miljöer för att optimera slutanvändarupplevelsen.
Relaterat innehåll
Mer information om api-funktioner finns på dokumentationssidan för funktionsgränssnittet för ljudeffekter.
Konfigurera ljudfilter med interna SDK:er för samtal
Azure Communication Services-ljudeffekterna erbjuder filter som kan förbättra ditt ljudsamtal. För interna plattformar (Android, iOS och Windows) kan du konfigurera följande filter.
Ekoreducering
Du kan eliminera akustiskt eko som orsakas av att uppringarens röst ekar tillbaka in i mikrofonen efter att ha släppts ut från högtalaren. Ekoreducering garanterar tydlig kommunikation.
Du kan konfigurera filtret före och under ett anrop. Du kan endast växla ekoreducering om musikläget är aktiverat. Som standard är det här filtret aktiverat.
Brusreducering
Du kan förbättra ljudkvaliteten genom att filtrera bort oönskade bakgrundsljud som att skriva, luftkonditionering eller gatuljud. Den här tekniken säkerställer att rösten är skarp och tydlig för att underlätta effektivare kommunikation.
Du kan konfigurera filtret före och under ett anrop. De lägen som är tillgängliga för närvarande är Av, Auto, Låg och Hög. Som standard är den här funktionen inställd på Hög.
Automatisk vinstkontroll
Du kan automatiskt justera mikrofonens volym för att säkerställa konsekventa ljudnivåer under hela samtalet.
- Analog automatisk gain-kontroll är ett filter som endast är tillgängligt före ett anrop. Som standard är det här filtret aktiverat.
- Digital automatisk kontroll är ett filter som endast är tillgängligt före ett anrop. Som standard är det här filtret aktiverat.
Musikläge
Musikläge är ett filter som är tillgängligt före och under ett anrop. Mer information om musikläge finns i Musikläge på Native Calling SDK. Musikläget fungerar bara på interna plattformar över en-mot-en- eller gruppsamtal. Det fungerar inte i en-till-en-anrop mellan interna plattformar och webben. Som standard är musikläget inaktiverat.
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
- En distribuerad Azure Communication Services-resurs. Skapa en Azure Communication Services-resurs.
- En användaråtkomsttoken för att aktivera den anropande klienten. Mer information finns i Skapa och hantera åtkomsttoken.
- Valfritt: Slutför snabbstarten för att lägga till röstsamtal i ditt program.
Installera SDK:n
Leta upp filen på projektnivå build.gradle och lägg till mavenCentral() i listan med lagringsplatser under buildscript och allprojects:
buildscript {
repositories {
...
mavenCentral()
...
}
}
allprojects {
repositories {
...
mavenCentral()
...
}
}
Lägg sedan till följande rader i modulnivåfilen build.gradle i dependencies avsnittet:
dependencies {
...
implementation 'com.azure.android:azure-communication-calling:1.0.0'
...
}
Initiera nödvändiga objekt
Om du vill skapa en CallAgent instans måste du anropa createCallAgent metoden på en CallClient instans. Det här anropet returnerar asynkront ett CallAgent instansobjekt.
Metoden createCallAgent tar CommunicationUserCredential som ett argument som kapslar in en åtkomsttoken.
Om du vill komma åt DeviceManagermåste du skapa en callAgent instans först. Sedan kan du använda CallClient.getDeviceManager metoden för att hämta 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();
Om du vill ange ett visningsnamn för anroparen använder du den här alternativa metoden:
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();
Du kan använda ljudfilterfunktionen för att tillämpa olika alternativ för förbearbetning av ljud på utgående ljud. De två typerna av ljudfilter är OutgoingAudioFilters och LiveOutgoingAudioFilters. Använd OutgoingAudioFilters för att ändra inställningarna innan anropet startar. Använd LiveOutgoingAudioFilters för att ändra inställningarna medan ett anrop pågår.
Du måste först importera den anropande SDK:n och de associerade klasserna:
import com.azure.android.communication.calling.OutgoingAudioOptions;
import com.azure.android.communication.calling.OutgoingAudioFilters;
import com.azure.android.communication.calling.LiveOutgoingAudioFilters;
Innan ett samtal startar
Du kan använda OutgoingAudioFilters när ett samtal startar.
Börja med att skapa en OutgoingAudioFilters egenskap och skicka den till OutgoingAudioOptions, som du ser i följande kod:
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);
Under samtalet
Du kan ansöka LiveOutgoingAudioFilters när ett samtal har startats. Du kan hämta det här objektet från anropsobjektet under anropet. Om du vill ändra inställningen i LiveOutgoingAudioFiltersanger du medlemmarna i klassen till ett giltigt värde och de tillämpas.
Endast en delmängd av filtren som är tillgängliga från OutgoingAudioFilters är tillgängliga under ett aktivt anrop. De är musikläge, ekoreducering och brusreduceringsläge.
LiveOutgoingAudioFilters filters = call.getLiveOutgoingAudioFilters();
filters.setMusicModeEnabled(false);
filters.setAcousticEchoCancellationEnabled(false);
filters.setNoiseSuppressionMode(NoiseSuppressionMode.HIGH);
Konfigurera ljudfilter med interna SDK:er för samtal
Azure Communication Services-ljudeffekterna erbjuder filter som kan förbättra ditt ljudsamtal. För interna plattformar (Android, iOS och Windows) kan du konfigurera följande filter.
Ekoreducering
Du kan eliminera akustiskt eko som orsakas av att uppringarens röst ekar tillbaka in i mikrofonen efter att ha släppts ut från högtalaren. Ekoreducering garanterar tydlig kommunikation.
Du kan konfigurera filtret före och under ett anrop. Du kan endast växla ekoreducering om musikläget är aktiverat. Som standard är det här filtret aktiverat.
Brusreducering
Du kan förbättra ljudkvaliteten genom att filtrera bort oönskade bakgrundsljud som att skriva, luftkonditionering eller gatuljud. Den här tekniken säkerställer att rösten är skarp och tydlig för att underlätta effektivare kommunikation.
Du kan konfigurera filtret före och under ett anrop. De lägen som är tillgängliga för närvarande är Av, Auto, Låg och Hög. Som standard är den här funktionen inställd på Hög.
Automatisk vinstkontroll
Du kan automatiskt justera mikrofonens volym för att säkerställa konsekventa ljudnivåer under hela samtalet.
- Analog automatisk gain-kontroll är ett filter som endast är tillgängligt före ett anrop. Som standard är det här filtret aktiverat.
- Digital automatisk kontroll är ett filter som endast är tillgängligt före ett anrop. Som standard är det här filtret aktiverat.
Musikläge
Musikläge är ett filter som är tillgängligt före och under ett anrop. Mer information om musikläge finns i Musikläge på Native Calling SDK. Musikläget fungerar bara på interna plattformar över en-mot-en- eller gruppsamtal. Det fungerar inte i en-till-en-anrop mellan interna plattformar och webben. Som standard är musikläget inaktiverat.
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
- En distribuerad Azure Communication Services-resurs. Skapa en Azure Communication Services-resurs.
- En användaråtkomsttoken för att aktivera den anropande klienten. Mer information finns i Skapa och hantera åtkomsttoken.
- Valfritt: Slutför snabbstarten för att lägga till röstsamtal i ditt program.
Konfigurera systemet
Följ de här stegen för att konfigurera systemet.
Skapa Xcode-projektet
I Xcode skapar du ett nytt iOS-projekt och väljer mallen Enkel vyapp . Den här artikeln använder SwiftUI-ramverket, så du bör ange Language till Swift och ange Gränssnitt till SwiftUI.
Du kommer inte att skapa tester i den här artikeln. Avmarkera kryssrutan Inkludera tester .
Installera paketet och beroenden med hjälp av CocoaPods
Skapa en Podfile för ditt program, som i det här exemplet:
platform :ios, '13.0' use_frameworks! target 'AzureCommunicationCallingSample' do pod 'AzureCommunicationCalling', '~> 1.0.0' endKör
pod install.Öppna
.xcworkspacemed Xcode.
Begär åtkomst till mikrofonen
För att få åtkomst till enhetens mikrofon måste du uppdatera appens egenskapslista för information med hjälp NSMicrophoneUsageDescriptionav . Ange det associerade värdet till en sträng som ingår i dialogrutan som systemet använder för att begära åtkomst från användaren.
Högerklicka på posten Info.plist i projektträdet och välj sedan Öppna som>källkod. Lägg till följande rader i avsnittet på den översta nivån <dict> och spara sedan filen.
<key>NSMicrophoneUsageDescription</key>
<string>Need microphone access for VOIP calling.</string>
Konfigurera appramverket
Öppna projektets ContentView.swift fil. Lägg till en import deklaration överst i filen för att importera AzureCommunicationCalling biblioteket. Importera dessutom AVFoundation. Du behöver den för begäranden om ljudbehörighet i koden.
import AzureCommunicationCalling
import AVFoundation
Initiera CallAgent
Om du vill skapa en CallAgent instans från CallClientmåste du använda en callClient.createCallAgent metod som asynkront returnerar ett CallAgent objekt när det har initierats.
Skicka ett CommunicationTokenCredential objekt för att skapa en anropsklient:
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)
}
Skicka objektet CommunicationTokenCredential som du skapade till CallClientoch ange visningsnamnet:
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")
}
})
Du kan använda ljudfilterfunktionen för att tillämpa olika alternativ för förbearbetning av ljud på utgående ljud. De två typerna av ljudfilter är OutgoingAudioFilters och LiveOutgoingAudioFilters. Använd OutgoingAudioFilters för att ändra inställningarna innan anropet startar. Använd LiveOutgoingAudioFilters för att ändra inställningarna medan ett anrop pågår.
Du måste först importera den anropande SDK:n:
import AzureCommunicationCalling
Innan samtalet startar
Du kan använda OutgoingAudioFilters när ett samtal startar.
Börja med att skapa en OutgoingAudioFilters egenskap och skicka den till OutgoingAudioOptions, som du ser här:
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
Under samtalet
Du kan ansöka LiveOutgoingAudioFilters när ett samtal har startats. Du kan hämta det här objektet från anropsobjektet under anropet. Om du vill ändra inställningen i LiveOutgoingAudioFiltersanger du medlemmarna i klassen till ett giltigt värde och de tillämpas.
Endast en delmängd av filtren som är tillgängliga från OutgoingAudioFilters är tillgängliga under ett aktivt anrop. De är musikläge, ekoreducering och brusreduceringsläge.
LiveOutgoingAudioFilters filters = call.liveOutgoingAudioFilters
filters.musicModeEnabled = true
filters.acousticEchoCancellationEnabled = true
filters.NoiseSuppressionMode = NoiseSuppressionMode.high
Konfigurera ljudfilter med interna SDK:er för samtal
Azure Communication Services-ljudeffekterna erbjuder filter som kan förbättra ditt ljudsamtal. För interna plattformar (Android, iOS och Windows) kan du konfigurera följande filter.
Ekoreducering
Du kan eliminera akustiskt eko som orsakas av att uppringarens röst ekar tillbaka in i mikrofonen efter att ha släppts ut från högtalaren. Ekoreducering garanterar tydlig kommunikation.
Du kan konfigurera filtret före och under ett anrop. Du kan endast växla ekoreducering om musikläget är aktiverat. Som standard är det här filtret aktiverat.
Brusreducering
Du kan förbättra ljudkvaliteten genom att filtrera bort oönskade bakgrundsljud som att skriva, luftkonditionering eller gatuljud. Den här tekniken säkerställer att rösten är skarp och tydlig för att underlätta effektivare kommunikation.
Du kan konfigurera filtret före och under ett anrop. De lägen som är tillgängliga för närvarande är Av, Auto, Låg och Hög. Som standard är den här funktionen inställd på Hög.
Automatisk vinstkontroll
Du kan automatiskt justera mikrofonens volym för att säkerställa konsekventa ljudnivåer under hela samtalet.
- Analog automatisk gain-kontroll är ett filter som endast är tillgängligt före ett anrop. Som standard är det här filtret aktiverat.
- Digital automatisk kontroll är ett filter som endast är tillgängligt före ett anrop. Som standard är det här filtret aktiverat.
Musikläge
Musikläge är ett filter som är tillgängligt före och under ett anrop. Mer information om musikläge finns i Musikläge på Native Calling SDK. Musikläget fungerar bara på interna plattformar över en-mot-en- eller gruppsamtal. Det fungerar inte i en-till-en-anrop mellan interna plattformar och webben. Som standard är musikläget inaktiverat.
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
- En distribuerad Azure Communication Services-resurs. Skapa en Azure Communication Services-resurs.
- En användaråtkomsttoken för att aktivera den anropande klienten. Mer information finns i Skapa och hantera åtkomsttoken.
- Valfritt: Slutför snabbstarten för att lägga till röstsamtal i ditt program.
Konfigurera systemet
Följ de här stegen för att konfigurera systemet.
Skapa Visual Studio-projektet
För en Universell Windows-plattform app skapar du i Visual Studio 2022 ett nytt projekt för Tom app (Universell Windows). När du har angett projektnamnet kan du välja valfri Windows SDK senare än 10.0.17763.0.
För en WinUI 3-app skapar du ett nytt projekt med mallen Tom app, Paketerad (WinUI 3 i Desktop) för att konfigurera en WinUI 3-app med en enda sida. SDK för Windows-appar version 1.3 eller senare krävs.
Installera paketet och beroendena med hjälp av NuGet Package Manager
Anropande SDK-API:er och bibliotek är offentligt tillgängliga via ett NuGet-paket.
Så här hittar du, laddar ned och installerar det anropande SDK NuGet-paketet:
- Öppna NuGet Package Manager genom att välja Verktyg>NuGet Package Manager>Hantera NuGet-paket för lösning.
- Välj Bläddra och ange sedan Azure.Communication.Calling.WindowsClient i sökrutan.
- Kontrollera att kryssrutan Inkludera förhandsversion är markerad.
- Välj paketet Azure.Communication.Calling.WindowsClient och välj sedan Azure.Communication.Calling.WindowsClient1.4.0-beta.1 eller en nyare version.
- Markera kryssrutan som motsvarar Azure Communication Services-projektet i den högra rutan.
- Välj Installera.
Du kan använda funktionen för ljudfilter för att tillämpa olika förbearbetning av ljud på utgående ljud. De två typerna av ljudfilter är OutgoingAudioFilters och LiveOutgoingAudioFilters. Använd OutgoingAudioFilters för att ändra inställningarna innan anropet startar. Använd LiveOutgoingAudioFilters för att ändra inställningarna medan ett anrop pågår.
Du måste först importera den anropande SDK:n:
using Azure.Communication;
using Azure.Communication.Calling.WindowsClient;
Innan ett samtal startar
Du kan använda OutgoingAudioFilters när ett samtal startar.
Börja med att skapa en OutgoingAudioFilters egenskap och skicka den till OutgoingAudioOptions, som du ser i följande kod:
var outgoingAudioOptions = new OutgoingAudioOptions();
var filters = new OutgoingAudioFilters()
{
AnalogAutomaticGainControlEnabled = true,
DigitalAutomaticGainControlEnabled = true,
MusicModeEnabled = true,
AcousticEchoCancellationEnabled = true,
NoiseSuppressionMode = NoiseSuppressionMode.High
};
outgoingAudioOptions.Filters = filters;
Under samtalet
Du kan ansöka LiveOutgoingAudioFilters när ett samtal har startats. Du kan hämta det här objektet från anropsobjektet när anropet har påbörjats. Om du vill ändra inställningen i LiveOutgoingAudioFiltersanger du medlemmarna i klassen till ett giltigt värde och de tillämpas.
Endast en delmängd av filtren som är tillgängliga från OutgoingAudioFilters är tillgängliga under ett aktivt anrop. De är musikläge, ekoreducering och brusreduceringsläge.
LiveOutgoingAudioFilters filter = call.LiveOutgoingAudioFilters;
filter.MusicModeEnabled = true;
filter.AcousticEchoCancellationEnabled = true;
filter.NoiseSuppressionMode = NoiseSuppressionMode.Auto;