Skip to content

Commit 5ca66b1

Browse files
committed
cts is retiring
1 parent e758124 commit 5ca66b1

File tree

9 files changed

+25
-24
lines changed

9 files changed

+25
-24
lines changed

articles/ai-services/speech-service/how-to-async-meeting-transcription.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,15 @@ ms.custom: cogserv-non-critical-speech, devx-track-csharp, devx-track-extended-j
1111
zone_pivot_groups: programming-languages-set-twenty-one
1212
---
1313

14-
# Asynchronous conversation transcription
14+
# Asynchronous conversation transcription multichannel diarization
1515

1616
> [!NOTE]
1717
> This feature is currently in public preview. This preview is provided without a service-level agreement, and is not recommended for production workloads. Certain features might not be supported or might have constrained capabilities. For more information, see [Supplemental Terms of Use for Microsoft Azure Previews](https://azure.microsoft.com/support/legal/preview-supplemental-terms/).
1818
19-
In this article, asynchronous conversation transcription is demonstrated using the **RemoteMeetingTranscriptionClient** API. If you have configured conversation transcription to do asynchronous transcription and have a `meetingId`, you can obtain the transcription associated with that `meetingId` using the **RemoteMeetingTranscriptionClient** API.
19+
In this article, asynchronous conversation transcription multichannel diarization is demonstrated using the **RemoteMeetingTranscriptionClient** API. If you configured conversation transcription to do asynchronous transcription and have a `meetingId`, you can obtain the transcription associated with that `meetingId` using the **RemoteMeetingTranscriptionClient** API.
2020

2121
> [!IMPORTANT]
22-
> Conversation transcription multichannel diarization (preview) is retiring on March 28, 2025. For more information about migrating to other speech to text features, see [Migrate away from conversation transcription multichannel diarization](#migrate-away-from-conversation-transcription-multichannel-diarization).
22+
> Conversation transcription multichannel diarization (preview) is retiring on March 28, 2025. For more information about migrating to other speech to text features, see [Migrate away from conversation transcription multichannel diarization](meeting-transcription.md#migrate-away-from-conversation-transcription-multichannel-diarization).
2323
2424
## Asynchronous vs. real-time + asynchronous
2525

articles/ai-services/speech-service/how-to-use-meeting-transcription.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Real-time conversation transcription quickstart - Speech service
2+
title: Real-time conversation transcription multichannel diarization quickstart - Speech service
33
titleSuffix: Azure AI services
44
description: In this quickstart, learn how to transcribe meetings. You can add, remove, and identify multiple participants by streaming audio to the Speech service.
55
author: eric-urban
@@ -12,23 +12,23 @@ zone_pivot_groups: acs-js-csharp-python
1212
ms.custom: cogserv-non-critical-speech, references_regions, devx-track-extended-java, devx-track-js, devx-track-python
1313
---
1414

15-
# Quickstart: Real-time conversation transcription (preview)
15+
# Quickstart: Real-time conversation transcription multichannel diarization (preview)
1616

1717
> [!NOTE]
1818
> This feature is currently in public preview. This preview is provided without a service-level agreement, and is not recommended for production workloads. Certain features might not be supported or might have constrained capabilities. For more information, see [Supplemental Terms of Use for Microsoft Azure Previews](https://azure.microsoft.com/support/legal/preview-supplemental-terms/).
1919
20-
You can transcribe meetings with the ability to add, remove, and identify multiple participants by streaming audio to the Speech service. You first create voice signatures for each participant using the REST API, and then use the voice signatures with the Speech SDK to transcribe meetings. See the conversation transcription [overview](meeting-transcription.md) for more information.
20+
With conversation transcription multichannel diarization, you can transcribe meetings with the ability to add, remove, and identify multiple participants by streaming audio to the Speech service. You first create voice signatures for each participant using the REST API, and then use the voice signatures with the Speech SDK to transcribe meetings. See the conversation transcription [overview](meeting-transcription.md) for more information.
2121

2222
> [!IMPORTANT]
23-
> Conversation transcription multichannel diarization (preview) is retiring on March 28, 2025. For more information about migrating to other speech to text features, see [Migrate away from conversation transcription multichannel diarization](#migrate-away-from-conversation-transcription-multichannel-diarization).
23+
> Conversation transcription multichannel diarization (preview) is retiring on March 28, 2025. For more information about migrating to other speech to text features, see [Migrate away from conversation transcription multichannel diarization](meeting-transcription.md#migrate-away-from-conversation-transcription-multichannel-diarization).
2424
2525
## Limitations
2626

2727
* Only available in the following subscription regions: `centralus`, `eastasia`, `eastus`, `westeurope`
2828
* Requires a 7-mic circular multi-microphone array. The microphone array should meet [our specification](./speech-sdk-microphone.md).
2929

30-
> [!IMPORTANT]
31-
> For the conversation transcription multichannel diarization feature, use `MeetingTranscriber` instead of `ConversationTranscriber`, and use `CreateMeetingAsync` instead of `CreateConversationAsync`. A new "conversation transcription" feature is released without the use of user profiles and voice signatures. For more information, see the [release notes](releasenotes.md?tabs=speech-sdk).
30+
> [!NOTE]
31+
> For the conversation transcription multichannel diarization feature, use `MeetingTranscriber` instead of `ConversationTranscriber`, and use `CreateMeetingAsync` instead of `CreateConversationAsync`.
3232
3333
::: zone pivot="programming-language-javascript"
3434
[!INCLUDE [JavaScript Basics include](includes/how-to/meeting-transcription/real-time-javascript.md)]

articles/ai-services/speech-service/includes/common/azure-prerequisites.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
author: eric-urban
33
ms.service: azure-ai-speech
4-
ms.date: 08/07/2024
4+
ms.date: 9/9/2024
55
ms.topic: include
66
ms.author: eur
77
---

articles/ai-services/speech-service/includes/how-to/meeting-transcription/real-time-csharp.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,12 @@ ms.author: eur
1111
[!INCLUDE [Prerequisites](../../common/azure-prerequisites.md)]
1212

1313
## Set up the environment
14+
1415
The Speech SDK is available as a [NuGet package](https://www.nuget.org/packages/Microsoft.CognitiveServices.Speech) and implements .NET Standard 2.0. You install the Speech SDK later in this guide, but first check the [platform-specific installation instructions](../../../quickstarts/setup-platform.md?pivots=programming-language-csharp) for any more requirements.
1516

1617
## Create voice signatures
1718

18-
If you want to enroll user profiles, the first step is to create voice signatures for the meeting participants so that they can be identified as unique speakers. This isn't required if you don't want to use pre-enrolled user profiles to identify specific participants.
19+
If you want to enroll user profiles, the first step is to create voice signatures for the meeting participants so that they can be identified as unique speakers. This isn't required if you don't want to use preenrolled user profiles to identify specific participants.
1920

2021
The input `.wav` audio file for creating voice signatures must be 16-bit, 16-kHz sample rate, in single channel (mono) format. The recommended length for each audio sample is between 30 seconds and two minutes. An audio sample that is too short results in reduced accuracy when recognizing the speaker. The `.wav` file should be a sample of one person's voice so that a unique voice profile is created.
2122

@@ -89,7 +90,7 @@ Running the function `GetVoiceSignatureString()` returns a voice signature strin
8990
9091
## Transcribe meetings
9192

92-
The following sample code demonstrates how to transcribe meetings in real-time for two speakers. It assumes you've already created voice signature strings for each speaker as shown above. Substitute real information for `subscriptionKey`, `region`, and the path `filepath` for the audio you want to transcribe.
93+
The following sample code demonstrates how to transcribe meetings in real-time for two speakers. It assumes that you created voice signature strings for each speaker as shown above. Substitute real information for `subscriptionKey`, `region`, and the path `filepath` for the audio you want to transcribe.
9394

9495
If you don't use pre-enrolled user profiles, it takes a few more seconds to complete the first recognition of unknown users as speaker1, speaker2, etc.
9596

articles/ai-services/speech-service/includes/how-to/meeting-transcription/real-time-javascript.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ Running this script returns a voice signature string in the variable `voiceSigna
5858
5959
## Transcribe meetings
6060

61-
The following sample code demonstrates how to transcribe meetings in real-time for two speakers. It assumes you've already created voice signature strings for each speaker as shown above. Substitute real information for `subscriptionKey`, `region`, and the path `filepath` for the audio you want to transcribe.
61+
The following sample code demonstrates how to transcribe meetings in real-time for two speakers. It assumes that you created voice signature strings for each speaker as shown above. Substitute real information for `subscriptionKey`, `region`, and the path `filepath` for the audio you want to transcribe.
6262

6363
If you don't use pre-enrolled user profiles, it takes a few more seconds to complete the first recognition of unknown users as speaker1, speaker2, etc.
6464

@@ -72,7 +72,7 @@ This sample code does the following:
7272
* Creates a `MeetingTranscriber` using the constructor.
7373
* Adds participants to the meeting. The strings `voiceSignatureStringUser1` and `voiceSignatureStringUser2` should come as output from the steps above.
7474
* Registers to events and begins transcription.
75-
* If you want to differentiate speakers without providing voice samples, please enable `DifferentiateGuestSpeakers` feature as in [Meeting Transcription Overview](../../../meeting-transcription.md).
75+
* If you want to differentiate speakers without providing voice samples, enable `DifferentiateGuestSpeakers` feature as in [Meeting Transcription Overview](../../../meeting-transcription.md).
7676

7777
If speaker identification or differentiate is enabled, then even if you have already received `transcribed` results, the service is still evaluating them by accumulated audio information. If the service finds that any previous result was assigned an incorrect `speakerId`, then a nearly identical `Transcribed` result is sent again, where only the `speakerId` and `UtteranceId` are different. Since the `UtteranceId` format is `{index}_{speakerId}_{Offset}`, when you receive a `transcribed` result, you could use `UtteranceId` to determine if the current `transcribed` result is going to correct a previous one. Your client or UI logic could decide behaviors, like overwriting previous output, or to ignore the latest result.
7878

articles/ai-services/speech-service/includes/how-to/meeting-transcription/real-time-python.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ You can use these two voice_signature_string as input to the variables `voice_si
5858
5959
## Transcribe meetings
6060

61-
The following sample code demonstrates how to transcribe meetings in real-time for two speakers. It assumes you've already created voice signature strings for each speaker as shown previously. Substitute real information for `subscriptionKey`, `region`, and the path `filepath` for the audio you want to transcribe.
61+
The following sample code demonstrates how to transcribe meetings in real-time for two speakers. It assumes that you created voice signature strings for each speaker as shown previously. Substitute real information for `subscriptionKey`, `region`, and the path `filepath` for the audio you want to transcribe.
6262

6363
If you don't use pre-enrolled user profiles, it takes a few more seconds to complete the first recognition of unknown users as speaker1, speaker2, etc.
6464

@@ -75,7 +75,7 @@ Here's what the sample does:
7575
* Read the whole wave files at once and stream it to SDK and begins transcription.
7676
* If you want to differentiate speakers without providing voice samples, you enable the `DifferentiateGuestSpeakers` feature as in [Meeting Transcription Overview](../../../meeting-transcription.md).
7777

78-
If speaker identification or differentiate is enabled, then even if you have already received `transcribed` results, the service is still evaluating them by accumulated audio information. If the service finds that any previous result was assigned an incorrect `speakerId`, then a nearly identical `Transcribed` result is sent again, where only the `speakerId` and `UtteranceId` are different. Since the `UtteranceId` format is `{index}_{speakerId}_{Offset}`, when you receive a `transcribed` result, you could use `UtteranceId` to determine if the current `transcribed` result is going to correct a previous one. Your client or UI logic could decide behaviors, like overwriting previous output, or to ignore the latest result.
78+
If speaker identification or differentiate is enabled, then even if you received `transcribed` results, the service is still evaluating them by accumulated audio information. If the service finds that any previous result was assigned an incorrect `speakerId`, then a nearly identical `Transcribed` result is sent again, where only the `speakerId` and `UtteranceId` are different. Since the `UtteranceId` format is `{index}_{speakerId}_{Offset}`, when you receive a `transcribed` result, you could use `UtteranceId` to determine if the current `transcribed` result is going to correct a previous one. Your client or UI logic could decide behaviors, like overwriting previous output, or to ignore the latest result.
7979

8080
```python
8181
import azure.cognitiveservices.speech as speechsdk

articles/ai-services/speech-service/includes/how-to/remote-meeting/csharp/examples.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@
22
author: eric-urban
33
ms.service: azure-ai-speech
44
ms.topic: include
5-
ms.date: 07/26/2022
5+
ms.date: 9/9/2024
66
ms.author: eur
77
ms.custom: devx-track-csharp
88
---
99

1010
## Upload the audio
1111

12-
The first step for asynchronous transcription is to send the audio to the Meeting Transcription Service using the Speech SDK.
12+
The first step for asynchronous transcription is to send the audio to the conversation transcription service using the Speech SDK.
1313

14-
This example code shows how to create a `MeetingTranscriber` for asynchronous-only mode. In order to stream audio to the transcriber, you add audio streaming code derived from [Transcribe meetings in real-time with the Speech SDK](../../../../how-to-use-meeting-transcription.md).
14+
This example code shows how to use conversation transcription in asynchronous-only mode. In order to stream audio to the transcriber, you need to add audio streaming code derived from the [real-time conversation transcription quickstart](../../../../how-to-use-meeting-transcription.md).
1515

1616
```csharp
1717
async Task CompleteContinuousRecognition(MeetingTranscriber recognizer, string meetingId)

articles/ai-services/speech-service/includes/how-to/remote-meeting/java/examples.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22
author: eric-urban
33
ms.service: azure-ai-speech
44
ms.topic: include
5-
ms.date: 04/25/2022
5+
ms.date: 9/9/2024
66
ms.author: eur
77
---
88

99
## Upload the audio
1010

11-
Before asynchronous transcription can be performed, you need to send the audio to Meeting Transcription Service using the Speech SDK.
11+
Before asynchronous conversation transcription can be performed, you need to send the audio to the conversation transcription service using the Speech SDK.
1212

13-
This example code shows how to create meeting transcriber for asynchronous-only mode. In order to stream audio to the transcriber, you will need to add audio streaming code derived from [Transcribe meetings in real-time with the Speech SDK](../../../../how-to-use-meeting-transcription.md). Refer to the **Limitations** section of that topic to see the supported platforms and languages APIs.
13+
This example code shows how to use conversation transcription in asynchronous-only mode. In order to stream audio to the transcriber, you need to add audio streaming code derived from the [real-time conversation transcription quickstart](../../../../how-to-use-meeting-transcription.md). Refer to the **Limitations** section of that topic to see the supported platforms and languages APIs.
1414

1515
```java
1616
// Create the speech config object
@@ -124,7 +124,7 @@ You can obtain **remote-meeting** by editing your pom.xml file as follows.
124124

125125
### Sample transcription code
126126

127-
After you have the `meetingId`, create a remote meeting transcription client **RemoteMeetingTranscriptionClient** at the client application to query the status of the asynchronous transcription. Use **GetTranscriptionOperation** method in **RemoteMeetingTranscriptionClient** to get a [PollerFlux](https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/core/azure-core/src/main/java/com/azure/core/util/polling/PollerFlux.java) object. The PollerFlux object will have information about the remote operation status **RemoteMeetingTranscriptionOperation** and the final result **RemoteMeetingTranscriptionResult**. Once the operation has finished, get **RemoteMeetingTranscriptionResult** by calling **getFinalResult** on a [SyncPoller](https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/core/azure-core/src/main/java/com/azure/core/util/polling/SyncPoller.java). In this code we simply print the result contents to system output.
127+
After you have the `meetingId`, create a remote meeting transcription client **RemoteMeetingTranscriptionClient** at the client application to query the status of the asynchronous transcription. Use **GetTranscriptionOperation** method in **RemoteMeetingTranscriptionClient** to get a [PollerFlux](https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/core/azure-core/src/main/java/com/azure/core/util/polling/PollerFlux.java) object. The PollerFlux object has information about the remote operation status **RemoteMeetingTranscriptionOperation** and the final result **RemoteMeetingTranscriptionResult**. Once the operation is finished, get **RemoteMeetingTranscriptionResult** by calling **getFinalResult** on a [SyncPoller](https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/core/azure-core/src/main/java/com/azure/core/util/polling/SyncPoller.java). In this code, we print the result contents to system output.
128128

129129
```java
130130
// Create the speech config object

articles/ai-services/speech-service/meeting-transcription.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ Conversation transcription uses two types of inputs:
6666
- **Multi-channel audio stream:** For specification and design details, see [Microphone array recommendations](./speech-sdk-microphone.md).
6767
- **User voice samples:** Conversation transcription needs user profiles in advance of the conversation for speaker identification. Collect audio recordings from each user, and then send the recordings to the [signature generation service](https://aka.ms/cts/signaturegenservice) to validate the audio and generate user profiles.
6868

69-
User voice samples for voice signatures are required for speaker identification. Speakers who don't have voice samples are recognized as *unidentified*. Unidentified speakers can still be differentiated when the `DifferentiateGuestSpeakers` property is enabled (see the following example). The transcription output then shows speakers as, for example, *Guest_0* and *Guest_1*, instead of recognizing them as pre-enrolled specific speaker names.
69+
User voice samples for voice signatures are required for speaker identification. Speakers who don't have voice samples are recognized as *unidentified*. Unidentified speakers can still be differentiated when the `DifferentiateGuestSpeakers` property is enabled (see the following example). The transcription output then shows speakers as, for example, *Guest_0* and *Guest_1*, instead of recognizing them as preenrolled specific speaker names.
7070

7171
```csharp
7272
config.SetProperty("DifferentiateGuestSpeakers", "true");

0 commit comments

Comments
 (0)