41 lines
1.5 KiB
PowerShell
41 lines
1.5 KiB
PowerShell
# Check if the System.Speech assembly is available
|
|
try {
|
|
Add-Type -AssemblyName System.Speech
|
|
} catch {
|
|
Write-Error "Windows Text-to-Speech (SAPI5) is not installed or not available. Please ensure you have Windows 10/11 with the latest updates."
|
|
exit 1
|
|
}
|
|
|
|
# Create a SpeechSynthesizer instance
|
|
$synth = New-Object System.Speech.Synthesis.SpeechSynthesizer
|
|
|
|
# Check if the synthesizer can retrieve voices
|
|
try {
|
|
# Get the list of available voices
|
|
#$voices = $synth.GetVoices()
|
|
$voices = $synth.GetInstalledVoices()|ForEach-Object { $_.VoiceInfo }
|
|
if ($voices.Count -eq 0) {
|
|
Write-Host "No TTS voices available." -ForegroundColor Yellow
|
|
} else {
|
|
Write-Host "Available TTS Voices:" -ForegroundColor Green
|
|
Write-Host "------------------------" -ForegroundColor Green
|
|
|
|
foreach ($voice in $voices) {
|
|
$voiceName = $voice.Name
|
|
$voiceInfo = $voice.Info
|
|
$language = $voiceInfo.Language
|
|
$displayName = $voiceInfo.DisplayName
|
|
$gender = $voiceInfo.Gender
|
|
Write-Host $voice.name
|
|
Write-Host "Name: $voiceName" -ForegroundColor White
|
|
Write-Host " Language: $language" -ForegroundColor Gray
|
|
Write-Host " Display Name: $displayName" -ForegroundColor Cyan
|
|
Write-Host " Gender: $gender" -ForegroundColor Magenta
|
|
Write-Host "------------------------" -ForegroundColor Green
|
|
}
|
|
}
|
|
} catch {
|
|
Write-Error "Error retrieving voices: $_"
|
|
exit 1
|
|
}
|