Gerenciar filtros de áudio
Importante
A funcionalidade descrita neste artigo está atualmente em visualização pública. Esta versão de pré-visualização é fornecida sem um contrato de nível de serviço e não a recomendamos para cargas de trabalho de produção. Algumas funcionalidades poderão não ser suportadas ou poderão ter capacidades limitadas. Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.
Saiba como gerenciar recursos de processamento de áudio com os SDKs dos Serviços de Comunicação do Azure. Você aprende a aplicar diferentes recursos de áudio antes e durante as chamadas usando filtros de áudio.
Atualmente, existem cinco filtros diferentes disponíveis para controle.
Controle de ganho automático analógico
O controle de ganho automático analógico é um filtro disponível antes de uma chamada. Por padrão, esse filtro está habilitado.
Controlo de ganho automático digital
O controle de ganho automático digital é um filtro disponível antes de uma chamada. Por padrão, esse filtro está habilitado.
Modo Música
O modo de música é um filtro disponível antes e durante uma chamada. Saiba mais sobre o modo de música aqui. Observe que o modo de música só funciona em chamadas 1:1 em plataformas nativas e chamadas em grupo. Atualmente, o modo de música não funciona em chamadas 1:1 entre nativo e web. Por padrão, o modo de música está desativado.
Cancelamento de eco
O cancelamento de eco é um filtro disponível antes e durante uma chamada. Só pode alternar o cancelamento de eco se o modo de música estiver ativado. Por padrão, esse filtro está habilitado.
Supressão de ruído
A supressão de ruído é um filtro disponível antes e durante uma chamada. Os modos atualmente disponíveis são Off
, Auto
, Low
, e High
. Por padrão, esse recurso é definido como High
modo.
Pré-requisitos
- Uma conta do Azure com uma subscrição ativa. Crie uma conta gratuitamente
- Um recurso de Serviços de Comunicação implantado. Criar um recurso de Serviços de Comunicação
- Um token de acesso de usuário para habilitar o cliente chamador. Para obter mais informações, consulte Criar e gerenciar tokens de acesso.
- Opcional: conclua o início rápido para adicionar chamadas de voz ao seu aplicativo
Instale o SDK
Localize seu arquivo build.gradle no nível do projeto e adicione mavenCentral()
à lista de repositórios em buildscript
e allprojects
:
buildscript {
repositories {
...
mavenCentral()
...
}
}
allprojects {
repositories {
...
mavenCentral()
...
}
}
Em seguida, no arquivo build.gradle no nível do módulo, adicione as seguintes linhas à dependencies
seção :
dependencies {
...
implementation 'com.azure.android:azure-communication-calling:1.0.0'
...
}
Inicializar os objetos necessários
Para criar uma CallAgent
instância, você precisa chamar o createCallAgent
método em uma CallClient
instância. Essa chamada retorna de forma assíncrona um objeto de CallAgent
instância.
O createCallAgent
método toma CommunicationUserCredential
como um argumento, que encapsula um token de acesso.
Para acessar DeviceManager
o , você deve criar uma callAgent
instância primeiro. Então você pode usar o CallClient.getDeviceManager
método para obter 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();
Para definir um nome de exibição para o chamador, use este método alternativo:
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();
O recurso de filtro de áudio permite que você aplique pré-processamento de áudio diferente ao áudio de saída. Existem dois tipos de filtros de áudio: OutgoingAudioFilters
e LiveOutgoingAudioFilters
. Use OutgoingAudioFilters
para alterar as configurações antes do início da chamada e LiveOutgoingAudioFilters
para alterar as configurações enquanto uma chamada está em andamento.
Primeiro, você precisa importar o SDK de chamada e as classes associadas:
import com.azure.android.communication.calling.OutgoingAudioOptions;
import com.azure.android.communication.calling.OutgoingAudioFilters;
import com.azure.android.communication.calling.LiveOutgoingAudioFilters;
Antes do início da chamada
OutgoingAudioFilters
pode ser aplicado quando uma chamada é iniciada.
Comece criando um OutgoingAudioFilters
e passando-o para OutgoingAudioOptions conforme mostrado no código a seguir:
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);
Durante a chamada
Você pode aplicar LiveOutgoingAudioFilters
depois que uma chamada começa Você pode recuperar esse objeto do objeto de chamada assim que a chamada começar. Para alterar a configuração no LiveOutgoingAudioFilters
, defina os membros dentro da classe para um valor válido e eles serão aplicados.
Apenas um subconjunto dos filtros disponíveis estão disponíveis durante uma chamada ativa: modo de música, cancelamento de eco e modo de supressão de OutgoingAudioFilters
ruído.
LiveOutgoingAudioFilters filters = call.getLiveOutgoingAudioFilters();
filters.setMusicModeEnabled(false);
filters.setAcousticEchoCancellationEnabled(false);
filters.setNoiseSuppressionMode(NoiseSuppressionMode.HIGH);
Configure o seu sistema
Criar o projeto Xcode
No Xcode, crie um novo projeto iOS e selecione o modelo Single View App . Este início rápido usa a estrutura SwiftUI, portanto, você deve definir Language como Swift e Interfacecomo SwiftUI.
Você não vai criar testes durante este início rápido. Sinta-se à vontade para desmarcar a caixa de seleção Incluir testes .
Instale o pacote e as dependências usando o CocoaPods
Crie um Podfile para seu aplicativo, como este exemplo:
platform :ios, '13.0' use_frameworks! target 'AzureCommunicationCallingSample' do pod 'AzureCommunicationCalling', '~> 1.0.0' end
Execute o
pod install
.Abra
.xcworkspace
usando o Xcode.
Solicitar acesso ao microfone
Para acessar o microfone do dispositivo, você precisa atualizar a lista de propriedades de informações do seu aplicativo usando NSMicrophoneUsageDescription
. Você define o valor associado para uma cadeia de caracteres que será incluída na caixa de diálogo que o sistema usa para solicitar acesso do usuário.
Clique com o botão direito do mouse na entrada Info.plist da árvore do projeto e selecione Abrir como>código-fonte. Adicione as seguintes linhas na secção de nível <dict>
superior e, em seguida, guarde o ficheiro.
<key>NSMicrophoneUsageDescription</key>
<string>Need microphone access for VOIP calling.</string>
Configurar a estrutura do aplicativo
Abra o arquivo ContentView.swift do seu projeto. Adicione uma import
declaração à parte superior do arquivo para importar a AzureCommunicationCalling
biblioteca. Além disso, importe AVFoundation
. Você precisará dele para solicitações de permissão de áudio no código.
import AzureCommunicationCalling
import AVFoundation
Inicializar o CallAgent
Para criar uma CallAgent
instância a partir do CallClient
, você precisa usar um callClient.createCallAgent
método que retorna de forma assíncrona um CallAgent
objeto depois que ele é inicializado.
Para criar um cliente de chamada, passe um CommunicationTokenCredential
objeto:
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)
}
Passe o CommunicationTokenCredential
objeto que você criou para CallClient
e defina o nome para exibição:
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")
}
})
O recurso de filtro de áudio permite que você aplique pré-processamento de áudio diferente ao áudio de saída. Existem dois tipos de filtros de áudio: OutgoingAudioFilters
e LiveOutgoingAudioFilters
. Use OutgoingAudioFilters
para alterar as configurações antes do início da chamada e LiveOutgoingAudioFilters
para alterar as configurações enquanto uma chamada está em andamento.
Primeiro, você precisa importar o SDK de chamada:
import AzureCommunicationCalling
Antes do início da chamada
OutgoingAudioFilters
pode ser aplicado quando uma chamada é iniciada.
Comece criando um OutgoingAudioFilters
e passando-o para OutgoingAudioOptions conforme mostrado no código a seguir:
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
Durante a chamada
Você pode aplicar LiveOutgoingAudioFilters
depois que uma chamada começa Você pode recuperar esse objeto do objeto de chamada assim que a chamada começar. Para alterar a configuração no LiveOutgoingAudioFilters
, defina os membros dentro da classe para um valor válido e eles serão aplicados.
Apenas um subconjunto dos filtros disponíveis estão disponíveis durante uma chamada ativa: modo de música, cancelamento de eco e modo de supressão de OutgoingAudioFilters
ruído.
LiveOutgoingAudioFilters filters = call.liveOutgoingAudioFilters
filters.musicModeEnabled = true
filters.acousticEchoCancellationEnabled = true
filters.NoiseSuppressionMode = NoiseSuppressionMode.high
Configure o seu sistema
Criar o projeto do Visual Studio
Para um aplicativo UWP, no Visual Studio 2022, crie um novo projeto Aplicativo em Branco (Universal Windows ). Depois de inserir o nome do projeto, sinta-se à vontade para escolher qualquer SDK do Windows posterior a 10.0.17763.0.
Para um aplicativo WinUI 3, crie um novo projeto com o modelo Aplicativo em branco, empacotado (WinUI 3 na área de trabalho) para configurar um aplicativo WinUI 3 de página única. É necessário o SDK de Aplicativos Windows versão 1.3 ou posterior.
Instalar o pacote e as dependências usando o Gerenciador de Pacotes NuGet
As APIs e bibliotecas do SDK de chamada estão disponíveis publicamente por meio de um pacote NuGet.
As etapas a seguir exemplificam como localizar, baixar e instalar o pacote NuGet do SDK de chamada:
- Abra o Gerenciador de Pacotes NuGet selecionando Ferramentas>Gerenciador>de Pacotes NuGet Gerenciar Pacotes NuGet para Solução.
- Selecione Procurar e, em seguida, introduza
Azure.Communication.Calling.WindowsClient
na caixa de pesquisa. - Verifique se a caixa de seleção Incluir pré-lançamento está marcada.
- Selecione o
Azure.Communication.Calling.WindowsClient
pacote e, em seguida, selecioneAzure.Communication.Calling.WindowsClient
1.4.0-beta.1 ou uma versão mais recente. - Marque a caixa de seleção que corresponde ao projeto dos Serviços de Comunicação na guia do lado direito.
- Selecione o botão Instalar .
O recurso de filtro de áudio permite que você aplique pré-processamento de áudio diferente ao áudio de saída. Existem dois tipos de filtros de áudio: OutgoingAudioFilters
e LiveOutgoingAudioFilters
. Use OutgoingAudioFilters
para alterar as configurações antes do início da chamada e LiveOutgoingAudioFilters
para alterar as configurações enquanto uma chamada está em andamento.
Primeiro, você precisa importar o SDK de chamada:
using Azure.Communication;
using Azure.Communication.Calling.WindowsClient;
Antes do início da chamada
OutgoingAudioFilters
pode ser aplicado quando uma chamada é iniciada.
Comece criando um OutgoingAudioFilters
e passando-o para OutgoingAudioOptions conforme mostrado no código a seguir:
var outgoingAudioOptions = new OutgoingAudioOptions();
var filters = new OutgoingAudioFilters()
{
AnalogAutomaticGainControlEnabled = true,
DigitalAutomaticGainControlEnabled = true,
MusicModeEnabled = true,
AcousticEchoCancellationEnabled = true,
NoiseSuppressionMode = NoiseSuppressionMode.High
};
outgoingAudioOptions.Filters = filters;
Durante a chamada
Você pode aplicar LiveOutgoingAudioFilters
depois que uma chamada começa Você pode recuperar esse objeto do objeto de chamada assim que a chamada começar. Para alterar a configuração no LiveOutgoingAudioFilters
, defina os membros dentro da classe para um valor válido e eles serão aplicados.
Apenas um subconjunto dos filtros disponíveis estão disponíveis durante uma chamada ativa: modo de música, cancelamento de eco e modo de supressão de OutgoingAudioFilters
ruído.
LiveOutgoingAudioFilters filter = call.LiveOutgoingAudioFilters;
filter.MusicModeEnabled = true;
filter.AcousticEchoCancellationEnabled = true;
filter.NoiseSuppressionMode = NoiseSuppressionMode.Auto;