Update Speaker Events

Speaker Events API provides the functionality to update Speakers who spoke in the conversation after it has been processed.

This is achieved by sending the API the list of Speaker Events for that conversation which the API then uses for associating it with the content of the same. This API can be used when you have access to these events for a recorded conversation.

For realtime speaker events integration take a look at Active Speaker Events.

Once the API completes the processing the results are reflected for the Messages and Insights in the conversation.

Speaker Events from Zoom Timeline#

We have an open-source utility written in JS to convert the Timeline file from Zoom APIs to Speaker Events API request format available.

This utility also does pre-processing on the events to ensure less noise while associating these with a conversation.

HTTP Request#

PUT https://api.symbl.ai/v1/conversations/{conversationId}/speakers

Example API call#

curl --location --request PUT 'https://api.symbl.ai/v1/conversations/{conversationId}/speakers' \
--header '{api-key}' \
--header 'Content-Type: application/json' \
--data-raw '{
"speakerEvents": [
{
"type": "started_speaking",
"user": {
"id": "4194eb50-357d-4712-a02d-94215ead1064",
"name": "Derek",
"email": "Derek@example.com"
},
"offset": {
"seconds": 0,
"nanos": 5000000000
}
},
{
"type": "stopped_speaking",
"user": {
"id": "4194eb50-357d-4712-a02d-94215ead1064",
"name": "Derek",
"email": "Derek@example.com"
},
"offset": {
"seconds": 15,
"nanos": 5000000000
}
},
{
"type": "started_speaking",
"user": {
"id": "4194eb50-357d-4712-a02d-94215ead2104",
"name": "Richard",
"email": "Richard@example.com"
},
"offset": {
"seconds": 10,
"nanos": 5000000000
}
},
{
"type": "stopped_speaking",
"user": {
"id": "4194eb50-357d-4712-a02d-94215ead2104",
"name": "Richard",
"email": "Richard@example.com"
},
"offset": {
"seconds": 20,
"nanos": 5000000000
}
}
]
}'

Response#

{
"message": "Speaker events associated for conversationId: {conversationId} successfully! The update should be reflected in all messages and insights along with this conversation"
}

Speaker Event Object#

"speakerEvents": [
{
"type": "started_speaking",
"user": {
"id": "4194eb50-357d-4712-a02d-94215ead1064",
"name": "Derek",
"email": "Derek@example.com"
},
"offset": {
"seconds": 0,
"nanos": 5000000000
}
},
{
"type": "stopped_speaking",
"user": {
"id": "4194eb50-357d-4712-a02d-94215ead1064",
"name": "Derek",
"email": "Derek@example.com"
},
"offset": {
"seconds": 15,
"nanos": 5000000000
}
}]
ParameterValueDescription
typestarted_speaking, stopped_speakingRefers to when a speaker starts speaking and stops.
userJSONContains user details
offsetJSONContains the seconds and nanos at which this speaker event occurred.
user#
ParameterValueDescription
idstringUniquely identifies the speaker within the conversation.
namestringName of the speaker.
emailstringEmail id of the speaker.