Gesprektranscriptiestatus op de client weergeven
U moet toestemming verzamelen van alle deelnemers aan het gesprek voordat u ze kunt transcriberen. Met Microsoft Teams kunnen gebruikers transcriptie starten in de vergaderingen of gesprekken. U ontvangt een gebeurtenis wanneer transcriptie is gestart, kunt u de transcriptiestatus controleren als transcriptie is gestart voordat u deelneemt aan het gesprek of de vergadering.
Vereisten
- Een Azure-account met een actief abonnement. Gratis een account maken
- Een geïmplementeerde Communication Services-resource. Een Communication Services-resource maken.
- Een gebruikerstoegangstoken om de aanroepende client in te schakelen. Zie Toegangstokens maken en beheren voor meer informatie.
- Optioneel: Voltooi de quickstart om spraakgesprekken toe te voegen aan uw toepassing
Ondersteuning
De volgende tabellen definiëren ondersteuning voor gesprektranscriptie in Azure Communication Services.
Identiteiten en oproeptypen
In de volgende tabellen ziet u de ondersteuning van transcriptie voor specifiek gesprekstype en specifieke identiteit.
Identiteiten | Teams-vergadering | Ruimte | 1:1 oproep | Groepsgesprek | 1:1 Teams-interopgesprek | Gesprek tussen Teams groeperen |
---|---|---|---|---|---|---|
Communication Services-gebruiker | ✔️ | ✔️ | ✔️ | |||
Microsoft 365-gebruiker | ✔️ | ✔️ | ✔️ |
Operations
In de volgende tabellen ziet u de ondersteuning van afzonderlijke API's bij het aanroepen van SDK naar afzonderlijke identiteitstypen.
Operations | Communication Services-gebruiker | Microsoft 365-gebruiker |
---|---|---|
Gebeurtenis ophalen die transcriptie is gestart | ✔️ | ✔️ |
Transcriptiestatus ophalen | ✔️ | ✔️ |
Transcriptie starten of stoppen |
SDK's
In de volgende tabellen ziet u de ondersteuning van transcriptie in afzonderlijke Azure Communication Services-SDK's.
Platformen | Web | Webgebruikersinterface | iOS | iOS-gebruikersinterface | Android | Android-gebruikersinterface | Windows |
---|---|---|---|---|---|---|---|
Wordt ondersteund | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Installeer de SDK
Gebruik de npm install
opdracht om de Common and Calling SDK voor Azure Communication Services voor JavaScript te installeren:
npm install @azure/communication-common --save
npm install @azure/communication-calling --save
Vereiste objecten initialiseren
Een CallClient
exemplaar is vereist voor de meeste aanroepbewerkingen. Wanneer u een nieuw CallClient
exemplaar maakt, kunt u deze configureren met aangepaste opties, zoals een Logger
exemplaar.
Met het CallClient
exemplaar kunt u een CallAgent
exemplaar maken door het createCallAgent
aan te roepen. Deze methode retourneert asynchroon een CallAgent
exemplaarobject.
De createCallAgent
methode gebruikt CommunicationTokenCredential
als argument. Het accepteert een toegangstoken van een gebruiker.
U kunt de getDeviceManager
methode op het CallClient
exemplaar gebruiken om toegang te krijgen tot deviceManager
.
const { CallClient } = require('@azure/communication-calling');
const { AzureCommunicationTokenCredential} = require('@azure/communication-common');
const { AzureLogger, setLogLevel } = require("@azure/logger");
// Set the logger's log level
setLogLevel('verbose');
// Redirect log output to console, file, buffer, REST API, or whatever location you want
AzureLogger.log = (...args) => {
console.log(...args); // Redirect log output to console
};
const userToken = '<USER_TOKEN>';
callClient = new CallClient(options);
const tokenCredential = new AzureCommunicationTokenCredential(userToken);
const callAgent = await callClient.createCallAgent(tokenCredential, {displayName: 'optional Azure Communication Services user name'});
const deviceManager = await callClient.getDeviceManager()
Sdk-connectiviteit met Microsoft-infrastructuur het beste beheren
Het Call Agent
exemplaar helpt u bij het beheren van gesprekken (om aanroepen deel te nemen of te starten). Als u wilt werken met uw aanroepende SDK, moet u verbinding maken met de Microsoft-infrastructuur om meldingen van binnenkomende oproepen te ontvangen en andere gespreksgegevens te coördineren. Uw Call Agent
heeft twee mogelijke statussen:
Verbonden : een Call Agent
connectionStatue-waarde van Connected
het middel dat de client-SDK is verbonden en meldingen van de Microsoft-infrastructuur kan ontvangen.
Verbinding verbroken - Een Call Agent
connectionStatue-waarde van Disconnected
statussen is er een probleem dat verhindert dat de SDK verbinding maakt. Call Agent
moet opnieuw worden gemaakt.
invalidToken
: Als een token is verlopen of een ongeldig exemplaarCall Agent
wordt verbroken met deze fout.connectionIssue
: Als er een probleem is met de client die verbinding maakt met Microsoft infrascture, wordt deconnectionIssue
fout na veel nieuwe pogingenCall Agent
weergegeven.
U kunt controleren of uw lokale Call Agent
verbinding heeft met de Microsoft-infrastructuur door de huidige waarde van connectionState
de eigenschap te controleren. Tijdens een actieve oproep kunt u naar de connectionStateChanged
gebeurtenis luisteren om te bepalen of Call Agent
de status Verbonden naar Verbroken is gewijzigd.
const connectionState = callAgentInstance.connectionState;
console.log(connectionState); // it may return either of 'Connected' | 'Disconnected'
const connectionStateCallback = (args) => {
console.log(args); // it will return an object with oldState and newState, each of having a value of either of 'Connected' | 'Disconnected'
// it will also return reason, either of 'invalidToken' | 'connectionIssue'
}
callAgentInstance.on('connectionStateChanged', connectionStateCallback);
Waarschuwing
Als gevolg van wijzigingen in Microsoft Teams, javaScript aanroepen van SDK's met versie 1.21 en lager stopt teamstranscriptie en blokkeert Teams-gebruikers om transcriptie te starten. Als u teamstranscriptie wilt gebruiken in de gesprekken en vergaderingen, moet u uw aanroepende SDK upgraden naar ten minste versie 1.22.
Oproeptranscriptie
Transcription
is een uitgebreide functie van de klasse Call
. U moet eerst het API-object voor de transcriptiefunctie verkrijgen
const callTranscriptionFeature = call.feature(Features.Transcription);
U kunt de status van de transcriptie in de eigenschap isTranscriptionActive
controleren. Als de waarde is ingesteld op true
, is transcriptie actief.
const isTranscriptionActive = callTranscriptionFeature.isTranscriptionActive;
U kunt zich abonneren op gebeurtenissen die worden geactiveerd wanneer de status van transcriptie verandert:
const isTranscriptionActiveChangedHandler = () => {
console.log(callTranscriptionFeature.isTranscriptionActive);
};
callTranscriptionFeature.on('isTranscriptionActiveChanged', isTranscriptionActiveChangedHandler);
U kunt zich afmelden voor de gebeurtenis met de volgende code:
callTranscriptionFeature.off('isTranscriptionActiveChanged', isTranscriptionActiveChangedHandler);
Installeer de SDK
Zoek het bestand op projectniveau build.gradle
en voeg deze toe aan mavenCentral()
de lijst met opslagplaatsen onder buildscript
en allprojects
:
buildscript {
repositories {
...
mavenCentral()
...
}
}
allprojects {
repositories {
...
mavenCentral()
...
}
}
Voeg vervolgens in het bestand op moduleniveau build.gradle
de volgende regels toe aan de dependencies
sectie:
dependencies {
...
implementation 'com.azure.android:azure-communication-calling:1.0.0'
...
}
De vereiste objecten initialiseren
Als u een CallAgent
exemplaar wilt maken, moet u de createCallAgent
methode voor een CallClient
exemplaar aanroepen. Hiermee wordt asynchroon een CallAgent
exemplaarobject geretourneerd.
De createCallAgent
methode wordt CommunicationUserCredential
gebruikt als een argument, dat een toegangstoken inkapselt.
Als u toegang DeviceManager
wilt krijgen, moet u eerst een callAgent
exemplaar maken. Vervolgens kunt u de CallClient.getDeviceManager
methode gebruiken om op te halen DeviceManager
.
String userToken = '<user token>';
CallClient callClient = new CallClient();
CommunicationTokenCredential tokenCredential = new CommunicationTokenCredential(userToken);
android.content.Context appContext = this.getApplicationContext(); // From within an activity, for instance
CallAgent callAgent = callClient.createCallAgent(appContext, tokenCredential).get();
DeviceManager deviceManager = callClient.getDeviceManager(appContext).get();
Als u een weergavenaam voor de aanroeper wilt instellen, gebruikt u deze alternatieve methode:
String userToken = '<user token>';
CallClient callClient = new CallClient();
CommunicationTokenCredential tokenCredential = new CommunicationTokenCredential(userToken);
android.content.Context appContext = this.getApplicationContext(); // From within an activity, for instance
CallAgentOptions callAgentOptions = new CallAgentOptions();
callAgentOptions.setDisplayName("Alice Bob");
DeviceManager deviceManager = callClient.getDeviceManager(appContext).get();
CallAgent callAgent = callClient.createCallAgent(appContext, tokenCredential, callAgentOptions).get();
Waarschuwing
Tot versie 1.1.0 en bètaversie 1.1.0-beta.1 van de Azure Communication Services Calling Android SDK heeft het isTranscriptionActive
en addOnIsTranscriptionActiveChangedListener
maken deel uit van het Call
object. Voor nieuwe bètaversies zijn deze API's verplaatst als een uitgebreide functie, Call
zoals hieronder wordt beschreven.
Gesprektranscriptie is een uitgebreide functie van het kernobject Call
. U moet eerst het object van de transcriptiefunctie verkrijgen:
TranscriptionCallFeature callTranscriptionFeature = call.feature(Features.TRANSCRIPTION);
Als u vervolgens wilt controleren of de aanroep wordt getranscribeerd, inspecteert u de isTranscriptionActive
eigenschap van callTranscriptionFeature
. Het retourneert boolean
.
boolean isTranscriptionActive = callTranscriptionFeature.isTranscriptionActive();
U kunt zich ook abonneren op wijzigingen in transcriptie:
private void handleCallOnIsTranscriptionChanged(PropertyChangedEvent args) {
boolean isTranscriptionActive = callTranscriptionFeature.isTranscriptionActive();
}
callTranscriptionFeature.addOnIsTranscriptionActiveChangedListener(handleCallOnIsTranscriptionChanged);
Uw systeem instellen
Volg deze stappen om uw systeem in te stellen.
Het Xcode-project maken
Maak in Xcode een nieuw iOS-project en selecteer de sjabloon Single View-app (Toepassing met één weergave). In dit artikel wordt het SwiftUI-framework gebruikt, dus u moet taal instellen op Swift en interface instellen op SwiftUI.
U gaat geen tests maken in dit artikel. Schakel het selectievakje Inclusief tests uit.
Het pakket en afhankelijkheden installeren met CocoaPods
Maak een Podfile voor uw toepassing, zoals in dit voorbeeld:
platform :ios, '13.0' use_frameworks! target 'AzureCommunicationCallingSample' do pod 'AzureCommunicationCalling', '~> 1.0.0' end
Voer
pod install
uit.Open
.xcworkspace
met behulp van Xcode.
Toegang tot de microfoon aanvragen
Voor toegang tot de microfoon van het apparaat moet u de lijst met gegevenseigenschappen van uw app bijwerken met behulp van NSMicrophoneUsageDescription
. Stel de gekoppelde waarde in op een tekenreeks die is opgenomen in het dialoogvenster dat het systeem gebruikt om toegang van de gebruiker aan te vragen.
Klik met de rechtermuisknop op de vermelding Info.plist van de projectstructuur en selecteer Open As>Source Code. Voeg de volgende regels toe in de sectie op het hoogste niveau <dict>
en sla het bestand op.
<key>NSMicrophoneUsageDescription</key>
<string>Need microphone access for VOIP calling.</string>
Stel het app-framework in
Open het projectbestand ContentView.swift
. Voeg een import
declaratie toe aan het begin van het bestand om de AzureCommunicationCalling
bibliotheek te importeren. Daarnaast importeert u AVFoundation
. U hebt deze nodig voor audiomachtigingsaanvragen in de code.
import AzureCommunicationCalling
import AVFoundation
CallAgent initialiseren
Als u een CallAgent
exemplaar CallClient
wilt maken, moet u een callClient.createCallAgent
methode gebruiken die asynchroon een CallAgent
object retourneert nadat het is geïnitialiseerd.
Als u een aanroepclient wilt maken, geeft u een CommunicationTokenCredential
object door:
import AzureCommunication
let tokenString = "token_string"
var userCredential: CommunicationTokenCredential?
do {
let options = CommunicationTokenRefreshOptions(initialToken: token, refreshProactively: true, tokenRefresher: self.fetchTokenSync)
userCredential = try CommunicationTokenCredential(withOptions: options)
} catch {
updates("Couldn't created Credential object", false)
initializationDispatchGroup!.leave()
return
}
// tokenProvider needs to be implemented by Contoso, which fetches a new token
public func fetchTokenSync(then onCompletion: TokenRefreshOnCompletion) {
let newToken = self.tokenProvider!.fetchNewToken()
onCompletion(newToken, nil)
}
Geef het CommunicationTokenCredential
object door waarnaar u hebt gemaakt CallClient
en stel de weergavenaam in:
self.callClient = CallClient()
let callAgentOptions = CallAgentOptions()
options.displayName = " iOS Azure Communication Services User"
self.callClient!.createCallAgent(userCredential: userCredential!,
options: callAgentOptions) { (callAgent, error) in
if error == nil {
print("Create agent succeeded")
self.callAgent = callAgent
} else {
print("Create agent failed")
}
})
Waarschuwing
Tot versie 1.1.0 en bètaversie 1.1.0-beta.1 van de Azure Communication Services-aanroepende iOS SDK heeft het isTranscriptionActive
als onderdeel van het Call
object en didChangeTranscriptionState
maakt deel uit van CallDelegate
gemachtigde. Voor nieuwe bètaversies zijn deze API's verplaatst als een uitgebreide functie, Call
zoals hieronder wordt beschreven.
Gesprektranscriptie is een uitgebreide functie van het kernobject Call
. U moet eerst het object van de transcriptiefunctie verkrijgen:
let callTranscriptionFeature = call.feature(Features.transcription)
Als u vervolgens wilt controleren of de aanroep is getranscribeerd, inspecteert u de isTranscriptionActive
eigenschap van callTranscriptionFeature
. Het retourneert Bool
.
let isTranscriptionActive = callTranscriptionFeature.isTranscriptionActive;
U kunt zich ook abonneren op transcriptiewijzigingen door gemachtigde in uw klas te implementeren TranscriptionCallFeatureDelegate
met de gebeurtenis didChangeTranscriptionState
:
callTranscriptionFeature.delegate = self
// didChangeTranscriptionState is a member of TranscriptionCallFeatureDelegate
public func transcriptionCallFeature(_ transcriptionCallFeature: TranscriptionCallFeature, didChangeTranscriptionState args: PropertyChangedEventArgs) {
let isTranscriptionActive = callTranscriptionFeature.isTranscriptionActive
}
Uw systeem instellen
Volg deze stappen om uw systeem in te stellen.
Het Visual Studio-project maken
Voor een Universeel Windows-platform-app maakt u in Visual Studio 2022 een nieuw leeg app-project (Universal Windows). Nadat u de projectnaam hebt ingevoerd, kunt u een Windows SDK kiezen die hoger is dan 10.0.17763.0.
Maak voor een WinUI 3-app een nieuw project met de sjabloon Blank App, Packaged (WinUI 3 in Desktop) om een WinUI 3-app met één pagina in te stellen. Windows-app SDK versie 1.3 of hoger is vereist.
Installeer het pakket en afhankelijkheden met behulp van NuGet Pakketbeheer
De Aanroepende SDK-API's en -bibliotheken zijn openbaar beschikbaar via een NuGet-pakket.
Het NuGet-pakket voor aanroepende SDK zoeken, downloaden en installeren:
- Open NuGet Pakketbeheer door Tools>NuGet Pakketbeheer> Manage NuGet Packages for Solution te selecteren.
- Selecteer Bladeren en voer vervolgens Azure.Communication.Calling.WindowsClient in het zoekvak in.
- Zorg ervoor dat het selectievakje Voorlopige versie opnemen is ingeschakeld.
- Selecteer het pakket Azure.Communication.Calling.WindowsClient en selecteer vervolgens Azure.Communication.Calling.WindowsClient 1.4.0-beta.1 of een nieuwere versie.
- Schakel het selectievakje in dat overeenkomt met het Azure Communication Services-project in het rechterdeelvenster.
- Selecteer Installeren.
Gesprektranscriptie is een uitgebreide functie van het kernobject Call
. U moet eerst het object van de transcriptiefunctie verkrijgen:
TranscriptionCallFeature transcriptionFeature = call.Features.Transcription;
Als u vervolgens wilt controleren of de aanroep wordt getranscribeerd, inspecteert u de IsTranscriptionActive
eigenschap van transcriptionFeature
. Het retourneert boolean
.
boolean isTranscriptionActive = transcriptionFeature.isTranscriptionActive;
U kunt zich ook abonneren op wijzigingen in transcriptie:
private async void Call__OnIsTranscriptionActiveChanged(object sender, PropertyChangedEventArgs args)
boolean isTranscriptionActive = transcriptionFeature.IsTranscriptionActive();
}
transcriptionFeature.IsTranscriptionActiveChanged += Call__OnIsTranscriptionActiveChanged;