Wido Wirsam
Published © GPL3+

Voice Controlled Slider Projector

Old tech meets high tech. Windows 10 UWP App with speech recognizion controlls an old slide projector.

IntermediateFull instructions provided3,271

Things used in this project

Hardware components

Slide projector
Get a used one on the flee market or thrift shop.
Raspberry Pi 2 Model B
Raspberry Pi 2 Model B
Relay 2 channel
Usb microphone

Software apps and online services

Windows 10 IoT Core
Microsoft Windows 10 IoT Core

Hand tools and fabrication machines

Soldering iron (generic)
Soldering iron (generic)


Read more


Speech recognition snippet

 if (recognizer == null)


recognizer = new SpeechRecognizer();

var languages = SpeechRecognizer.SupportedGrammarLanguages;

var SysSpeech = SpeechRecognizer.SystemSpeechLanguage;


string[] possibleAnswers = { "Light on", "Light off", "on", "off", "light", "dark", "bright", "next", "previous", "forward", "back", "slideshow", "stop" };

var listConstraint = new SpeechRecognitionListConstraint(possibleAnswers, "Answer");


listenText.Text = recognizer.CurrentLanguage.DisplayName;

await recognizer.CompileConstraintsAsync();

recognizer.ContinuousRecognitionSession.Completed += ContinuousRecognitionSession_Completed;

recognizer.ContinuousRecognitionSession.ResultGenerated += ContinuousRecognitionSession_ResultGenerated;

await recognizer.ContinuousRecognitionSession.StartAsync();

GPIO/relays controlling:

private async void ContinuousRecognitionSession_ResultGenerated(SpeechContinuousRecognitionSession sender, SpeechContinuousRecognitionResultGeneratedEventArgs args)
            SpeechRecognitionResult tmpRes = args.Result;
            if (tmpRes != null && tmpRes.Status.Equals(SpeechRecognitionResultStatus.Success))
// some less relevant code removed
                  listenText.Text = tmpRes.Text;
                  if (!slideshow)
                      if (listenText.Text.Equals("Light on") || listenText.Text.Equals("on") || listenText.Text.Equals("light") || listenText.Text.Equals("bright"))
                          lightPinValue = GpioPinValue.Low;
                          LED.Fill = redBrush;
                          lightOn = true;

Complete UWP Project code

For a quick and happy compile and deploy experience.


Wido Wirsam

Wido Wirsam

2 projects • 10 followers