Activer les sous-titres pour l’interopérabilité de Teams
Découvrez comment autoriser vos utilisateurs à activer les sous-titres pendant un scénario d’interopérabilité Teams où vos utilisateurs peuvent être en réunion entre un utilisateur Azure Communication Services et un utilisateur client Teams, ou où vos utilisateurs utilisent le Kit de développement logiciel (SDK) d’appel d’Azure Communication Services avec leur identité Microsoft 365.
Prérequis
- Compte Azure avec un abonnement actif. Pour plus d’informations, consultez Créez un compte gratuitement.
- Ressource Azure Communication Services. Consultez Créer une ressource Azure Communication Services. Enregistrez la chaîne de connexion de cette ressource.
- Application avec des appels vocaux et vidéo, reportez-vous à nos guides de démarrage rapide des appels Voix et Vidéo.
- Jetons d’accès pour les utilisateurs Microsoft 365.
- Jetons d’accès pour les utilisateurs d’identités externes.
- Pour les sous-titres traduits, vous devez disposer d’une licence Teams Premium.
Remarque
Veuillez noter que vous devez avoir une application d’appel vocal utilisant des Kits de développement logiciel (SDK) d’appel Azure Communication Services pour accéder à la fonctionnalité des sous-titres décrite dans ce guide.
Modèles
Nom | Description |
---|---|
CaptionsCallFeature | API pour la fonction d'appel de sous-titres |
TeamsCaptions | API pour les sous-titres Teams |
StartCaptionOptions | Options de sous-titre comme la langue parlée |
TeamsCaptionsReceivedEventArgs | Objet de données reçu pour chaque événement reçu de sous-titres Teams |
Obtenir la fonctionnalité des sous-titres
Utilisateurs d’identités externes et utilisateurs Microsoft 365
Si vous créez une application qui permet aux utilisateurs d’Azure Communication Services de participer à une réunion Teams
CaptionsCallFeature captionsCallFeature = call.Features.Captions;
CallCaptions callCaptions = await captionsCallFeature.GetCaptionsAsync();
if (callCaptions.CaptionsKind == CaptionsKind.TeamsCaptions)
{
TeamsCaptions teamsCaptions = callCaptions as TeamsCaptions;
}
S’abonner aux écouteurs
Ajouter un écouteur pour recevoir d’état activée ou désactivé de sous-titres
teamsCaptions.CaptionsEnabledChanged += OnIsCaptionsEnabledChanged;
private void OnIsCaptionsEnabledChanged(object sender, PropertyChangedEventArgs args)
{
if (teamsCaptions.IsEnabled)
{
}
}
Ajouter un écouteur pour des données de sous-titres reçues
teamsCaptions.CaptionsReceived += OnCaptionsReceived;
private void OnCaptionsReceived(object sender, TeamsCaptionsReceivedEventArgs eventArgs)
{
// Information about the speaker.
// eventArgs.Speaker
// The original text with no transcribed.
// eventArgs.SpokenText
// language identifier for the captions text.
// eventArgs.CaptionLanguage
// language identifier for the speaker.
// eventArgs.SpokenLanguage
// The transcribed text.
// eventArgs.CaptionText
// Timestamp denoting the time when the corresponding speech was made.
// eventArgs.Timestamp
// CaptionsResultKind is Partial if text contains partially spoken sentence.
// It is set to Final once the sentence has been completely transcribed.
// eventArgs.ResultKind
}
Ajouter un écouteur pour recevoir l’état modifié actif de la langue parlée
teamsCaptions.ActiveSpokenLanguageChanged += OnIsActiveSpokenLanguageChanged;
private void OnIsActiveSpokenLanguageChanged(object sender, PropertyChangedEventArgs args)
{
// teamsCaptions.ActiveSpokenLanguage
}
Ajouter un écouteur pour recevoir l’état modifié actif de la langue de sous-titres active
teamsCaptions.ActiveCaptionLanguageChanged += OnIsActiveCaptionLanguageChanged;
private void OnIsActiveCaptionLanguageChanged(object sender, PropertyChangedEventArgs args)
{
// teamsCaptions.ActiveCaptionLanguage
}
Démarrer les sous-titres
Une fois tous vos écouteurs configurés, vous pouvez désormais ajouter vos sous-titres.
private async void StartCaptions()
{
var options = new StartCaptionsOptions
{
SpokenLanguage = "en-us"
};
try
{
await teamsCaptions.StartCaptionsAsync(options);
}
catch (Exception ex)
{
}
}
Arrêter des sous-titres
private async void StopCaptions()
{
try
{
await teamsCaptions.StopCaptionsAsync();
}
catch (Exception ex)
{
}
}
Supprimer la légende reçue par l'auditeur
teamsCaptions.CaptionsReceived -= OnCaptionsReceived;
Prise en charge de la langue parlée
Obtenir une liste des langues parlées prises en charge
Obtenez une liste des langues parlées prises en charge que vos utilisateurs peuvent sélectionner quand ils activent les sous-titres.
// bcp 47 formatted language code
IReadOnlyList<string> sLanguages = teamsCaptions.SupportedSpokenLanguages;```
### Set spoken language
When the user selects the spoken language, your app can set the spoken language that it expects captions to be generated from.
``` cs
public async void SetSpokenLanguage()
{
try
{
await teamsCaptions.SetSpokenLanguageAsync("en-us");
}
catch (Exception ex)
{
}
}
Prise en charge des langues de sous-titres
Obtenir la langue de sous-titres prise en charge
Si votre organisation dispose d’une licence Teams Premium active, vos utilisateurs Azure Communication Services peuvent activer les sous-titres traduits tant que l’organisateur de la réunion dispose d’une licence Teams Premium. Comme pour les utilisateurs disposant d’identités Microsoft 365, cette vérification est effectuée par rapport à leur propre compte d’utilisateur si l’organisateur de la réunion n’a pas de licence Teams Premium.
// ISO 639-1 formatted language code
IReadOnlyList<string> cLanguages = teamsCaptions.SupportedCaptionLanguages;
Définir la langue des sous-titres
public async void SetCaptionLanguage()
{
try
{
await teamsCaptions.SetCaptionLanguageAsync("en");
}
catch (Exception ex)
{
}
}
Prérequis
- Compte Azure avec un abonnement actif. Pour plus d’informations, consultez Créez un compte gratuitement.
- Ressource Azure Communication Services. Consultez Créer une ressource Azure Communication Services. Enregistrez la chaîne de connexion de cette ressource.
- Application avec des appels vocaux et vidéo, reportez-vous à nos guides de démarrage rapide des appels Voix et Vidéo.
- Jetons d’accès pour les utilisateurs Microsoft 365.
- Jetons d’accès pour les utilisateurs d’identités externes.
- Pour les sous-titres traduits, vous devez disposer d’une licence Teams Premium.
Remarque
Veuillez noter que vous devez avoir une application d’appel vocal utilisant des Kits de développement logiciel (SDK) d’appel Azure Communication Services pour accéder à la fonctionnalité des sous-titres décrite dans ce guide.
Modèles
Nom | Description |
---|---|
CaptionsCallFeature | API pour les sous-titres |
CaptionsCommon | Classe de base pour les sous-titres |
StartCaptionOptions | Options de sous-titre comme la langue parlée |
TeamsCaptionHandler | Définition de rappel pour gérer un événement CaptionsReceivedEventType |
TeamsCaptionsInfo | Structure de données reçue pour chaque événement CaptionsReceivedEventType |
Obtenir la fonctionnalité des sous-titres
Utilisateurs d’identités externes
Si vous créez une application qui permet aux utilisateurs d’Azure Communication Services de participer à une réunion Teams.
let captionsCallFeature: SDK.CaptionsCallFeature = call.feature(SDK.Features.Captions);
Utilisateurs Microsoft 365
let captionsCallFeature: SDK.CaptionsCallFeature = teamsCall.feature(SDK.Features.Captions);
Obtenir l’objet de sous-titres Teams
Vous devez obtenir et effectuer un cast de l’objet des sous-titres Teams pour utiliser des fonctionnalités spécifiques des sous-titres Teams.
let teamsCaptions: SDK.TeamsCaptions;
if (captionsCallFeature.captions.kind === 'TeamsCaptions') {
teamsCaptions = captionsCallFeature.captions as SDK.TeamsCaptions;
}
S’abonner aux écouteurs
Ajouter un écouteur pour recevoir d’état actif/inactif de sous-titres
const captionsActiveChangedHandler = () => {
if (teamsCaptions.isCaptionsFeatureActive) {
/* USER CODE HERE - E.G. RENDER TO DOM */
}
}
teamsCaptions.on('CaptionsActiveChanged', captionsActiveChangedHandler);
Ajouter un écouteur pour des données de sous-titres reçues
Gérez l’objet de données TeamsCaptionsInfo renvoyé.
Remarque : l’objet contient une propriété resultType qui indique si les données constituent un sous-titre partiel ou une version finalisée du sous-titre. ResultType partial
indique un sous-titre en direct non modifié, tandis que final
indique une version interprétée finalisée de la phrase (par exemple, inclut la ponctuation et l’utilisation de majuscules).
let currentCaptionLanguage : string;
const captionsReceivedHandler : TeamsCaptionsHandler = (data: TeamsCaptionsInfo) => {
/** USER CODE HERE - E.G. RENDER TO DOM
* data.captionLanguage
* data.captionText
* data.resultType
* data.speaker
* data.spokenText
* data.timeStamp
*/
// Example code:
// Create a dom element, i.e. div, with id "captionArea" before proceeding with the sample code
if (!this._currentCaptionLanguage || this._currentCaptionLanguage === data.captionLanguage) {
let mri: string;
switch (data.speaker.identifier.kind) {
case 'communicationUser': { mri = data.speaker.identifier.communicationUserId; break; }
case 'microsoftTeamsUser': { mri = data.speaker.identifier.microsoftTeamsUserId; break; }
case 'phoneNumber': { mri = data.speaker.identifier.phoneNumber; break; }
}
const outgoingCaption = `prefix${mri.replace(/:/g, '').replace(/-/g, '')}`;
let captionArea = document.getElementById("captionArea");
const captionText = `${data.timestamp.toUTCString()}
${data.speaker.displayName}: ${data.captionText ?? data.spokenText}`;
let foundCaptionContainer = captionArea.querySelector(`.${outgoingCaption}[isNotFinal='true']`);
if (!foundCaptionContainer) {
let captionContainer = document.createElement('div');
captionContainer.setAttribute('isNotFinal', 'true');
captionContainer.style['borderBottom'] = '1px solid';
captionContainer.style['whiteSpace'] = 'pre-line';
captionContainer.textContent = captionText;
captionContainer.classList.add(newClassName);
captionArea.appendChild(captionContainer);
} else {
foundCaptionContainer.textContent = captionText;
if (captionData.resultType === 'Final') {
foundCaptionContainer.setAttribute('isNotFinal', 'false');
}
}
}
};
teamsCaptions.on('CaptionsReceived', captionsReceivedHandler);
Ajouter un écouteur pour recevoir l’état modifié de la langue parlée
const spokenLanguageChangedHandler = () => {
if (teamsCaptions.activeSpokenLanguage !== currentSpokenLanguage) {
/* USER CODE HERE - E.G. RENDER TO DOM */
}
}
teamsCaptions.on('SpokenLanguageChanged', spokenLanguageChangedHandler)
Ajouter un écouteur pour recevoir l’état de langue des sous-titres modifié
const captionLanguageChangedHandler = () => {
if (teamsCaptions.activeCaptionLanguage !== currentCaptionLanguage) {
/* USER CODE HERE - E.G. RENDER TO DOM */
}
}
teamsCaptions.on('CaptionLanguageChanged', captionLanguageChangedHandler)
Démarrer les sous-titres
Une fois tous vos écouteurs configurés, vous pouvez désormais ajouter vos sous-titres.
try {
await teamsCaptions.startCaptions({ spokenLanguage: 'en-us' });
} catch (e) {
/* USER ERROR HANDLING CODE HERE */
}
Arrêter des sous-titres
try {
teamsCaptions.stopCaptions();
} catch (e) {
/* USER ERROR HANDLING CODE HERE */
}
Se désabonner des écouteurs
teamsCaptions.off('CaptionsActiveChanged', captionsActiveChangedHandler);
teamsCaptions.off('CaptionsReceived', captionsReceivedHandler);
Prise en charge de la langue parlée
Obtenir une liste des langues parlées prises en charge
Obtenez une liste des langues parlées prises en charge que vos utilisateurs peuvent sélectionner quand ils activent les sous-titres. La propriété renvoie un tableau de langues au format BCP 47.
const spokenLanguages = teamsCaptions.supportedSpokenLanguages;
Définir une langue parlée
Transmettez une valeur à partir du tableau de langues parlées prises en charge pour vérifier que la langue demandée est prise en charge. Par défaut, si Contoso ne fournit aucune langue ou fournit une langue non prise en charge, la valeur par défaut de la langue parlée est « en-us ».
// bcp 47 formatted language code
const language = 'en-us';
// Altneratively, pass a value from the supported spoken languages array
const language = spokenLanguages[0];
try {
teamsCaptions.setSpokenLanguage(language);
} catch (e) {
/* USER ERROR HANDLING CODE HERE */
}
Prise en charge des langues de sous-titres
Obtenir la liste des langues de sous-titres prises en charge
Si votre organisation dispose d’une licence Teams Premium active, vous pouvez autoriser vos utilisateurs à utiliser des sous-titres traduits fournis par Teams. Comme pour les utilisateurs disposant d’une identité Microsoft 365, si l’organisateur de la réunion n’a pas de licence Teams Premium active, la vérification de la langue des sous-titres est effectuée par rapport au compte d’utilisateurs Microsoft 365.
La propriété retourne un tableau de codes de langue à deux lettres dans la norme ISO 639-1
.
const captionLanguages = teamsCaptions.supportedCaptionLanguages;
Définir la langue des sous-titres
// ISO 639-1 formatted language code
const language = 'en';
// Altneratively, pass a value from the supported caption languages array
const language = captionLanguages[0];
try {
teamsCaptions.setCaptionLanguage(language);
} catch (e) {
/* USER ERROR HANDLING CODE HERE */
}
Prérequis
- Compte Azure avec un abonnement actif. Pour plus d’informations, consultez Créez un compte gratuitement.
- Ressource Azure Communication Services. Consultez Créer une ressource Azure Communication Services. Enregistrez la chaîne de connexion de cette ressource.
- Application avec des appels vocaux et vidéo, reportez-vous à nos guides de démarrage rapide des appels Voix et Vidéo.
- Jetons d’accès pour les utilisateurs Microsoft 365.
- Jetons d’accès pour les utilisateurs d’identités externes.
- Pour les sous-titres traduits, vous devez disposer d’une licence Teams Premium.
Remarque
Veuillez noter que vous devez avoir une application d’appel vocal utilisant des Kits de développement logiciel (SDK) d’appel Azure Communication Services pour accéder à la fonctionnalité des sous-titres décrite dans ce guide.
Modèles
Nom | Description |
---|---|
CaptionsCallFeature | API pour la fonction d'appel de sous-titres |
TeamsCaptions | API pour les sous-titres Teams |
StartCaptionOptions | Options de sous-titre comme la langue parlée |
TeamsCaptionsListener | Écouteur pour TeamsCaptions addOnCaptionsReceivedListener |
TeamsCaptionsReceivedEvent | Objet de données reçu pour chaque événement TeamsCaptionsListener |
Obtenir la fonctionnalité des sous-titres
Utilisateurs d’identités externes et utilisateurs Microsoft 365
Si vous créez une application qui permet aux utilisateurs de participer à une réunion Teams
CaptionsCallFeature captionsCallFeature = call.feature(Features.CAPTIONS);
captionsCallFeature.getCaptions().whenComplete(
((captions, throwable) -> {
if (throwable == null) {
CallCaptions callCaptions = captions;
if (captions.getCaptionsType() == CaptionsType.TEAMS_CAPTIONS) {
// teams captions
TeamsCaptions teamsCaptions = (TeamsCaptions) captions;
}
} else {
// get captions failed
// throwable is the exception/cause
}
}));
S’abonner aux écouteurs
Ajouter un écouteur pour recevoir d’état activée ou désactivé de sous-titres
public void addOnIsCaptionsEnabledChangedListener() {
teamsCaptions.addOnCaptionsEnabledChangedListener( (PropertyChangedEvent args) -> {
if(teamsCaptions.isEnabled()) {
// captions enabled
}
});
}
Ajouter un écouteur pour des données de sous-titres reçues
TeamsCaptionsListener captionsListener = (TeamsCaptionsReceivedEvent args) -> {
// Information about the speaker.
// CallerInfo participantInfo = args.getSpeaker();
// The original text with no transcribed.
// args.getSpokenText();
// language identifier for the captions text.
// args.getCaptionLanguage();
// language identifier for the speaker.
// args.getSpokenLanguage();
// The transcribed text.
// args.getCaptionText();
// Timestamp denoting the time when the corresponding speech was made.
// args.getTimestamp();
// CaptionsResultType is Partial if text contains partially spoken sentence.
// It is set to Final once the sentence has been completely transcribed.
// args.getResultType() == CaptionsResultType.FINAL;
};
public void addOnCaptionsReceivedListener() {
teamsCaptions.addOnCaptionsReceivedListener(captionsListener);
}
Ajouter un écouteur pour recevoir l’état modifié actif de la langue parlée
public void addOnActiveSpokenLanguageChangedListener() {
teamsCaptions.addOnActiveSpokenLanguageChangedListener( (PropertyChangedEvent args) -> {
// teamsCaptions.getActiveSpokenLanguage()
});
}
Ajouter un écouteur pour recevoir l’état modifié actif de la langue de sous-titres active
public void addOnActiveCaptionLanguageChangedListener() {
teamsCaptions.addOnActiveCaptionLanguageChangedListener( (PropertyChangedEvent args) -> {
// teamsCaptions.getActiveCaptionLanguage()
});
}
Démarrer les sous-titres
Une fois tous vos écouteurs configurés, vous pouvez désormais ajouter vos sous-titres.
public void startCaptions() {
StartCaptionsOptions startCaptionsOptions = new StartCaptionsOptions();
startCaptionsOptions.setSpokenLanguage("en-us");
teamsCaptions.startCaptions(startCaptionsOptions).whenComplete((result, error) -> {
if (error != null) {
}
});
}
Arrêter des sous-titres
public void stopCaptions() {
teamsCaptions.stopCaptions().whenComplete((result, error) -> {
if (error != null) {
}
});
}
Supprimer la légende reçue par l'auditeur
public void removeOnCaptionsReceivedListener() {
teamsCaptions.removeOnCaptionsReceivedListener(captionsListener);
}
Prise en charge de la langue parlée
Obtenir une liste des langues parlées prises en charge
Obtenez une liste des langues parlées prises en charge que vos utilisateurs peuvent sélectionner quand ils activent les sous-titres.
// bcp 47 formatted language code
teamsCaptions.getSupportedSpokenLanguages();
Définir une langue parlée
Lorsque l'utilisateur sélectionne la langue parlée, votre application peut définir la langue parlée à partir de laquelle elle s'attend à ce que les sous-titres soient générés.
public void setSpokenLanguage() {
teamsCaptions.setSpokenLanguage("en-us").whenComplete((result, error) -> {
if (error != null) {
}
});
}
Prise en charge des langues de sous-titres
Obtenir la langue de sous-titres prise en charge
Si votre organisation dispose d’une licence Teams Premium active, vos utilisateurs Azure Communication Services peuvent activer les sous-titres traduits tant que l’organisateur de la réunion dispose d’une licence Teams Premium. Comme pour les utilisateurs disposant d’identités Microsoft 365, cette vérification est effectuée par rapport à leur propre compte d’utilisateur si l’organisateur de la réunion n’a pas de licence Teams Premium.
// ISO 639-1 formatted language code
teamsCaptions.getSupportedCaptionLanguages();
Définir la langue des sous-titres
public void setCaptionLanguage() {
teamsCaptions.setCaptionLanguage("en").whenComplete((result, error) -> {
if (error != null) {
}
});
}
Prérequis
- Compte Azure avec un abonnement actif. Pour plus d’informations, consultez Créez un compte gratuitement.
- Ressource Azure Communication Services. Consultez Créer une ressource Azure Communication Services. Enregistrez la chaîne de connexion de cette ressource.
- Application avec des appels vocaux et vidéo, reportez-vous à nos guides de démarrage rapide des appels Voix et Vidéo.
- Jetons d’accès pour les utilisateurs Microsoft 365.
- Jetons d’accès pour les utilisateurs d’identités externes.
- Pour les sous-titres traduits, vous devez disposer d’une licence Teams Premium.
Remarque
Veuillez noter que vous devez avoir une application d’appel vocal utilisant des Kits de développement logiciel (SDK) d’appel Azure Communication Services pour accéder à la fonctionnalité des sous-titres décrite dans ce guide.
Modèles
Nom | Description |
---|---|
CaptionsCallFeature | API pour la fonction d'appel de sous-titres |
TeamsCaptions | API pour les sous-titres Teams |
StartCaptionOptions | Options de sous-titre comme la langue parlée |
TeamsCaptionsDelegate | Délégué pour les sous-titres Teams |
TeamsCaptionsReceivedEventArgs | Objet de données reçu pour chaque événement reçu de sous-titres Teams |
Obtenir la fonctionnalité des sous-titres
Utilisateurs d’identités externes et utilisateurs Microsoft 365
Si vous créez une application qui permet aux utilisateurs d’Azure Communication Services de participer à une réunion Teams
if let call = self.call {
@State var captionsCallFeature = call.feature(Features.captions)
captionsCallFeature.getCaptions{(value, error) in
if let error = error {
// failed to get captions
} else {
if (value?.type == CaptionsType.teamsCaptions) {
// teams captions
@State var teamsCaptions = value as? TeamsCaptions
}
}
}
}
S’abonner aux écouteurs
Ajouter un auditeur pour recevoir les sous-titres activés ou désactivés, la langue parlée, le changement d'état de la langue des sous-titres et les données reçues
extension CallObserver: TeamsCaptionsDelegate {
// listener for receive captions enabled/disabled status
public func teamsCaptions(_ teamsCaptions: TeamsCaptions, didChangeCaptionsEnabledState args: PropertyChangedEventArgs) {
// teamsCaptions.isEnabled
}
// listener for active spoken language state change
public func teamsCaptions(_ teamsCaptions: TeamsCaptions, didChangeActiveSpokenLanguageState args: PropertyChangedEventArgs) {
// teamsCaptions.activeSpokenLanguage
}
// listener for active caption language state change
public func teamsCaptions(_ teamsCaptions: TeamsCaptions, didChangeActiveCaptionLanguageState args: PropertyChangedEventArgs) {
// teamsCaptions.activeCaptionLanguage
}
// listener for captions data received
public func teamsCaptions(_ teamsCaptions: TeamsCaptions, didReceiveCaptions:TeamsCaptionsReceivedEventArgs) {
// Information about the speaker.
// didReceiveCaptions.speaker
// The original text with no transcribed.
// didReceiveCaptions.spokenText
// language identifier for the captions text.
// didReceiveCaptions.captionLanguage
// language identifier for the speaker.
// didReceiveCaptions.spokenLanguage
// The transcribed text.
// didReceiveCaptions.captionText
// Timestamp denoting the time when the corresponding speech was made.
// didReceiveCaptions.timestamp
// CaptionsResultType is Partial if text contains partially spoken sentence.
// It is set to Final once the sentence has been completely transcribed.
// didReceiveCaptions.resultType
}
}
teamsCaptions.delegate = self.callObserver
Démarrer les sous-titres
Une fois tous vos écouteurs configurés, vous pouvez désormais ajouter vos sous-titres.
func startCaptions() {
guard let teamsCaptions = teamsCaptions else {
return
}
let startCaptionsOptions = StartCaptionsOptions()
startCaptionsOptions.spokenLanguage = "en-us"
teamsCaptions.startCaptions(startCaptionsOptions: startCaptionsOptions, completionHandler: { (error) in
if error != nil {
}
})
}
Arrêter des sous-titres
func stopCaptions() {
teamsCaptions.stopCaptions(completionHandler: { (error) in
if error != nil {
}
})
}
Supprimer la légende reçue par l'auditeur
teamsCaptions?.delegate = nil
Prise en charge de la langue parlée
Obtenir une liste des langues parlées prises en charge
Obtenez une liste des langues parlées prises en charge que vos utilisateurs peuvent sélectionner quand ils activent les sous-titres.
// bcp 47 formatted language code
let spokenLanguage : String = "en-us"
for language in teamsCaptions?.supportedSpokenLanguages ?? [] {
// choose required language
spokenLanguage = language
}
Définir une langue parlée
Lorsque l'utilisateur sélectionne la langue parlée, votre application peut définir la langue parlée à partir de laquelle elle s'attend à ce que les sous-titres soient générés.
func setSpokenLanguage() {
guard let teamsCaptions = self.teamsCaptions else {
return
}
teamsCaptions.set(spokenLanguage: spokenLanguage, completionHandler: { (error) in
if let error = error {
}
})
}
Prise en charge des langues de sous-titres
Obtenir la langue de sous-titres prise en charge
Si votre organisation dispose d’une licence Teams Premium active, vos utilisateurs Azure Communication Services peuvent activer les sous-titres traduits tant que l’organisateur de la réunion dispose d’une licence Teams Premium. Comme pour les utilisateurs disposant d’identités Microsoft 365, cette vérification est effectuée par rapport à leur propre compte d’utilisateur si l’organisateur de la réunion n’a pas de licence Teams Premium.
// ISO 639-1 formatted language code
let captionLanguage : String = "en"
for language in teamsCaptions?.supportedCaptionLanguages ?? [] {
// choose required language
captionLanguage = language
}
Définir la langue des sous-titres
func setCaptionLanguage() {
guard let teamsCaptions = self.teamsCaptions else {
return
}
teamsCaptions.set(captionLanguage: captionLanguage, completionHandler: { (error) in
if let error = error {
}
})
}
Nettoyer les ressources
Si vous voulez nettoyer et supprimer un abonnement Communication Services, vous pouvez supprimer la ressource ou le groupe de ressources. La suppression du groupe de ressources efface également les autres ressources qui y sont associées. Apprenez-en davantage sur le nettoyage des ressources.
Étapes suivantes
Pour plus d’informations, consultez les articles suivants :
- En savoir plus sur les appels vocaux et vidéo.
- En savoir plus sur l’interopérabilité Teams.
- En savoir plus sur les sous-titres traduits en direct de Microsoft Teams.
- Découvrez plus d’informations sur la Bibliothèque d’interface utilisateur.