Method and apparatus for automatic speaker diarization
A method and an apparatus for automatic speaker diarization is provided. The method includes removing, at a call analytics server (CAS), non-speech portions from a call audio to produce a pre-processed audio, the call audio comprising speech from at least two speakers. Next, the pre-processed audio is divided, at the CAS, to multiple audio segments, each segment corresponding to speech from a single speaker of the at least two speakers. Next, the plurality of segments are clustered, at the CAS, into at least two groups corresponding the at least two speakers.
1. A method for automatic speaker diarization, the method comprising:
removing, at a call analytics server (CAS), non-speech portions from a call audio to produce a pre-processed audio, the call audio comprising speech from at least two speakers;
dividing, at the CAS, the pre-processed audio to a plurality of audio segments, each segment of the plurality of segments corresponding to speech from a single speaker of the at least two speakers, wherein the dividing comprises:
selecting a first time-window of the call audio at position i−1, and a second time-window of the call audio at position i, the second time-window equal to the first time-window in duration, and the second time-window next and adjacent to the first time-window, where i is an integer greater than 0;
calculating the Kullback-Leibler (KL) divergence measure for each of the first time-window at i−1 and the second-time window at i;
shifting the first time-window and the second window by a duration of a pre-defined time resolution to positions i+1 and i+2, respectively;
calculating the Kullback-Leibler (KL) divergence measure (D) for each of the first time-window at i+1 and the second-time window at i+2; and detecting a change point if the following conditions are met:
D ( i,i+ 1)> D ( i+ 1, i+ 2), and Condition 1:
D ( i,i+ 1)> D ( i− 1, i ), and Condition 2:
clustering, at the CAS, the plurality of segments into at least two groups corresponding the at least two speakers.
2. The method of claim 1 , further comprising receiving, at the CAS, the call audio from a call audio source.
3. The method of claim 1 , wherein the removing comprises removing portions comprising at least one of beeps, rings, silence, noise, or music.
4. The method of claim 1 , wherein the clustering comprises: deriving the mel frequency cepstral coefficients (MFCC) values for each audio segment of the plurality of audio segments; calculating numerical array with MFCC values for each audio segment; and perform a clustering technique to yield the at least two groups of audio segments.
5. An apparatus for automatic speaker diarization, the apparatus comprising:
a processor; and
a memory communicably coupled to the processor, wherein the memory comprises computer-executable instructions, which when executed using the processor, perform a method comprising:
removing, at a call analytics server (CAS), non-speech portions from a call audio to produce a pre-processed audio, the call audio comprising speech from at least two speakers,
dividing, at the CAS, the pre-processed audio to a plurality of audio segments, each segment of the plurality of segments corresponding to speech from a single speaker of the at least two speakers, wherein the dividing comprises:
selecting a first time-window of the call audio at position i−1, and a second time-window of the call audio at position i, the second time-window equal to the first time-window in duration, and the second time-window next and adjacent to the first time-window, where i is an integer greater than 0,
calculating the Kullback-Leibler (KL) divergence measure (D) for each of the first time-window at i−1 and the second-time window at i,
shifting the first time-window and the second window by a duration of a pre-defined time resolution to positions i+1 and i+2, respectively,
calculating the Kullback-Leibler (KL) divergence measure for each of the first time-window at i+1 and the second-time window at i+2, and detecting a change point if the following conditions are met:
D ( i,i+ 1)> D ( i+ 1, i+ 2), and Condition 1:
D ( i,i+ 1)> D ( i− 1, i ), and Condition 2:
clustering, at the CAS, the plurality of segments into at least two groups corresponding the at least two speakers.
6. The apparatus of claim 1 , wherein the method further comprises receiving, at the CAS, the call audio from a call audio source.
7. The apparatus of claim 1 , wherein the removing comprises removing portions comprising at least one of beeps, rings, silence, noise, or music.
8. The apparatus of claim 1 , wherein the clustering comprises: deriving the mel frequency cepstral coefficients (MFCC) values for each audio segment of the plurality of audio segments; calculating numerical array with MFCC values for each audio segment; and perform a clustering technique to yield the at least two groups of audio segments.
9. A non-transitory computer-readable storage medium, the computer-readable storage medium including instructions that when executed by a computer, cause the computer to:
remove, at a call analytics server (CAS), non-speech portions from a call audio to produce a pre-processed audio, the call audio comprising speech from at least two speakers;
divide, at the CAS, the pre-processed audio to a plurality of audio segments, each segment of the plurality of segments corresponding to speech from a single speaker of the at least two speakers, wherein the dividing comprises:
select a first time-window of the call audio at position i−1, and a second time-window of the call audio at position i, the second time-window equal to the first time-window in duration, and the second time-window next and adjacent to the first time-window, where i is an integer greater than 0;
calculate the Kullback-Leibler (KL) divergence measure for each of the first time-window at i−1 and the second-time window at i; shift the first time-window and the second window by a duration of a pre-defined time resolution to positions i+1 and i+2, respectively;
calculate the Kullback-Leibler (KL) divergence measure (D) for each of the first time-window at i+1 and the second-time window at i+2; and detect a change point if the following conditions are met:
D ( i,i+ 1)> D ( i+ 1, i+ 2), and Condition 1:
D ( i,i+ 1)> D ( i− 1, i ), and Condition 2:
cluster, at the CAS, the plurality of segments into at least two groups corresponding the at least two speakers.
10. The computer-readable storage medium of claim 9 , wherein the instructions further configure the computer to receive, at the CAS, the call audio from a call audio source.
11. The computer-readable storage medium of claim 9 , wherein the remove comprises removing portions comprising at least one of beeps, rings, silence, noise, or music.
12. The computer-readable storage medium of claim 9 , wherein the clustering comprises: derive the mel frequency cepstral coefficients (MFCC) values for each audio segment of the plurality of audio segments; calculate numerical array with MFCC values for each audio segment; and perform a clustering technique to yield the at least two groups of audio segments.