-
Notifications
You must be signed in to change notification settings - Fork 3
Transcriber
For Transcriber implementation, we made use of the Azure Cognitive Services .Net SDK.
- It was a recommendation by HSBC.
- It has language specific SDKs instead of only providing APIs. This allowed us to call methods native to whichever language we would use.
- At the time of initializing this project, we compared multiple Intelligent API products and narrowed down to Azure Cognitive Services and Google Speech to Text API. We found Azure Cognitive Services is more mature and more supported functionalities than Google Speech to Text API. And based on our selection, we also picked C# as our implementation language to be better supported by the Microsoft Windows environment. Mid-way during the project Google API came out with a beta release of a revamped library, but we continued with Azure because we decided only when Azure did not work out would we switch to Google. And Azure did work out fine.
From the Azure Cognitive Services, for transcribing, we tried out different mechanisms Microsoft supports: pull or push, and different data format Microsoft supports: Final or Stream or Binary stream, and found Pull stream is most accurate and used it.
Also, in order for the voice identifier to determine when a new person starts talking, we tracked time offsets in milliseconds at the beginning and end of each text segment detected by the Azure Cognitive Services.
Provides transcription of meeting audio to produce a set of transcription outputs. Uses the Microsoft Azure Cognitive Services Speech SDK to perform transcription.
-
DoTranscription()Creates a set of TranscriptionOutput objects containing speaker names, timestamps, and the contents of what each speaker said. The transcription follows the the correct order, as the returned collection is a sorted list which is sorted by start offset.
Provides speaker recognition functionality via the Azure Speaker Recognition API for up to 10 speakers that are known to this instance.
-
Recognizer(controller: TranscribeController)Creates a new instance of Recognizer using the specified TranscribeController- controller- Provide access to
DiScribe.DatabaseManager.Data.Userobjects which represent potential users to recognize
- controller- Provide access to
-
DoSpeakerRecognition(transcriptionOutputs: SortedList<long, TranscriptionOutput>, apiDelayInterval: int = 3000)Recognizes a speaker from among up to 10 speakers within eachTranscriptionOutputinstance in TranscriptionOutputs. Potential speakers are the set ofDiScribe.DatabaseManager.Data.Userinstances accessed from theTranscribeController. For eachTranscriptionOutputin transcriptionOutputs, this method considers the audio segment associated with that instance. Matching is by the Azure Speaker Recognition profile GUID. If a match occurs, sets the Speaker property in eachTranscriptionOutputto represent the recognized speaker. Else, if no match is found, theTranscriptionOutputinstance is marked as unrecognized.- transcriptionOutputs- A sorted list of n transcription results with audio segments and transcribed text
- (optional) apiDelayInterval- the time between successive API requests in ms
**Presents an interface to the speaker-recognition based transcription functionality. Allows the use of a set of Voiceprints to perform transcription of a meeting audio file. Also supports emailing of a transcription file. **
-
TranscribeController(meetingRecording: FileInfo , voiceprints: List<User>, speechConfig:SpeechConfig, speakerIDSubKey:string = "b140a43050f24bef910532e6628b3484")Creates a TranscribeController instance using the specified meeting audio, list of users present in the audio, Azure Speech Recognition API configuration, and Azure Speaker Recognition API key -
Perform(lineLength:int = 120)Uses Voiceprints to perform speaker recognition while transcribing the audio file MeetingRecording. Creates a formatted text output file holding the transcription which is accessible throughMeetingMinutesFileproperty. -
WriteTranscriptionFile(rid: string = "")Writes transcription specified in MeetingMinutesFile property.