Microsoft Speaker Recognition API: Windows Client Library & Sample
This repo contains the Windows client library & sample for the Microsoft Speaker Recognition API, an offering within Microsoft Cognitive Services, formerly known as Project Oxford.
The sample includes three applications:
- two Windows WPF applications to demonstrate the use of identification and verification features of Speaker Recognition API for single-speaker short audios.
- a Windows WPF application to demonstrate an approach to use identification on potentially longer audios that contain multiple speakers by streaming a few seconds at a time.
Build the sample
- Starting in the folder where you clone the repository (this folder)
- In a git command line tool, type
git submodule init(or do this through a UI)
- Pull in the shared Windows code by calling
git submodule update
- Start Microsoft Visual Studio 2015 and select
File > Open > Project/Solution.
- For speaker identification, starting in the folder where you clone the repository, go to
SpeakerRecognition > Windows > Identificationfolder. For speaker verification, starting in the folder where you clone the repository, go to
SpeakerRecognition > Windows > Verificationfolder. For speaker steaming, starting in the folder where you clone the repository, go to
SpeakerRecognition > Windows > Streamingfolder.
- Double-click the Visual Studio 2015 Solution (.sln) file.
- Press Ctrl+Shift+B, or select
Build > Build Solution.
Run the sample
After the build is complete, press F5 to run the sample.
First, you must obtain a Speaker Recognition API subscription key by following the instructions on our website.
Locate the text edit box saying "Paste your subscription key here to start". Paste your subscription key. You can choose to persist your subscription key in your machine by clicking the "Save Key" button. When you want to delete the subscription key from the machine, click "Delete Key" to remove it from your machine.
Click on "Select Scenario" to use samples of different scenarios, and follow the instructions on screen.
Streaming Audio File
- Start with the "Enroll Speakers" scenario to prepare the speakers you will identify against.
- In the "Stream File" scenario, Press "Load File" button and load your audio file.
- Select the profiles you want to use as candidate speakers.
- Control the number of seconds used with each identification request by tuning the "window size".
- Control the number of seconds between each identification request through tuning the "step size".
- Press "Stream" button and monitor the results of the streaming process.
Make sure that the number of requests per minute resulting from tunning the step size won't exceed your subscription's rate limit.
For example, applying a step size of 1 on an audio file of size 1 minute will result in 60 requests. Applying a step size of 2 on the same audio file will result in 30 requests.
For your convenience, we have provided sample audios to enroll 2 speakers and a sample audio for streaming. These audios are found under
We welcome contributions. Feel free to file issues and pull requests on the repo and we'll address them as we can. Learn more about how you can help on our Contribution Rules & Guidelines.
You can reach out to us anytime with questions and suggestions using our communities below:
All Microsoft Cognitive Services SDKs and samples are licensed with the MIT License. For more details, see LICENSE.
Sample images are licensed separately, please refer to LICENSE-IMAGE.