Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule opisano sposób dodawania efektów dźwiękowych w wywołaniach przy użyciu usług Azure Communication Services.
Funkcje efektów dźwiękowych usług Azure Communication Services mogą znacznie poprawić połączenia audio, filtrując niepożądany szum w tle i usuwając echo. Tłumienie szumu działa, identyfikując i eliminując rozpraszające dźwięki, takie jak ruch, wpisywanie lub czatter, co sprawia, że rozmowy są jaśniejsze i łatwiejsze do naśladowania. W tym samym czasie usuwanie echa zapewnia, że Twój głos nie odbija się podczas rozmowy, zmniejszając sprzężenie zwrotne i zapobiegając zakłóceniom. Te technologie nie tylko zwiększają jasność mowy, ale także zmniejszają zmęczenie odbiornika — zwłaszcza w hałaśliwych środowiskach. Jeśli na przykład korzystasz z połączenia WebJS usług Azure Communication Services w zatłoczonej kawiarni, włączenie tych efektów dźwiękowych może zapewnić płynniejsze i bardziej skoncentrowane doświadczenie komunikacyjne.
🎧 Co to są efekty dźwiękowe?
Efekty dźwiękowe w usłudze ACS to udoskonalenia w czasie rzeczywistym stosowane do wejścia mikrofonu podczas połączenia. Pakiet efektów audio w usługach Azure Communications Services ma wiele możliwości usuwania niepożądanych dźwięków z rozmowy (z perspektywy klienta).
Tłumienie szumu (nazywane czasem redukcją szumu) koncentruje się na eliminowaniu niechcianych dźwięków tła. Pomyśl o dźwiękach pisania na klawiaturze, szumie wentylatora, odległych rozmowach lub hałasie ulicznym. Jego zadaniem jest odizolowanie głosu tak, aby osoba słuchająca słyszała cię wyraźniej, i zredukować lub usunąć rozpraszające dźwięki tła. Używa algorytmów wytrenowanych do rozpoznawania różnic między mową a szumem otoczenia, a następnie zmniejsza lub usuwa ten szum w czasie rzeczywistym. Te szumy można uznać za dźwięk, który nie jest ludzkim głosem. Kluczowe cechy, które umożliwia tłumienie szumów:
- Usuwa ciągłe lub przewidywalne szumy tła.
- Zwiększ przejrzystość mowy.
- Zazwyczaj działa na końcu głośnika przed wysłaniem dźwięku.
Anulowanie echa powoduje usunięcie echa spowodowanego odebraniem dźwięku z głośników przez mikrofon. Na przykład, gdy ktoś jest na trybie głośnomówiącym, a ich mikrofon odbiera Twój głos z głośnika, może on jako echo wracać do Ciebie. Anulowanie echa przewiduje i odejmuje ten zwracany dźwięk, abyś nie słyszał swojego własnego głosu ułamek sekundy później. Kluczowe cechy anulowania echa:
- Redukuje sprzężenie zwrotne akustyczne.
- Niezbędne w otwartych konfiguracjach mikrofonu i pulpitu, w których mikrofon odbiera wyjście audio z głośnika lokalnego.
- Redukuje zmęczenie słuchacza i zamieszanie spowodowane powrotem własnego głosu.
Używanie efektów dźwiękowych: instalowanie pakietu npm efektów wywołujących
Ważne
Funkcje tłumienia szumów są dostępne w wersji GA zestawu SDK WebJS 1.28.4
lub późniejszej oraz w wersji GA zestawu SDK Calling Effects usług Azure Communication Services 1.1.2
lub późniejszej. Alternatywnie, jeśli zdecydujesz się korzystać z publicznej wersji zapoznawczej, wywoływanie wersji 1.24.2-beta.1
zestawu SDK i nowszych również obsługuje tłumienie szumu.
Ważne
Funkcje anulowania echa są dostępne w publicznej wersji zapoznawczej zestawu SDK w wersji 1.37.1. Należy również pamiętać, że aby korzystać z redukcji echa, trzeba użyć publicznej wersji zapoznawczej zestawu SDK audio w wersji 1.21.1-beta lub nowszej.
Uwaga / Notatka
- Wykorzystanie efektów dźwiękowych jest dostępne tylko w przeglądarkach klasycznych Chrome i Edge.
- Biblioteka efektów dźwiękowych nie jest autonomicznym modułem i nie może działać niezależnie. Aby móc korzystać z jego możliwości, pakiet efektów musi być zintegrowany z biblioteką klienta do obsługi połączeń usług Azure Communication Services dla WebJS.
- Jeśli używasz wersji GA Calling SDK, musisz użyć GA wersji pakietu efektów dźwiękowych Calling.
Instalowanie pakietu Audio Effects
Użyj polecenia , npm install
aby zainstalować zestaw SDK efektów dźwiękowych usług Azure Communication Services dla języka JavaScript.
@azure/communication-calling-effects/v/latest
Jeśli używasz publicznej wersji zapoznawczej zestawu Calling SDK, musisz użyć wersji beta zestawu SDK wywołującego efekty. Użyj polecenia , npm install
aby zainstalować zestaw SDK efektów dźwiękowych usług Azure Communication Services dla języka JavaScript.
@azure/communication-calling-effects/v/next
Włącz efekty dźwiękowe, których chcesz użyć
Poniżej przedstawiono ustrukturyzowaną reprezentację interfejsu AudioEffects:
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
Gdzie
-
activeEffects
daje aktualnie uruchomione efekty dźwiękowe. -
isSupported
sprawdza, czy określony efekt jest dostępny w bieżącym środowisku. -
startEffects
istopEffects
kontrolować aktywację efektów (tłumienie szumu, anulowanie echa) -
on
/off
umożliwia subskrybowanie/anulowanie subskrypcji zdarzeń
Aby uzyskać więcej informacji na temat interfejsu, który zawiera szczegółowe informacje o właściwościach i metodach efektów dźwiękowych, zobacz stronę dokumentacji interfejsu API funkcji efektów dźwiękowych.
Inicjowanie funkcji efektów dźwiękowych
Aby używać efektów dźwiękowych w SDK usługi Azure Communication Services do realizacji połączeń, należy użyć właściwości LocalAudioStream
, która jest aktualnie w połączeniu. Aby uruchomić i zatrzymać efekty dźwiękowe, musisz mieć dostęp do interfejsu AudioEffects
LocalAudioStream
API właściwości .
Włącz redukcję szumów
Poniższy fragment kodu przedstawia przykład włączania pomijania szumu z poziomu środowiska WebJS.
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
});
Włączanie anulowania echa
Poniższy fragment kodu przedstawia przykład włączania anulowania echa z poziomu środowiska WebJS.
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
});
Sprawdź, czy bieżące środowisko przeglądarki obsługuje efekty dźwiękowe
Zalecamy sprawdzenie obsługi efektu w bieżącym środowisku przeglądarki w interfejsie API danej funkcji przy użyciu metody isSupported
. Pamiętaj, że efekty dźwiękowe są obsługiwane tylko w przeglądarkach komputerowych Chrome i 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');
}
Połącz wszystko: załaduj i rozpocznij tłumienie szumu i usuwanie echa
Aby zainicjować wywołanie z włączonym tłumieniem szumów i usuwaniem echa, utwórz nową LocalAudioStream
właściwość przy użyciu AudioDeviceInfo
. Upewnij się, że LocalAudioStream
źródło nie jest ustawione jako surowa MediaStream
właściwość, aby umożliwić efekty dźwiękowe. Następnie uwzględnij tę właściwość w CallStartOptions.audioOptions
podczas rozpoczynania połączenia.
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
});
Włączanie tłumienia szumu podczas trwającego wywołania
Możesz uruchomić wywołanie i nie włączyć pomijania szumu. Pokój użytkowników końcowych może stać się hałaśliwy, więc mogą potrzebować włączyć tłumienie szumu. Aby włączyć tłumienie szumu, możesz użyć interfejsu audioEffectsFeatureApi.startEffects
.
// 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
});
Aby uruchomić lub zatrzymać pakiety efektów dźwiękowych podczas aktywnego połączenia
Możesz uruchomić wywołanie i nie włączyć pomijania szumu. Pokój użytkowników końcowych może stać się hałaśliwy, więc mogą potrzebować włączyć tłumienie szumu. Aby włączyć pomijanie szumu, możesz użyć interfejsu audioEffectsFeatureApi.startEffects
API.
Aby uruchomić tłumienie szumu w usłudze Azure Communication Services
await audioEffectsFeatureApi.startEffects({
noiseSuppression: deepNoiseSuppression
});
Aby zatrzymać tłumienie szumu w Usługach komunikacyjnych Azure
await audioEffectsFeatureApi.stopEffects({
noiseSuppression: true
});
Aby uruchomić usuwanie echa w usługach Azure Communication Services
await audioEffectsFeatureApi.startEffects({
noiseSuppression: echoCancellation
});
Aby wyłączyć redukcję echa w usługach Azure Communication Services
await audioEffectsFeatureApi.stopEffects({
echoCancellation: true
});
Sprawdzanie, jakie efekty dźwiękowe są aktywne
Aby sprawdzić, jakie efekty tłumienia szumu są obecnie aktywne, możesz użyć activeEffects
właściwości . Właściwość activeEffects
zwraca obiekt z nazwami bieżących aktywnych efektów. Zobacz tutaj , aby uzyskać więcej informacji na temat interfejsu 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
}
;
Najlepsze praktyki
Pakiet efektów dźwiękowych webJS usług Azure Communication Services udostępnia narzędzia do zmniejszania niepożądanych dźwięków. W celu poprawy jakości dźwięku można podjąć inne środki, takie jak:
- Zachęcanie użytkowników końcowych do rozważenia używania słuchawek w celu zminimalizowania konieczności anulowania echa.
- Włączanie tłumienia szumów w udostępnionych lub otwartych środowiskach pracy.
- Ustawienie pomijania szumu jako opcji domyślnej (tj. aktywowanie efektów dźwiękowych, gdy użytkownik inicjuje wywołanie). Jeśli ta funkcja jest włączona automatycznie na początku wywołań, użytkownicy nie muszą aktywować jej ręcznie. Włączenie pomijania szumu i anulowania echa domyślnie może pomóc rozwiązać problemy z dźwiękiem podczas wywołań.
- Przetestuj efekty dźwiękowe w różnych środowiskach, aby zoptymalizować środowisko użytkownika końcowego.
Powiązana zawartość
Zobacz stronę dokumentacji interfejsu funkcji Audio Effects, aby uzyskać szczegółowe informacje o rozszerzonych funkcjach interfejsu API.
Konfigurowanie filtrów audio za pomocą natywnych zestawów SDK dla wywołań
Efekty dźwiękowe usług Azure Communication Services oferują filtry, które mogą poprawić połączenie audio. W przypadku platform natywnych (Android, iOS i Windows) można skonfigurować następujące filtry.
Anulowanie echa
Możesz wyeliminować echo akustyczne spowodowane przez głos dzwoniącego, który odbija się z powrotem do mikrofonu po emisji z głośnika. Anulowanie echa zapewnia wyraźną komunikację.
Filtr można skonfigurować przed wywołaniem i podczas jego wywołania. Anulowanie echa można przełączać tylko wtedy, gdy jest włączony tryb muzyki. Domyślnie ten filtr jest włączony.
Tłumienie szumów
Jakość dźwięku można poprawić, filtrując niechciane szumy tła, takie jak wpisywanie, klimatyzacja lub dźwięki uliczne. Technologia ta zapewnia, że głos jest ostry i jasny, aby ułatwić skuteczniejszą komunikację.
Filtr można skonfigurować przed wywołaniem i podczas jego wywołania. Obecnie dostępne tryby to Wyłączone, Automatyczne, Niskie i Wysokie. Domyślnie ta funkcja jest ustawiona na Wartość Wysoka.
Automatyczna kontrola nad przyrostem
Możesz automatycznie dostosować głośność mikrofonu, aby zapewnić spójne poziomy dźwięku w całym wywołaniu.
- Analog automatyczna kontrola przyrostka jest filtrem dostępnym tylko przed wywołaniem. Domyślnie ten filtr jest włączony.
- Cyfrowe automatyczne sterowanie przyrostkiem jest filtrem dostępnym tylko przed wywołaniem. Domyślnie ten filtr jest włączony.
Tryb muzyki
Tryb muzyki to filtr dostępny przed i podczas połączenia. Aby dowiedzieć się więcej na temat trybu muzycznego, zobacz Tryb muzyki w zestawie SDK natywnych wywołań. Tryb muzyki działa tylko na platformach natywnych za pośrednictwem wywołań jeden na jeden lub grup. Nie działa w wywołaniach "jeden do jednego" między platformami natywnymi i siecią Web. Domyślnie tryb muzyki jest wyłączony.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Wdrożony zasób usług Azure Communication Services. Utwórz zasób usług Azure Communication Services.
- Token dostępu użytkownika umożliwiający włączenie klienta wywołującego. Aby uzyskać więcej informacji, zobacz Tworzenie tokenów dostępu i zarządzanie nimi.
- Opcjonalnie: ukończ przewodnik Szybki start, aby dodać połączenie głosowe do aplikacji.
Instalacja zestawu SDK
Znajdź plik na poziomie build.gradle
projektu i dodaj mavenCentral()
go do listy repozytoriów w obszarze buildscript
i allprojects
:
buildscript {
repositories {
...
mavenCentral()
...
}
}
allprojects {
repositories {
...
mavenCentral()
...
}
}
Następnie w pliku na poziomie build.gradle
modułu dependencies
dodaj następujące wiersze do sekcji:
dependencies {
...
implementation 'com.azure.android:azure-communication-calling:1.0.0'
...
}
Inicjowanie wymaganych obiektów
Aby utworzyć CallAgent
wystąpienie, należy wywołać createCallAgent
metodę w wystąpieniu CallClient
. To wywołanie asynchroniczne zwraca CallAgent
obiekt wystąpienia.
Metoda createCallAgent
przyjmuje CommunicationUserCredential
jako argument, który hermetyzuje token dostępu.
Aby uzyskać dostęp, DeviceManager
należy najpierw utworzyć callAgent
wystąpienie. Następnie możesz użyć metody , aby pobrać metodę CallClient.getDeviceManager
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();
Aby ustawić nazwę wyświetlaną elementu wywołującego, użyj tej alternatywnej metody:
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();
Możesz użyć funkcji filtru audio, aby zastosować różne opcje przetwarzania wstępnego audio do wychodzącego dźwięku. Istnieją dwa typy filtrów OutgoingAudioFilters
audio i LiveOutgoingAudioFilters
. Użyj polecenia OutgoingAudioFilters
, aby zmienić ustawienia przed rozpoczęciem wywołania. Użyj LiveOutgoingAudioFilters
polecenia , aby zmienić ustawienia, gdy wywołanie jest w toku.
Najpierw należy zaimportować zestaw SDK wywoływania i skojarzone klasy:
import com.azure.android.communication.calling.OutgoingAudioOptions;
import com.azure.android.communication.calling.OutgoingAudioFilters;
import com.azure.android.communication.calling.LiveOutgoingAudioFilters;
Przed rozpoczęciem połączenia
Można zastosować OutgoingAudioFilters
podczas uruchamiania wywołania.
Zacznij od utworzenia OutgoingAudioFilters
właściwości i przekazania jej do OutgoingAudioOptions
elementu , jak pokazano w poniższym kodzie:
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);
W trakcie rozmowy telefonicznej
Można zastosować po LiveOutgoingAudioFilters
rozpoczęciu połączenia. Ten obiekt można pobrać z obiektu wywołania podczas wywołania. Aby zmienić ustawienie w LiveOutgoingAudioFilters
pliku , ustaw elementy członkowskie wewnątrz klasy na prawidłową wartość i są one stosowane.
Podczas aktywnego wywołania jest dostępny tylko podzbiór dostępnych filtrów OutgoingAudioFilters
. Są one trybem muzycznym, anulowaniem echa i trybem pomijania szumu.
LiveOutgoingAudioFilters filters = call.getLiveOutgoingAudioFilters();
filters.setMusicModeEnabled(false);
filters.setAcousticEchoCancellationEnabled(false);
filters.setNoiseSuppressionMode(NoiseSuppressionMode.HIGH);
Konfigurowanie filtrów audio za pomocą natywnych zestawów SDK dla wywołań
Efekty dźwiękowe usług Azure Communication Services oferują filtry, które mogą poprawić połączenie audio. W przypadku platform natywnych (Android, iOS i Windows) można skonfigurować następujące filtry.
Anulowanie echa
Możesz wyeliminować echo akustyczne spowodowane przez głos dzwoniącego, który odbija się z powrotem do mikrofonu po emisji z głośnika. Anulowanie echa zapewnia wyraźną komunikację.
Filtr można skonfigurować przed wywołaniem i podczas jego wywołania. Anulowanie echa można przełączać tylko wtedy, gdy jest włączony tryb muzyki. Domyślnie ten filtr jest włączony.
Tłumienie szumów
Jakość dźwięku można poprawić, filtrując niechciane szumy tła, takie jak wpisywanie, klimatyzacja lub dźwięki uliczne. Technologia ta zapewnia, że głos jest ostry i jasny, aby ułatwić skuteczniejszą komunikację.
Filtr można skonfigurować przed wywołaniem i podczas jego wywołania. Obecnie dostępne tryby to Wyłączone, Automatyczne, Niskie i Wysokie. Domyślnie ta funkcja jest ustawiona na Wartość Wysoka.
Automatyczna kontrola nad przyrostem
Możesz automatycznie dostosować głośność mikrofonu, aby zapewnić spójne poziomy dźwięku w całym wywołaniu.
- Analog automatyczna kontrola przyrostka jest filtrem dostępnym tylko przed wywołaniem. Domyślnie ten filtr jest włączony.
- Cyfrowe automatyczne sterowanie przyrostkiem jest filtrem dostępnym tylko przed wywołaniem. Domyślnie ten filtr jest włączony.
Tryb muzyki
Tryb muzyki to filtr dostępny przed i podczas połączenia. Aby dowiedzieć się więcej na temat trybu muzycznego, zobacz Tryb muzyki w zestawie SDK natywnych wywołań. Tryb muzyki działa tylko na platformach natywnych za pośrednictwem wywołań jeden na jeden lub grup. Nie działa w wywołaniach "jeden do jednego" między platformami natywnymi i siecią Web. Domyślnie tryb muzyki jest wyłączony.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Wdrożony zasób usług Azure Communication Services. Utwórz zasób usług Azure Communication Services.
- Token dostępu użytkownika umożliwiający włączenie klienta wywołującego. Aby uzyskać więcej informacji, zobacz Tworzenie tokenów dostępu i zarządzanie nimi.
- Opcjonalnie: ukończ przewodnik Szybki start, aby dodać połączenie głosowe do aplikacji.
Konfigurowanie systemu
Wykonaj następujące kroki, aby skonfigurować system.
Tworzenie projektu Xcode
W programie Xcode utwórz nowy projekt systemu iOS i wybierz szablon Aplikacja z jednym widokiem. W tym artykule jest używana struktura SwiftUI, dlatego należy ustawić wartość Language na Swift i ustawić wartość Interface na SwiftUI.
Nie zamierzasz tworzyć testów w tym artykule. Możesz wyczyścić pole wyboru Uwzględnij testy .
Instalowanie pakietu i zależności przy użyciu narzędzia CocoaPods
Utwórz plik Podfile dla aplikacji, podobnie jak w tym przykładzie:
platform :ios, '13.0' use_frameworks! target 'AzureCommunicationCallingSample' do pod 'AzureCommunicationCalling', '~> 1.0.0' end
Uruchom program
pod install
.Otwórz
.xcworkspace
za pomocą programu Xcode.
Żądanie dostępu do mikrofonu
Aby uzyskać dostęp do mikrofonu urządzenia, należy zaktualizować listę właściwości informacji aplikacji przy użyciu polecenia NSMicrophoneUsageDescription
. Ustaw skojarzona wartość na ciąg zawarty w oknie dialogowym używanym przez system do żądania dostępu od użytkownika.
Kliknij prawym przyciskiem myszy wpis Info.plist drzewa projektu, a następnie wybierz pozycję Otwórz jako>kod źródłowy. Dodaj następujące wiersze w sekcji najwyższego poziomu <dict>
, a następnie zapisz plik.
<key>NSMicrophoneUsageDescription</key>
<string>Need microphone access for VOIP calling.</string>
Konfigurowanie struktury aplikacji
Otwórz plik projektu ContentView.swift
. Dodaj deklarację import
na początku pliku, aby zaimportować bibliotekę AzureCommunicationCalling
. Ponadto zaimportuj plik AVFoundation
. Potrzebne są żądania uprawnień dźwięku w kodzie.
import AzureCommunicationCalling
import AVFoundation
Inicjowanie klasy CallAgent
Aby utworzyć CallAgent
wystąpienie z CallClient
klasy , należy użyć callClient.createCallAgent
metody, która asynchronicznie zwraca CallAgent
obiekt po zainicjowaniu.
Aby utworzyć klienta wywołania, przekaż CommunicationTokenCredential
obiekt:
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)
}
CommunicationTokenCredential
Przekaż utworzony obiekt do CallClient
, a następnie ustaw nazwę wyświetlaną:
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")
}
})
Możesz użyć funkcji filtru audio, aby zastosować różne opcje przetwarzania wstępnego audio do wychodzącego dźwięku. Istnieją dwa typy filtrów OutgoingAudioFilters
audio i LiveOutgoingAudioFilters
. Użyj polecenia OutgoingAudioFilters
, aby zmienić ustawienia przed rozpoczęciem wywołania. Użyj LiveOutgoingAudioFilters
polecenia , aby zmienić ustawienia, gdy wywołanie jest w toku.
Najpierw należy zaimportować zestaw SDK wywołujący:
import AzureCommunicationCalling
Przed rozpoczęciem połączenia
Można zastosować OutgoingAudioFilters
podczas uruchamiania wywołania.
Zacznij od utworzenia OutgoingAudioFilters
właściwości i przekazania jej do OutgoingAudioOptions
elementu , jak pokazano poniżej:
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
W trakcie rozmowy telefonicznej
Można zastosować po LiveOutgoingAudioFilters
rozpoczęciu połączenia. Ten obiekt można pobrać z obiektu wywołania podczas wywołania. Aby zmienić ustawienie w LiveOutgoingAudioFilters
pliku , ustaw elementy członkowskie wewnątrz klasy na prawidłową wartość i są one stosowane.
Podczas aktywnego wywołania jest dostępny tylko podzbiór dostępnych filtrów OutgoingAudioFilters
. Są one trybem muzycznym, anulowaniem echa i trybem pomijania szumu.
LiveOutgoingAudioFilters filters = call.liveOutgoingAudioFilters
filters.musicModeEnabled = true
filters.acousticEchoCancellationEnabled = true
filters.NoiseSuppressionMode = NoiseSuppressionMode.high
Konfigurowanie filtrów audio za pomocą natywnych zestawów SDK dla wywołań
Efekty dźwiękowe usług Azure Communication Services oferują filtry, które mogą poprawić połączenie audio. W przypadku platform natywnych (Android, iOS i Windows) można skonfigurować następujące filtry.
Anulowanie echa
Możesz wyeliminować echo akustyczne spowodowane przez głos dzwoniącego, który odbija się z powrotem do mikrofonu po emisji z głośnika. Anulowanie echa zapewnia wyraźną komunikację.
Filtr można skonfigurować przed wywołaniem i podczas jego wywołania. Anulowanie echa można przełączać tylko wtedy, gdy jest włączony tryb muzyki. Domyślnie ten filtr jest włączony.
Tłumienie szumów
Jakość dźwięku można poprawić, filtrując niechciane szumy tła, takie jak wpisywanie, klimatyzacja lub dźwięki uliczne. Technologia ta zapewnia, że głos jest ostry i jasny, aby ułatwić skuteczniejszą komunikację.
Filtr można skonfigurować przed wywołaniem i podczas jego wywołania. Obecnie dostępne tryby to Wyłączone, Automatyczne, Niskie i Wysokie. Domyślnie ta funkcja jest ustawiona na Wartość Wysoka.
Automatyczna kontrola nad przyrostem
Możesz automatycznie dostosować głośność mikrofonu, aby zapewnić spójne poziomy dźwięku w całym wywołaniu.
- Analog automatyczna kontrola przyrostka jest filtrem dostępnym tylko przed wywołaniem. Domyślnie ten filtr jest włączony.
- Cyfrowe automatyczne sterowanie przyrostkiem jest filtrem dostępnym tylko przed wywołaniem. Domyślnie ten filtr jest włączony.
Tryb muzyki
Tryb muzyki to filtr dostępny przed i podczas połączenia. Aby dowiedzieć się więcej na temat trybu muzycznego, zobacz Tryb muzyki w zestawie SDK natywnych wywołań. Tryb muzyki działa tylko na platformach natywnych za pośrednictwem wywołań jeden na jeden lub grup. Nie działa w wywołaniach "jeden do jednego" między platformami natywnymi i siecią Web. Domyślnie tryb muzyki jest wyłączony.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Wdrożony zasób usług Azure Communication Services. Utwórz zasób usług Azure Communication Services.
- Token dostępu użytkownika umożliwiający włączenie klienta wywołującego. Aby uzyskać więcej informacji, zobacz Tworzenie tokenów dostępu i zarządzanie nimi.
- Opcjonalnie: ukończ przewodnik Szybki start, aby dodać połączenie głosowe do aplikacji.
Konfigurowanie systemu
Wykonaj następujące kroki, aby skonfigurować system.
Tworzenie projektu programu Visual Studio
W przypadku aplikacji platforma uniwersalna systemu Windows w programie Visual Studio 2022 utwórz nowy projekt Pusta aplikacja (uniwersalny system Windows). Po wprowadzeniu nazwy projektu możesz wybrać dowolny zestaw Windows SDK nowszy niż 10.0.17763.0.
W przypadku aplikacji WinUI 3 utwórz nowy projekt z pustą aplikacją, spakowanym szablonem (WinUI 3 w programie Desktop), aby skonfigurować jednostronicową aplikację WinUI 3. Wymagany jest zestaw Windows App SDK w wersji 1.3 lub nowszej.
Instalowanie pakietu i zależności przy użyciu Menedżer pakietów NuGet
Interfejsy API i biblioteki zestawu SDK wywołujących są publicznie dostępne za pośrednictwem pakietu NuGet.
Aby znaleźć, pobrać i zainstalować pakiet NuGet zestawu SDK wywołującego:
- Otwórz Menedżer pakietów NuGet, wybierając pozycję > Zarządzanie pakietami NuGet dla rozwiązania.
- Wybierz pozycję Przeglądaj, a następnie wprowadź ciąg Azure.Communication.Calling.WindowsClient w polu wyszukiwania.
- Upewnij się, że pole wyboru Uwzględnij wersję wstępną zostało zaznaczone.
- Wybierz pakiet Azure.Communication.Calling.WindowsClient, a następnie wybierz pozycję Azure.Communication.Calling.WindowsClient1.4.0-beta.1 lub nowszą wersję.
- Zaznacz pole wyboru odpowiadające projektowi usług Azure Communication Services w okienku po prawej stronie.
- Wybierz Zainstaluj.
Możesz użyć funkcji filtru audio, aby zastosować różne wstępne przetwarzanie audio do wychodzącego dźwięku. Istnieją dwa typy filtrów OutgoingAudioFilters
audio i LiveOutgoingAudioFilters
. Użyj polecenia OutgoingAudioFilters
, aby zmienić ustawienia przed rozpoczęciem wywołania. Użyj LiveOutgoingAudioFilters
polecenia , aby zmienić ustawienia, gdy wywołanie jest w toku.
Najpierw należy zaimportować zestaw SDK wywołujący:
using Azure.Communication;
using Azure.Communication.Calling.WindowsClient;
Przed rozpoczęciem połączenia
Można zastosować OutgoingAudioFilters
podczas uruchamiania wywołania.
Zacznij od utworzenia OutgoingAudioFilters
właściwości i przekazania jej do OutgoingAudioOptions
elementu , jak pokazano w poniższym kodzie:
var outgoingAudioOptions = new OutgoingAudioOptions();
var filters = new OutgoingAudioFilters()
{
AnalogAutomaticGainControlEnabled = true,
DigitalAutomaticGainControlEnabled = true,
MusicModeEnabled = true,
AcousticEchoCancellationEnabled = true,
NoiseSuppressionMode = NoiseSuppressionMode.High
};
outgoingAudioOptions.Filters = filters;
W trakcie rozmowy telefonicznej
Można zastosować po LiveOutgoingAudioFilters
rozpoczęciu połączenia. Ten obiekt można pobrać z obiektu wywołania po rozpoczęciu wywołania. Aby zmienić ustawienie w LiveOutgoingAudioFilters
pliku , ustaw elementy członkowskie wewnątrz klasy na prawidłową wartość i są one stosowane.
Podczas aktywnego wywołania jest dostępny tylko podzbiór dostępnych filtrów OutgoingAudioFilters
. Są one trybem muzycznym, anulowaniem echa i trybem pomijania szumu.
LiveOutgoingAudioFilters filter = call.LiveOutgoingAudioFilters;
filter.MusicModeEnabled = true;
filter.AcousticEchoCancellationEnabled = true;
filter.NoiseSuppressionMode = NoiseSuppressionMode.Auto;