This looks like a typical task of detecting components of a mixture distribution with an umbrella topic being finite mixture models. If you use R, you don't need to implement K-means or other clustering algorithms, as there are enough existing packages that already do that and more.
One of the most popular one - mixtools
package (http://cran.r-project.org/web/packages/mixtools) - contains function normalmixEM
, which is based on Expectation-Maximization algorithm and can be used to fit your data to a mixture of normal distributions. For more details and examples, see the package documentation and this blog post: http://exploringdatablog.blogspot.com/2011/08/fitting-mixture-distributions-with-r.html. You may find beneficial to read a brief introduction to mixture distributions prior to reading the above-mentioned post: http://exploringdatablog.blogspot.com/2011/06/brief-introduction-to-mixture.html.
Other related packages include rebmix
(http://cran.r-project.org/web/packages/rebmix), flexmix
(http://cran.r-project.org/web/packages/flexmix) and mclust
(for detailed information, please see http://www.stat.washington.edu/mclust and http://cran.r-project.org/web/packages/mclust).
Performing a goodness-of-fit test for estimating a mixture of normal distributions has been frequently discussed on Cross Validated. For example, check this discussion: Goodness of fit test for a mixture in RGoodness of fit test for a mixture in R.
Finally, the following paper might be of your interest, as it addresses the intersection of both topics, related to your question - mixture analysis and speaker identification. I hope that you will find it useful: http://smtp.intjit.org/journal/volume/12/7/127_2.pdf.