Skip to content

Commit 164b65b

Browse files
authored
Merge pull request #178 from eric-urban/eur/cts-migrate
cts is retiring
2 parents 137daf5 + 5ca66b1 commit 164b65b

File tree

10 files changed

+84
-64
lines changed

10 files changed

+84
-64
lines changed

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

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,25 @@
11
---
2-
title: Asynchronous meeting transcription - Speech service
2+
title: Asynchronous conversation transcription - Speech service
33
titleSuffix: Azure AI services
4-
description: Learn how to use asynchronous meeting transcription using the Speech service. Available for Java and C# only.
4+
description: Learn how to use asynchronous conversation transcription using the Speech service. Available for Java and C# only.
55
manager: nitinme
66
ms.service: azure-ai-speech
77
ms.topic: how-to
8-
ms.date: 1/18/2024
8+
ms.date: 9/9/2024
99
ms.devlang: csharp
1010
ms.custom: cogserv-non-critical-speech, devx-track-csharp, devx-track-extended-java
1111
zone_pivot_groups: programming-languages-set-twenty-one
1212
---
1313

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

16-
In this article, asynchronous meeting transcription is demonstrated using the **RemoteMeetingTranscriptionClient** API. If you have configured meeting transcription to do asynchronous transcription and have a `meetingId`, you can obtain the transcription associated with that `meetingId` using the **RemoteMeetingTranscriptionClient** API.
16+
> [!NOTE]
17+
> 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/).
18+
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.
20+
21+
> [!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](meeting-transcription.md#migrate-away-from-conversation-transcription-multichannel-diarization).
1723
1824
## Asynchronous vs. real-time + asynchronous
1925

@@ -32,7 +38,7 @@ Two steps are required to accomplish asynchronous transcription. The first step
3238
::: zone-end
3339

3440

35-
## Next steps
41+
## Related content
3642

37-
> [!div class="nextstepaction"]
38-
> [Explore our samples on GitHub](https://aka.ms/csspeech/samples)
43+
- [Try the real-time diarization quickstart](get-started-stt-diarization.md)
44+
- [Try batch transcription with diarization](batch-transcription.md)
Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,34 @@
11
---
2-
title: Real-time meeting 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
66
manager: nitinme
77
ms.service: azure-ai-speech
88
ms.topic: quickstart
9-
ms.date: 1/21/2024
9+
ms.date: 9/9/2024
1010
ms.author: eur
1111
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 meeting transcription
15+
# Quickstart: Real-time conversation transcription multichannel diarization (preview)
1616

17-
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 meeting transcription [overview](meeting-transcription.md) for more information.
17+
> [!NOTE]
18+
> 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/).
19+
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.
21+
22+
> [!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](meeting-transcription.md#migrate-away-from-conversation-transcription-multichannel-diarization).
1824
1925
## Limitations
2026

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

2430
> [!NOTE]
25-
> The Speech SDK for C++, Java, Objective-C, and Swift support meeting transcription, but we haven't yet included a guide here.
31+
> For the conversation transcription multichannel diarization feature, use `MeetingTranscriber` instead of `ConversationTranscriber`, and use `CreateMeetingAsync` instead of `CreateConversationAsync`.
2632
2733
::: zone pivot="programming-language-javascript"
2834
[!INCLUDE [JavaScript Basics include](includes/how-to/meeting-transcription/real-time-javascript.md)]
@@ -36,7 +42,7 @@ You can transcribe meetings with the ability to add, remove, and identify multip
3642
[!INCLUDE [Python Basics include](includes/how-to/meeting-transcription/real-time-python.md)]
3743
::: zone-end
3844

39-
## Next steps
45+
## Related content
4046

41-
> [!div class="nextstepaction"]
42-
> [Asynchronous meeting transcription](how-to-async-meeting-transcription.md)
47+
- [Try the real-time diarization quickstart](get-started-stt-diarization.md)
48+
- [Try batch transcription with diarization](batch-transcription.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: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
author: eric-urban
33
ms.service: azure-ai-speech
44
ms.topic: include
5-
ms.date: 01/24/2022
5+
ms.date: 9/9/2024
66
ms.author: eur
77
---
88

@@ -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: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
author: eric-urban
33
ms.service: azure-ai-speech
44
ms.topic: include
5-
ms.date: 01/24/2022
5+
ms.date: 9/9/2024
66
ms.author: eur
77
---
88

@@ -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: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
author: jyotsna-ravi
33
ms.service: azure-ai-speech
44
ms.topic: include
5-
ms.date: 11/11/2022
5+
ms.date: 9/9/2024
66
ms.author: jyravi
77
---
88

@@ -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

0 commit comments

Comments
 (0)