Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: added web-core spec in transcript #234

Merged
merged 2 commits into from
Jan 5, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 21 additions & 6 deletions docs/guides/capabilities/ai/meeting-transcription.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ sidebar_position: 1

# Meeting Transcription

:::info alpha
The meeting transcription feature is currently in alpha, which means it is still being tested and evaluated, and may undergo some change. This feature is not accessible to the public at the moment and will be activated solely upon request, subject to our team's assessment of your usage and needs. If you wish to have this feature enabled for your organization, please [get in touch with us](https://dyte.io/contact).
:::info beta
The meeting transcription feature is currently in beta, which means it is still being tested and evaluated, and may undergo some change. This feature is not accessible to the public at the moment and will be activated solely upon request, subject to our team's assessment of your usage and needs. If you wish to have this feature enabled for your organization, please [get in touch with us](https://dyte.io/contact).
:::

Dyte's meeting transcription allows you to transcribe your Dyte meetings in real-time, making it easy to capture important discussions and refer back to them later.
Expand All @@ -28,15 +28,30 @@ To learn more about how to create and edit presets, see [Presets](https://docs.d

## Consuming transcripts

There are 2 ways in which these transcripts can be consumed.
There are 3 ways in which these transcripts can be consumed.
1. Client core SDK: The transcripts can be consumed on the client-side using the Dyte SDK that's suitable for your platform. These transcripts are generated on the server in real-time.
2. Webhooks: The meeting transcript can be consumed via a [webhook after the meeting ends](#consume-transcript-via-a-post-meeting-webhook).
3. REST API: The meeting transcript can also be fetched via the [rest API](/api#/operations/GetSessionTranscript).

### Consuming transcripts in real-time

For consuming transcripts in real-time on the client SDK of your choice, you just need to ensure that the `transcription_enabled` flag is enabled in the preset.
Transcripts for all the participants having this flag set will be broadcasted in the meeting.

You can use the `meeting.ai` object to access the transcripts.

```ts
console.log(meeting.ai.transcripts);
```

The transcripts are also emitted by the `meeting.ai` object, so a listener can be attached to it.

```ts
meeting.ai.on('transcript', (transcriptData) => {
console.log('Transcript:', transcriptData);
});
```

### Consume transcript via a post-meeting webhook

You can configure a webhook with the `meeting.transcript` event enabled to receive the meeting transcript after the meeting has ended.
Expand All @@ -52,13 +67,13 @@ You can use this API to get the transcript for a meeting at a later time. Dyte s
The transcript is received in the form of a CSV. Here is the format of the said CSV:

```csv
Timestamp, Peer ID, Participant ID, Custom Participant ID, Participant Name, Transcript
Timestamp, Participant ID, User ID, Custom Participant ID, Participant Name, Transcript
```

The following is a description of all the fields specified in the above CSV.
1. Timestamp: An ISO 8601 format string indicating the time of utterance (or the time of speech).
2. Peer ID: An identifier for individual peers in the meeting. For instance, if the participant joins the meeting twice, both the "peers" will have the same Participant ID but different Peer IDs.
3. Participant ID: An identifier for a participant in the meeting, as returned by the [add participant API call](https://docs.dyte.io/api#/operations/add_participant#response-body).
2. Participant ID: An identifier for individual peers in the meeting. For instance, if the participant joins the meeting twice, both the "peers" will have the same User ID but different Participant IDs.
3. User ID: An identifier for a participant in the meeting, as returned by the [add participant API call](https://docs.dyte.io/api#/operations/add_participant#response-body).
4. Custom Participant ID: An identifier that you can specify to identify a user. This can be sent in the request body of the [add participant API call](https://docs.dyte.io/api#/operations/add_participant#request-body).
5. Participant Name: The display name of the user.
6. Transcript: The transcribed utterance.
Expand Down
43 changes: 36 additions & 7 deletions docs/guides/capabilities/audio/transcriptions.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ sidebar_slug: transcriptions-inbuilt

# Meeting Transcription

:::info alpha
The meeting transcription feature is currently in alpha, which means it is still being tested and evaluated, and may undergo some change. This feature is not accessible to the public at the moment and will be activated solely upon request, subject to our team's assessment of your usage and needs. If you wish to have this feature enabled for your organization, please [get in touch with us](https://dyte.io/contact).
:::info beta
The meeting transcription feature is currently in beta, which means it is still being tested and evaluated, and may undergo some change. This feature is not accessible to the public at the moment and will be activated solely upon request, subject to our team's assessment of your usage and needs. If you wish to have this feature enabled for your organization, please [get in touch with us](https://dyte.io/contact).
:::

Dyte's meeting transcription allows you to transcribe your Dyte meetings in real-time, making it easy to capture important discussions and refer back to them later.
Expand All @@ -22,36 +22,64 @@ Dyte's AI meeting transcription currently only supports English.
You can control whether or not a participant's audio will be transcribe with the help of the `transcription_enabled` flag in the participant's preset.
All participants with the `transcription_enabled` turned on in their preset will be able to generate transcripts in real-time in a Dyte meeting.

You can create a new preset on our [Developer Portal](https://dev.dyte.io/presets), or using our [REST API](https://docs.dyte.io/api#/operations/post-presets)
You can create a new preset on our [Developer Portal](https://dev.dyte.io/presets), or using our [REST API](https://docs.dyte.io/api#/operations/post-presets).

## Consuming transcripts
:::info NOTE
To learn more about how to create and edit presets, see [Presets](https://docs.dyte.io/guides/capabilities/presets).
:::

There are 2 ways in which these transcripts can be consumed.
## Consuming transcripts

There are 3 ways in which these transcripts can be consumed.
1. Client core SDK: The transcripts can be consumed on the client-side using the Dyte SDK that's suitable for your platform. These transcripts are generated on the server in real-time.
2. Webhooks: The meeting transcript can be consumed via a [webhook after the meeting ends](#consume-transcript-via-a-post-meeting-webhook).
3. REST API: The meeting transcript can also be fetched via the [rest API](/api#/operations/GetSessionTranscript).

### Consuming transcripts in real-time

For consuming transcripts in real-time on the client SDK of your choice, you just need to ensure that the `transcription_enabled` flag is enabled in the preset.
Transcripts for all the participants having this flag set will be broadcasted in the meeting.

You can use the `meeting.ai` object to access the transcripts.

```ts
console.log(meeting.ai.transcripts);
```

The transcripts are also emitted by the `meeting.ai` object, so a listener can be attached to it.

```ts
meeting.ai.on('transcript', (transcriptData) => {
console.log('Transcript:', transcriptData);
});
```

### Consume transcript via a post-meeting webhook

You can configure a webhook with the `meeting.transcript` event enabled to receive the meeting transcript after the meeting has ended.
You can do this either on our [Developer Portal](https://dev.dyte.io/webhooks), or using a [REST API](https://docs.dyte.io/api#/operations/addWebhook).

You can see the webhook format [here](/guides/capabilities/webhooks/webhook-events#meetingtranscript).

## Fetch the meeting transcript

You do not need to rely on the webhook to get the transcript for a meeting. Dyte provides a [REST API](https://docs.dyte.io/api#/operations/GetSessionTranscript) using which you can obtain the transcripts for a particular session.
You do not need to rely on the webhook to get the transcript for a meeting. Dyte provides a [REST API](/api#/operations/GetSessionTranscript) using which you can obtain the transcripts for a particular session.
You can use this API to get the transcript for a meeting at a later time. Dyte stores the transcript of a meeting for 7 days since the start of the meeting.

The transcript is received in the form of a CSV. Here is the format of the said CSV:

```csv
Timestamp, Participant ID, Participant Name, Transcript
Timestamp, Participant ID, User ID, Custom Participant ID, Participant Name, Transcript
```

The following is a description of all the fields specified in the above CSV.
1. Timestamp: An ISO 8601 format string indicating the time of utterance (or the time of speech).
2. Participant ID: An identifier for individual peers in the meeting. For instance, if the participant joins the meeting twice, both the "peers" will have the same User ID but different Participant IDs.
3. User ID: An identifier for a participant in the meeting, as returned by the [add participant API call](https://docs.dyte.io/api#/operations/add_participant#response-body).
4. Custom Participant ID: An identifier that you can specify to identify a user. This can be sent in the request body of the [add participant API call](https://docs.dyte.io/api#/operations/add_participant#request-body).
5. Participant Name: The display name of the user.
6. Transcript: The transcribed utterance.

## Testing transcription

Once you have configured a preset and a webhook according to the instructions above, you can proceed to test whether meeting transcription is working for your organization.
Expand All @@ -61,3 +89,4 @@ To test if meeting transcription has been configured for your organization, perf
2. [Add a participant](https://docs.dyte.io/api#/operations/add_participant) to the meeting. Make sure that the preset you use was configured according to this guide.
3. Join the meeting with the `authToken` you just obtained. As you unmute and speak, your speech should be getting transcribed in real-time for all the participants in the meeting.
4. Once the meeting ends, you will be getting a webhook with the event `meeting.transcript`. The body of this webhook will consist of the entire meeting transcript.

Loading