When You Need a Written Record of What People Said
Literally months after announcing Live Transcription for Teams meetings in message center notification MC220987 (August 26 2020, updated Nov 10), Microsoft published a blog post on March 23 to say that the functionality is now generally available. Making the transcript available completes the work to create a meeting recap to highlight important information shared in calls and adds to an array of recent improvements introduced to make Teams meetings run smoother.
Transcription is available for those with Office 365 E3 and, E5, Microsoft E3 and E5, and Microsoft 365 Business Standard and Business Premium plans. Currently, transcription works for personal meetings. It’s not available for channel meetings, Meet Now meetings, or 1:1 calls. Meeting transcription is only available in the Teams desktop client.
Meeting transcription (automatic captions) is a feature of Stream. When Teams transitioned storage of meeting recordings to OneDrive for Business, the ability to generate transcriptions was lost. That gap is now closed, which is a relief because all new Teams meeting records are now stored in OneDrive unless an organization explicitly chooses to stay with Stream.
Change in Plan
One notable change since Microsoft first published MC220987 is that recording is no longer combined with transcription. Two separate options appear in the Teams meeting menu (Figure 1). You can start a recording without generating a transcript or start transcription without recording a meeting. Separate notices are used to advise meeting participants when recording and transcription are active.
Policy Control for Transcription
Before a meeting organizer or presenter can transcribe a meeting, the Teams meeting policy assigned to their account must have the AllowTranscription setting enabled (its companion setting is AllowCloudRecording to control the ability to record a meeting). The AllowTranscription setting can only be changed with PowerShell. To check the settings of the Global (default) policy, run the Get-CsTeamsMeetingPolicy cmdlet (included in the Teams PowerShell module):
Get-CsTeamsMeetingPolicy -Identity Global | ft identity, AllowTranscription, AllowCloudRecording
Identity AllowTranscription AllowCloudRecording
-------- ------------------ -------------------
Global False True
To update the policy, run the Set-CsTeamsMeetingPolicy cmdlet:
Set-CsTeamsMeetingPolicy -Identity Global -AllowTranscription $True
Capturing Speech During Meetings
Transcription is an AI-generated record of what is spoken during a meeting. Processing occurs in almost real time to display text during meetings (Figure 2) and to make a full transcript available soon after a meeting is over.
In their blog post, Microsoft says that “Delivering live transcription with high accuracy, minimal latency, and cost efficiency at enterprise scale has been one of the toughest challenges in the industry. Over the last two years we’ve made significant strides in solving this problem and have dramatically improved our models for accuracy using meeting context in real time and cutting edge AI.”
Microsoft also notes that an AI model is created for each meeting to take account of the meeting topic, participants, and attachments to improve the accuracy of text recognition, especially with jargon. Microsoft says that the models used for meeting transcription are removed after a meeting is over and not used to improve their AI.
There’s no doubt that capturing and transcribing conversations during a meeting is a mind-bendingly difficult computation task. The computational challenges will become even harder as Microsoft expands coverage to additional languages from its current limitation of U.S. English.
I’m not sure how Teams detects US English as it doesn’t seem to have any difficulty interpreting my Irish accent. Perhaps it’s fairer to say that transcription works when people speak a transatlantic U.S.-style English and won’t if someone starts to speak French, German, Italian, or another language.
A glance at the transcript shown in Figure 2 illustrates how difficult it can be to capture an accurate transcript. If the meeting is full of different voices, if participants don’t have good microphones and the audio feed is indistinct in any way, you’ll see oddities in the transcript (like “The seat back on the Moon” – I have no idea what was said there). Noise suppression in the Teams desktop client seems to help as I have noted better results when people use the desktop rather than the browser or mobile clients.
Using Meeting Transcripts
When a meeting finishes, the meeting transcript is available almost immediately. Open the meeting in the Teams calendar app and the transcript is available in the meeting recap or via the Recordings & Transcripts tab. Figure 3 shows an example of a transcribed meeting which happened in three parts, one for each segment. In this case, the meeting organizer is reviewing the transcript, so the delete option is available. Other participants can view and down transcripts, but they can’t delete a transcript.
Transcripts are downloadable in Video Text Track (VTT) or Microsoft Word (docx) format. VTT files are text-format files where individual contributions are noted with a detailed timestamp. For example:
00:03:02.870 --> 00:03:05.570
<v Sean Landy>So now we get its goal.</v>
The Word format is more readable because it is less structured and more valuable because the transcript is easier to edit. In both cases, the content is exactly what is displayed during the meeting. The availability of the downloaded files makes it possible to edit obvious errors and add missing content before releasing a formal record of a meeting.
Guest users don’t have access to the Teams calendar app, so they can’t access the transcript once a meeting is over.
The default for transcription is to use speaker attribution. In other words, as people speak, their contributions are identified in the transcript using their name. Users can hide their identity for transcripts and live captions in the Captions and transcripts section of client settings (Figure 4).
When a user chooses not to identify themselves in transcripts, Teams inserts the generic “Speaker” attribution with a number, so the transcript contains text for “Speaker 1,” “Speaker 2,” and so on.
Like many other Teams settings, caching means that it can take a while before the option to allow or deny identification in transcripts becomes active.
Transcripts and Compliance
Microsoft’s blog says: “Teams live transcription files are stored in the meeting organizer’s Exchange Online account and only the organizer and tenant admin have permissions to delete it.” It’s certainly true that only the meeting organizer or Teams administrator can remove transcripts; the assertion that Exchange Online stores the transcripts is not.
After running a meeting to generate a transcript, I first used PowerShell to detect recent updates to folders in my Exchange Online mailbox and then the MFCMAPI utility to examine the items in those folders.
Teams stores transcript items in the ApplicationDataRoot/93c8660e-1330-4e40-8fda-fd27f9eafe10/MeetingTranscriptCollection folder in the NonIPMRoot (hidden part) of the mailbox. Each item refers to a transcript. If we examine the properties stored for the transcript, we find some JSON content (Figure 5).
Pasting the JSON into a PowerShell variable, we can see what it holds:
$json | convertfrom-json
TranscriptJsonBlob@is.Large : True
TranscriptJsonBlob@stream : True
TranscriptJsonBlob@type : Edm.String
TranscriptMetadataJsonBlob@is.Large : True
TranscriptMetadataJsonBlob@stream : True
TranscriptMetadataJsonBlob@type : Edm.String
TranscriptWordBag@is.Queryable : False
TranscriptWordBag@type : Edm.String
ThreadId@is.Queryable : True
ThreadId : 19:meeting_NWY0ZDMwZGMtZWVjYi00ZDFmLTlhYmMtNWYzOWU2NGVlY2Jh@thread.v2
ThreadId@type : Edm.String
MessageId@is.Queryable : True
MessageId : 0
MessageId@type : Edm.String
#type.ThreadId : String
#type.MessageId : String
There’s no transcript text present. Instead, we have the thread link for the meeting to bring us to the Teams data store in Azure. I suspect that the item held in Exchange is simply a pointer to the Teams data store which allows the Teams calendar app to locate the transcript and load it when required to display in meeting details.
If Exchange Online mailboxes stored transcript text, transcripts would be indexed and discoverable. No trace of text in any transcript that I generated could be found using a content search. Microsoft is therefore correct that some information about transcripts is stored in the organizer’s mailbox, but it’s not the full data. Not indexing the full text of transcripts creates a compliance gap for eDiscovery investigators which I hope Microsoft will close in the future.
Good New Feature
Overall, there’s lots to like about meeting transcription. Some people get better results than others, but experience will guide people to using better setups when transcription is important. Automated transcripts might be imperfect and include some interesting but incorrect interpretations of what people say during meetings. However, having Teams generate a transcript is a lot cheaper than having a professional transcriber listen to a meeting recording, and the output is a good start for a final record. Errors are easily fixed by editing the transcript and making that version available to attendees (and if the edited version is a Word document circulated by email or stored in OneDrive for Business or SharePoint Online, it will be discoverable).