Windows: Using Windows text to speech feature with powershell

Hi,

Windows has a builtin feature to convert text to speech and play it over the speakers. This can be used in powershell by using the System.Speech namespace.

First of all include the namespace

PS D:\> Add-Type -AssemblyName System.Speech

Then create an instance of the SpeechSynthesizer class

PS D:\> $SpeechEngine = New-Object System.Speech.Synthesis.SpeechSynthesizer

Make a first test

PS D:\> $SpeechEngine.Speak("Passt schon")

Get all installed language details

PS D:\> $SpeechEngine.GetInstalledVoices() | Select-Object -ExpandProperty VoiceInfo
Gender                : Male
Age                   : Adult
Name                  : Microsoft David Desktop
Culture               : en-US
Id                    : TTS_MS_EN-US_DAVID_11.0
Description           : Microsoft David Desktop - English (United States)
SupportedAudioFormats : {}
AdditionalInfo        : {[Age, Adult], [Gender, Male], [Language, 409], [Name, Microsoft David Desktop]...}

Gender                : Female
Age                   : Adult
Name                  : Microsoft Zira Desktop
Culture               : en-US
Id                    : TTS_MS_EN-US_ZIRA_11.0
Description           : Microsoft Zira Desktop - English (United States)
SupportedAudioFormats : {}
AdditionalInfo        : {[Age, Adult], [Gender, Female] , [Language, 409], [Name, Microsoft Zira Desktop]...}

Select the voice which fits your needs (must be supported bei the installed language)

PS D:\> [System.enum]::GetNames([System.Speech.Synthesis.VoiceGender])
NotSet
Male
Female
Neutral
PS D:\> [System.enum]::GetNames([System.Speech.Synthesis.VoiceAge])
NotSet
Child
Teen
Adult
Senior

Set the output details

PS D:\> $SpeechEngine.SelectVoiceByHints([System.Speech.Synthesis.VoiceGender]::Female,[System.Speech.Synthesis.VoiceAge]::Adult,1,"en-US")

Show whats set

PS D:\> $SpeechEngine.voice


Gender                : Female
Age                   : Adult
Name                  : Microsoft Zira Desktop
Culture               : en-US
Id                    : TTS_MS_EN-US_ZIRA_11.0
Description           : Microsoft Zira Desktop - English (United States)
SupportedAudioFormats : {}
AdditionalInfo        : {[Age, Adult], [Gender, Female], [Language, 409], [Name, Microsoft Zira Desktop]...}

Additional languages can be installed by download the Language pack DVD. For example german

PS D:\> Dism /online /Add-Capability /capabilityname:Language.Speech~~~de-de~0.0.1.0 /source:D:\LanguagesAndOptionalFeatures
PS D:\> Dism /online /Add-Capability /capabilityname:Language.TextToSpeech~~~de-de~0.0.1.0 /source:D:\LanguagesAndOptionalFeatures

Or from the Microsoft store.

Michael

Advertisment to support michlstechblog.info

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.