إضافة تحسينات جودة الصوت إلى تجربة الاتصال الصوتي

يمكن لقدرات منع الضوضاء لتأثيرات الصوت في Azure Communication Services تحسين مكالماتك الصوتية عن طريق تصفية الضوضاء الخلفية غير المرغوب فيها. منع الضوضاء هو تقنية تزيل ضوضاء الخلفية من المكالمات الصوتية. فهو يجعل المكالمات الصوتية أكثر وضوحا وأفضل من خلال القضاء على الضوضاء في الخلفية، مما يسهل التحدث والاستماع. يمكن أن يقلل قمع الضوضاء أيضا من تشتيت الانتباه والتعب الناجم عن الأماكن الصاخبة. على سبيل المثال، إذا كنت تتلقى مكالمة Azure Communication Services WebJS في مقهى به ضوضاء كبيرة، فإن تشغيل منع الضوضاء يمكن أن يجعل تجربة المكالمة أفضل.

هام

الوظائف الموضحة في هذه المقالة موجودة حاليا في المعاينة العامة. يجري توفير إصدار المعاينة هذا دون اتفاقية على مستوى الخدمة، ولا نوصي باستخدامه لأحمال عمل الإنتاج. بعض الميزات ربما لا تكون مدعمة أو بها بعض القدرات المقيدة. لمزيد من المعلومات، راجع ⁧⁩شروط الاستخدام التكميلية لمعاينات Microsoft Azure⁧⁩.

استخدام التأثيرات الصوتية - منع الضوضاء

تثبيت الحزمة NPM:

npm install استخدم الأمر لتثبيت Azure Communication Services Audio Effects SDK ل JavaScript.

هام

يستخدم هذا البرنامج التعليمي إصدار Azure Communication Services Calling SDK من 1.24.2-beta.1 (أو أكبر) وإصدار Azure Communication Services Calling Audio Effects SDK أكبر من (أو أكبر) أو مساويا 1.1.1-beta.1 له.

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

إشعار

لا يمكن استخدام مكتبة تأثير الاستدعاء مستقلة ويمكن أن تعمل فقط عند استخدامها مع مكتبة عميل Azure Communication Calling ل WebJS (https://www.npmjs.com/package/@azure/communication-calling).

يمكنك العثور على مزيد من التفاصيل حول صفحة حزمة npm لتأثيرات الاستدعاء.

إشعار

يتوفر دعم المستعرض الحالي لإضافة تأثيرات منع الضوضاء الصوتية فقط على متصفحات Chrome و Edge لسطح المكتب.

يمكنك التعرف على تفاصيل واجهة برمجة التطبيقات الاستدعاء.

لاستخدام noise suppression التأثيرات الصوتية داخل Azure Communication Calling SDK، تحتاج إلى LocalAudioStream الموجود حاليا في المكالمة. تحتاج إلى الوصول إلى AudioEffects واجهة برمجة التطبيقات لبدء التأثيرات الصوتية LocalAudioStream وإيقافها.

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

// Get the LocalAudioStream from the localAudioStream collection on the call object
// 'call' here represents the call object.
const localAudioStreamInCall = call.localAudioStreams[0];

// Get the audio effects feature API from LocalAudioStream
const audioEffectsFeatureApi = localAudioStreamInCall.feature(SDK.Features.AudioEffects);

// Subscribe to useful events that show audio effects status
audioEffectsFeatureApi.on('effectsStarted', (activeEffects: ActiveAudioEffects) => {
    console.log(`Current status audio effects: ${activeEffects}`);
});


audioEffectsFeatureApi.on('effectsStopped', (activeEffects: ActiveAudioEffects) => {
    console.log(`Current status audio effects: ${activeEffects}`);
});


audioEffectsFeatureApi.on('effectsError', (error: AudioEffectErrorPayload) => {
    console.log(`Error with audio effects: ${error.message}`);
});

في أي وقت إذا كنت تريد التحقق من تأثيرات منع الضوضاء النشطة حاليا، يمكنك استخدام الخاصية activeEffects . ترجع activeEffects الخاصية كائنا بأسماء التأثيرات النشطة الحالية.

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

بدء مكالمة مع تمكين منع الضوضاء

لبدء مكالمة مع تشغيل منع الضوضاء، يمكنك إنشاء جديد LocalAudioStream باستخدام AudioDeviceInfo (لا يجب أن يكون مصدر LocalAudioStream خاما MediaStream لاستخدام التأثيرات الصوتية)، وتمريره في CallStartOptions.audioOptions:

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

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

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

كيفية تشغيل منع الضوضاء أثناء مكالمة مستمرة

هناك حالات قد يبدأ فيها المستخدم مكالمة ولا يكون منع الضوضاء قيد التشغيل، ولكن بيئته الحالية قد تصبح مزعجة مما يؤدي إلى حاجته إلى تشغيل منع الضوضاء. لتشغيل منع الضوضاء، يمكنك استخدام audioEffectsFeatureApi.startEffects واجهة برمجة التطبيقات.

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

// Its recommened to check support for the effect in the current environment using the isSupported method on the feature API. Remember that Noise Supression is only supported on Desktop Browsers for Chrome and Edge
const isDeepNoiseSuppressionSupported = await audioEffectsFeatureApi.isSupported(deepNoiseSuppression);
if (isDeepNoiseSuppressionSupported) {
    console.log('Noise supression is supported in browser environment');
}

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

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

تعرف على كيفية تكوين عوامل تصفية الصوت باستخدام Calling Native SDKs.

توفر التأثيرات الصوتية ل Azure Communication Services عوامل تصفية يمكنها تحسين مكالمتك الصوتية. بالنسبة للأنظمة الأساسية الأصلية (Android وiOS وWindows) يمكنك تكوين عوامل التصفية التالية:

إلغاء صدى الصوت

فهو يزيل الصدى الصوتي الناتج عن رداء صوت المتصل مرة أخرى إلى الميكروفون بعد أن ينبعث من السماعة، ما يضمن اتصالا واضحا.

يمكنك تكوين عامل التصفية قبل وأثناء المكالمة. يمكنك فقط تبديل إلغاء صدى الصوت فقط إذا تم تمكين وضع الموسيقى. بشكل افتراضي، يتم تمكين عامل التصفية هذا.

قمع الضوضاء

تحسين جودة الصوت لتصفية الضوضاء الخلفية غير المرغوب فيها مثل الكتابة أو تكييف الهواء أو أصوات الشوارع. تضمن هذه التقنية أن يكون الصوت واضحا وواضحا، مما يسهل التواصل الأكثر فعالية.

يمكنك تكوين عامل التصفية قبل وأثناء المكالمة. الأوضاع المتوفرة حاليا هي Offو LowAutoو و.High بشكل افتراضي، يتم تعيين هذه الميزة إلى High الوضع.

التحكم التلقائي في الاكتساب (AGC)

يقوم تلقائيا بضبط مستوى صوت الميكروفون لضمان مستويات صوت متناسقة طوال المكالمة.

  • التحكم التلقائي في الكسب التمثيلي هو عامل تصفية متوفر فقط قبل إجراء مكالمة. بشكل افتراضي، يتم تمكين عامل التصفية هذا.
  • التحكم في الاكتساب التلقائي الرقمي هو عامل تصفية متوفر فقط قبل إجراء مكالمة. بشكل افتراضي، يتم تمكين عامل التصفية هذا.

وضع الموسيقى

وضع الموسيقى هو عامل تصفية متوفر قبل المكالمة وأثناءها. تعرف على المزيد حول وضع الموسيقى هنا. يعمل وضع الموسيقى فقط على الأنظمة الأساسية الأصلية التي تزيد عن 1n1 أو مكالمات جماعية ولا يعمل في مكالمات 1:1 بين المكالمات الأصلية والويب. بشكل افتراضي، يتم تعطيل وضع الموسيقى.

المتطلبات الأساسية

تثبيت حزمة SDK

حدد موقع ملف build.gradle على مستوى المشروع وأضف mavenCentral() إلى قائمة المستودعات ضمن buildscript وallprojects:

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

بعد ذلك، في ملف build.gradle على مستوى الوحدة النمطية، أضف الأسطر التالية إلى dependencies القسم:

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

تهيئة الكائنات المطلوبة

لإنشاء مثيل CallAgent ، يجب عليك استدعاء createCallAgent الأسلوب على مثيل CallClient . يقوم هذا الاستدعاء بإرجاع كائن مثيل CallAgent بشكل غير متزامن.

createCallAgent يأخذ CommunicationUserCredential الأسلوب كوسيطة، والتي تغلف رمز مميز للوصول.

للوصول إلى DeviceManager، يجب إنشاء مثيل callAgent أولا. ثم يمكنك استخدام 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();

لتعيين اسم عرض للمتصل، استخدم هذا الأسلوب البديل:

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

تمكنك ميزة تصفية الصوت من تطبيق خيارات معالجة الصوت المسبق المختلفة على الصوت الصادر. هناك نوعان من عوامل تصفية الصوت: OutgoingAudioFilters و LiveOutgoingAudioFilters. يتم استخدامها OutgoingAudioFilters لتغيير الإعدادات قبل بدء المكالمة وتغيير LiveOutgoingAudioFilters الإعدادات أثناء إجراء مكالمة.

تحتاج أولا إلى استيراد Calling SDK والفئات المقترنة:

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

قبل بدء المكالمة

OutgoingAudioFilters يمكن تطبيقه عند بدء المكالمة.

ابدأ بإنشاء OutgoingAudioFilters وتمريره إلى OutgoingAudioOptions كما هو موضح في التعليمات البرمجية التالية:

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

أثناء المكالمة

يمكنك التقديم LiveOutgoingAudioFilters بعد بدء المكالمة. يمكنك استرداد هذا الكائن من كائن الاستدعاء أثناء الاستدعاء. لتغيير الإعداد في LiveOutgoingAudioFilters، قم بتعيين الأعضاء داخل الفئة إلى قيمة صالحة ويتم تطبيقها.

تتوفر مجموعة فرعية فقط من عوامل التصفية المتوفرة من OutgoingAudioFilters خلال مكالمة نشطة: وضع الموسيقى وإلغاء الصدى ووضع منع الضوضاء.

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

تعرف على كيفية تكوين عوامل تصفية الصوت باستخدام Calling Native SDKs.

توفر التأثيرات الصوتية ل Azure Communication Services عوامل تصفية يمكنها تحسين مكالمتك الصوتية. بالنسبة للأنظمة الأساسية الأصلية (Android وiOS وWindows) يمكنك تكوين عوامل التصفية التالية:

إلغاء صدى الصوت

فهو يزيل الصدى الصوتي الناتج عن رداء صوت المتصل مرة أخرى إلى الميكروفون بعد أن ينبعث من السماعة، ما يضمن اتصالا واضحا.

يمكنك تكوين عامل التصفية قبل وأثناء المكالمة. يمكنك فقط تبديل إلغاء صدى الصوت فقط إذا تم تمكين وضع الموسيقى. بشكل افتراضي، يتم تمكين عامل التصفية هذا.

قمع الضوضاء

تحسين جودة الصوت لتصفية الضوضاء الخلفية غير المرغوب فيها مثل الكتابة أو تكييف الهواء أو أصوات الشوارع. تضمن هذه التقنية أن يكون الصوت واضحا وواضحا، مما يسهل التواصل الأكثر فعالية.

يمكنك تكوين عامل التصفية قبل وأثناء المكالمة. الأوضاع المتوفرة حاليا هي Offو LowAutoو و.High بشكل افتراضي، يتم تعيين هذه الميزة إلى High الوضع.

التحكم التلقائي في الاكتساب (AGC)

يقوم تلقائيا بضبط مستوى صوت الميكروفون لضمان مستويات صوت متناسقة طوال المكالمة.

  • التحكم التلقائي في الكسب التمثيلي هو عامل تصفية متوفر فقط قبل إجراء مكالمة. بشكل افتراضي، يتم تمكين عامل التصفية هذا.
  • التحكم في الاكتساب التلقائي الرقمي هو عامل تصفية متوفر فقط قبل إجراء مكالمة. بشكل افتراضي، يتم تمكين عامل التصفية هذا.

وضع الموسيقى

وضع الموسيقى هو عامل تصفية متوفر قبل المكالمة وأثناءها. تعرف على المزيد حول وضع الموسيقى هنا. يعمل وضع الموسيقى فقط على الأنظمة الأساسية الأصلية التي تزيد عن 1n1 أو مكالمات جماعية ولا يعمل في مكالمات 1:1 بين المكالمات الأصلية والويب. بشكل افتراضي، يتم تعطيل وضع الموسيقى.

المتطلبات الأساسية

قم بإعداد النظام

قم بإنشاء مشروع Xcode

في Xcode، أنشئ مشروع iOS جديداً ثم حدد قالب تطبيق العرض الفردي. يستخدم هذا التشغيل السريع إطار عمل SwiftUI، لذلك يجب عليك تعيين Language إلى Swift وتعيين Interface إلى SwiftUI.

لن تقوم بإنشاء اختبارات خلال هذه البداية السريعة. لا تتردد في إلغاء تحديد خانة الاختيار تضمين الاختبارات .

لقطة شاشة تعرض نافذة إنشاء مشروع داخل Xcode.

تثبيت الحزمة والتبعيات باستخدام CocoaPods

  1. إنشاء Podfile لتطبيقك، مثل هذا المثال:

    platform :ios, '13.0'
    use_frameworks!
    target 'AzureCommunicationCallingSample' do
        pod 'AzureCommunicationCalling', '~> 1.0.0'
    end
    
  2. شغّل pod install.

  3. افتح .xcworkspace باستخدام Xcode.

اطلب الوصول إلى الميكروفون

للوصول إلى ميكروفون الجهاز، تحتاج إلى تحديث قائمة خصائص معلومات التطبيق باستخدام NSMicrophoneUsageDescription. يمكنك تعيين القيمة المقترنة إلى سلسلة سيتم تضمينها في مربع الحوار الذي يستخدمه النظام لطلب الوصول من المستخدم.

انقر بزر الماوس الأيمن فوق إدخال Info.plist لشجرة المشروع، ثم حدد Open As>Source Code. أضف الأسطر التالية في قسم المستوى <dict> الأعلى، ثم احفظ الملف.

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

إعداد إطار عمل التطبيق

افتح ملف ContentView.swift الخاص بمشروعك. أضف إعلانا import إلى أعلى الملف لاستيراد المكتبة AzureCommunicationCalling . بالإضافة إلى ذلك، قم باستيراد AVFoundation. ستحتاج إليها لطلبات إذن الصوت في التعليمات البرمجية.

import AzureCommunicationCalling
import AVFoundation

تهيئة CallAgent

لإنشاء مثيل CallAgent من CallClient، يجب عليك استخدام callClient.createCallAgent أسلوب يقوم بإرجاع كائن CallAgent بشكل غير متزامن بعد تهيئته.

لإنشاء عميل مكالمة، قم بتمرير كائن CommunicationTokenCredential :

import AzureCommunication

let tokenString = "token_string"
var userCredential: CommunicationTokenCredential?
do {
    let options = CommunicationTokenRefreshOptions(initialToken: token, refreshProactively: true, tokenRefresher: self.fetchTokenSync)
    userCredential = try CommunicationTokenCredential(withOptions: options)
} catch {
    updates("Couldn't created Credential object", false)
    initializationDispatchGroup!.leave()
    return
}

// tokenProvider needs to be implemented by Contoso, which fetches a new token
public func fetchTokenSync(then onCompletion: TokenRefreshOnCompletion) {
    let newToken = self.tokenProvider!.fetchNewToken()
    onCompletion(newToken, nil)
}

CommunicationTokenCredential مرر الكائن الذي قمت بإنشائه إلى CallClient، وقم بتعيين اسم العرض:

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

تمكنك ميزة تصفية الصوت من تطبيق خيارات معالجة الصوت المسبق المختلفة على الصوت الصادر. هناك نوعان من عوامل تصفية الصوت: OutgoingAudioFilters و LiveOutgoingAudioFilters. يتم استخدامها OutgoingAudioFilters لتغيير الإعدادات قبل بدء المكالمة وتغيير LiveOutgoingAudioFilters الإعدادات أثناء إجراء مكالمة.

تحتاج أولا إلى استيراد Calling SDK:

import AzureCommunicationCalling

قبل بدء المكالمة

OutgoingAudioFilters يمكن تطبيقه عند بدء المكالمة.

ابدأ بإنشاء OutgoingAudioFilters وتمريره إلى OutgoingAudioOptions كما هو موضح في التعليمات البرمجية التالية:

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

أثناء المكالمة

يمكنك التقديم LiveOutgoingAudioFilters بعد بدء المكالمة. يمكنك استرداد هذا الكائن من كائن الاستدعاء أثناء الاستدعاء. لتغيير الإعداد في LiveOutgoingAudioFilters، قم بتعيين الأعضاء داخل الفئة إلى قيمة صالحة ويتم تطبيقها.

تتوفر مجموعة فرعية فقط من عوامل التصفية المتوفرة من OutgoingAudioFilters خلال مكالمة نشطة: وضع الموسيقى وإلغاء الصدى ووضع منع الضوضاء.

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

تعرف على كيفية تكوين عوامل تصفية الصوت باستخدام Calling Native SDKs.

توفر التأثيرات الصوتية ل Azure Communication Services عوامل تصفية يمكنها تحسين مكالمتك الصوتية. بالنسبة للأنظمة الأساسية الأصلية (Android وiOS وWindows) يمكنك تكوين عوامل التصفية التالية:

إلغاء صدى الصوت

فهو يزيل الصدى الصوتي الناتج عن رداء صوت المتصل مرة أخرى إلى الميكروفون بعد أن ينبعث من السماعة، ما يضمن اتصالا واضحا.

يمكنك تكوين عامل التصفية قبل وأثناء المكالمة. يمكنك فقط تبديل إلغاء صدى الصوت فقط إذا تم تمكين وضع الموسيقى. بشكل افتراضي، يتم تمكين عامل التصفية هذا.

قمع الضوضاء

تحسين جودة الصوت لتصفية الضوضاء الخلفية غير المرغوب فيها مثل الكتابة أو تكييف الهواء أو أصوات الشوارع. تضمن هذه التقنية أن يكون الصوت واضحا وواضحا، مما يسهل التواصل الأكثر فعالية.

يمكنك تكوين عامل التصفية قبل وأثناء المكالمة. الأوضاع المتوفرة حاليا هي Offو LowAutoو و.High بشكل افتراضي، يتم تعيين هذه الميزة إلى High الوضع.

التحكم التلقائي في الاكتساب (AGC)

يقوم تلقائيا بضبط مستوى صوت الميكروفون لضمان مستويات صوت متناسقة طوال المكالمة.

  • التحكم التلقائي في الكسب التمثيلي هو عامل تصفية متوفر فقط قبل إجراء مكالمة. بشكل افتراضي، يتم تمكين عامل التصفية هذا.
  • التحكم في الاكتساب التلقائي الرقمي هو عامل تصفية متوفر فقط قبل إجراء مكالمة. بشكل افتراضي، يتم تمكين عامل التصفية هذا.

وضع الموسيقى

وضع الموسيقى هو عامل تصفية متوفر قبل المكالمة وأثناءها. تعرف على المزيد حول وضع الموسيقى هنا. يعمل وضع الموسيقى فقط على الأنظمة الأساسية الأصلية التي تزيد عن 1n1 أو مكالمات جماعية ولا يعمل في مكالمات 1:1 بين المكالمات الأصلية والويب. بشكل افتراضي، يتم تعطيل وضع الموسيقى.

المتطلبات الأساسية

قم بإعداد النظام

إنشاء مشروع Visual Studio

بالنسبة لتطبيق UWP، في Visual Studio 2022، قم بإنشاء مشروع Blank App (Universal Windows) جديد. بعد إدخال اسم المشروع، لا تتردد في اختيار أي Windows SDK بعد 10.0.17763.0.

بالنسبة لتطبيق WinUI 3، قم بإنشاء مشروع جديد باستخدام قالب Blank App، Packaged (WinUI 3 in Desktop) لإعداد تطبيق WinUI 3 من صفحة واحدة. مطلوب SDK لتطبيق Windows الإصدار 1.3 أو أحدث.

تثبيت الحزمة والتبعيات باستخدام NuGet مدير الحِزَم

تتوفر واجهات برمجة تطبيقات SDK والمكتبات للاتصال بشكل عام عبر حزمة NuGet.

توضح الخطوات التالية كيفية العثور على حزمة Calling SDK NuGet وتنزيلها وتثبيتها:

  1. افتح NuGet مدير الحِزَم عن طريق تحديد أدوات>NuGet مدير الحِزَم> إدارة حزم NuGet للحل.
  2. حدد استعراض، ثم أدخل Azure.Communication.Calling.WindowsClient في مربع البحث.
  3. تأكد من تحديد خانة الاختيار تضمين الإصدار التجريبي.
  4. حدد الحزمة Azure.Communication.Calling.WindowsClient ، ثم حدد Azure.Communication.Calling.WindowsClient 1.4.0-beta.1 أو إصدار أحدث.
  5. حدد خانة الاختيار التي تتوافق مع مشروع Communication Services في علامة التبويب على الجانب الأيمن.
  6. حدد الزر تثبيت.

تمكنك ميزة تصفية الصوت من تطبيق معالجة مسبقة مختلفة للصوت على الصوت الصادر. هناك نوعان من عوامل تصفية الصوت: OutgoingAudioFilters و LiveOutgoingAudioFilters. يتم استخدامها OutgoingAudioFilters لتغيير الإعدادات قبل بدء المكالمة وتغيير LiveOutgoingAudioFilters الإعدادات أثناء إجراء مكالمة.

تحتاج أولا إلى استيراد Calling SDK:

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

قبل بدء المكالمة

OutgoingAudioFilters يمكن تطبيقه عند بدء المكالمة.

ابدأ بإنشاء OutgoingAudioFilters وتمريره إلى OutgoingAudioOptions كما هو موضح في التعليمات البرمجية التالية:

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

أثناء المكالمة

يمكنك تطبيق LiveOutgoingAudioFilters بعد بدء استدعاء يمكنك استرداد هذا الكائن من كائن الاستدعاء بمجرد بدء المكالمة. لتغيير الإعداد في LiveOutgoingAudioFilters، قم بتعيين الأعضاء داخل الفئة إلى قيمة صالحة ويتم تطبيقها.

تتوفر مجموعة فرعية فقط من عوامل التصفية المتوفرة من OutgoingAudioFilters خلال مكالمة نشطة: وضع الموسيقى وإلغاء الصدى ووضع منع الضوضاء.

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