title: How to automatically transcribe a Skype meeting, correctly attributed to each participant?
body: <p>Assuming each participant agrees to the recording and transcription of the Skype call, is there a way to transcribe the meeting (either live or offline or both) such that it produces a text transcript where each spoken text is correctly attributed to the speaker.  The transcript could then be input to any variety of search or NLP algorithms.  </p>
  
  <p>The top 3 Google search hits of "automatically transcribe Skype" refer to apps which make <strong>manual</strong> transcription easier:</p>
  
  <p>(1) <a href="http://www.dummies.com/how-to/content/how-to-convert-skype-audio-to-text-with-transcribe.html" rel="nofollow">http://www.dummies.com/how-to/content/how-to-convert-skype-audio-to-text-with-transcribe.html</a></p>
  
  <p>(2) <a href="http://ask.metafilter.com/231400/How-to-record-and-transcribe-Skype-conversation" rel="nofollow">http://ask.metafilter.com/231400/How-to-record-and-transcribe-Skype-conversation</a></p>
  
  <p>(3) <a href="https://www.ttetranscripts.com/blog/how-to-record-and-transcribe-your-skype-conversations" rel="nofollow">https://www.ttetranscripts.com/blog/how-to-record-and-transcribe-your-skype-conversations</a></p>
  
  <p>While it would be trivial to record the audio and send it to a speech-to-text engine, I doubt it would be very high quality because the best results are usually speaker dependent models (else we wouldn't have to take time to train Dragon Naturally Speaking).  </p>
  
  <p>But, before we can choose speaker dependent transcription models, we need to know which segment of the audio belongs to which speaker.  There's 2 ways that this is solved:</p>
  
  <ol>
  <li><p>There is an easy way to retrieve all the audio that came from each participant, e.g. you just record all the audio from each speaker's microphone during the call, and you don't have to do any segmentation.  </p></li>
  <li><p>In case the first option isn't feasible or prohibitive in some way, we have to use a Speaker Diarization algorithm, which segments the audio into N clusters/speakers (most algorithms allow for being told how many speakers in the audio, but some can figure this out on their own).  For real-time transcript as the call goes on, I imagine we'd need some fancy Real Time Speaker Diarization algorithm.  </p></li>
  </ol>
  
  <p>In any case, once the segmentation is solved, each participant has their trained speaker model, which is then applied to their portions of the audio.  At the end of the day, everyone gets a nice conversation transcript and later one we can do fancy things like topic analysis or maybe Big Brother wants to sift over everyone's project meetings without having to listen to hours of audio.  </p>
  
  <p>My question is, what would be a way to implement this in practice?  </p>