In the previous tip we showed how you can tap into the text to speech converter and speak out text. Here is a way to find out the installed languages on your system:

#requires -Version 2.0
Add-Type -AssemblyName System.Speech
$speak = New-Object System.Speech.Synthesis.SpeechSynthesizer
$speak.GetInstalledVoices() | 
  Select-Object -ExpandProperty VoiceInfo | 
  Select-Object -Property Culture, Name, Gender, Age

The result may look similar to this:

Culture Name                    Gender   Age
------- ----                    ------   ---
en-US   Microsoft Zira Desktop  Female Adult
en-US   Microsoft David Desktop   Male Adult
de-DE   Microsoft Hedda Desktop Female Adult

The default voice used by the synthesizer can be found like this:


Provided your system has different voices installed, here is how to select a different voice. Simply submit the name of the voice you want to use. This example uses the German voice engine on German Windows 10 systems:

#requires -Version 2.0
Add-Type -AssemblyName System.speech
$speak = New-Object System.Speech.Synthesis.SpeechSynthesizer
$speak.SelectVoice('Microsoft Hedda Desktop')
$speak.Speak('Jetzt spreche ich deutsch.')

Twitter This Tip! ReTweet this Tip!

  • Took me a sec to understand what it was that

    #requires -Version 2.0
     until I finally noticed /powershell/ in the URL. Really neat stuff. <BR>⋅ Unsure why we'd want the DE-German Voice on an EN article by no bother ;]