Script per mostrar noms visibles de totes les veus OneCore:
Get-ChildItem "HKLM:\SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokens" | ForEach-Object {
$keyPath = $_.PSPath
$voiceProps = Get-ItemProperty -Path $keyPath
# Cerquem DisplayName dins dels subvalors (per exemple, en-US, es-ES...)
$subkeys = Get-ChildItem -Path $keyPath -ErrorAction SilentlyContinue
$displayName = $null
foreach ($subkey in $subkeys) {
$subProps = Get-ItemProperty -Path $subkey.PSPath -ErrorAction SilentlyContinue
if ($subProps.DisplayName) {
$displayName = $subProps.DisplayName
break
}
}
[PSCustomObject]@{
VoiceId = $_.PSChildName
Name = $displayName
Path = $keyPath
}
}

PS C:\WINDOWS\system32> Get-ChildItem "HKLM:\SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokens" | ForEach-Object {
>> $keyPath = $_.PSPath
>> $voiceProps = Get-ItemProperty -Path $keyPath
>>
>> # Cerquem DisplayName dins dels subvalors (per exemple, en-US, es-ES...)
>> $subkeys = Get-ChildItem -Path $keyPath -ErrorAction SilentlyContinue
>>
>> $displayName = $null
>>
>> foreach ($subkey in $subkeys) {
>> $subProps = Get-ItemProperty -Path $subkey.PSPath -ErrorAction SilentlyContinue
>> if ($subProps.DisplayName) {
>> $displayName = $subProps.DisplayName
>> break
>> }
>> }
>>
>> [PSCustomObject]@{
>> VoiceId = $_.PSChildName
>> Name = $displayName
>> Path = $keyPath
>> }
>> }
VoiceId Name Path
------- ---- ----
MSTTS_V110_caES_Herena Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokens\MSTTS_V110_caES_Herena
MSTTS_V110_deDE_HeddaM Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokens\MSTTS_V110_deDE_HeddaM
MSTTS_V110_deDE_KatjaM Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokens\MSTTS_V110_deDE_KatjaM
MSTTS_V110_deDE_StefanM Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokens\MSTTS_V110_deDE_StefanM
MSTTS_V110_enGB_GeorgeM Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokens\MSTTS_V110_enGB_GeorgeM
MSTTS_V110_enGB_HazelM Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokens\MSTTS_V110_enGB_HazelM
MSTTS_V110_enGB_SusanM Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokens\MSTTS_V110_enGB_SusanM
MSTTS_V110_enUS_DavidM Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokens\MSTTS_V110_enUS_DavidM
MSTTS_V110_enUS_MarkM Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokens\MSTTS_V110_enUS_MarkM
MSTTS_V110_enUS_ZiraM Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokens\MSTTS_V110_enUS_ZiraM
MSTTS_V110_esES_HelenaM Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokens\MSTTS_V110_esES_HelenaM
MSTTS_V110_esES_LauraM Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokens\MSTTS_V110_esES_LauraM
MSTTS_V110_esES_PabloM Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokens\MSTTS_V110_esES_PabloM
PS C:\WINDOWS\system32>
Add-Type -AssemblyName System.Speech
$synth = New-Object System.Speech.Synthesis.SpeechSynthesizer
$synth.GetInstalledVoices() | ForEach-Object {
$_.VoiceInfo.Name
}

🔍 4. (Opcional) Llistar també les veus modernes (OneCore)
Aquestes veus (com Microsoft Aria, Microsoft Jenny) no apareixen amb System.Speech
, però pots veure-les així:
powershellCopiaModificaGet-ChildItem "HKLM:\SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokens" | ForEach-Object {
$_.GetValue("")
}

sadsd

Qwen3-235B-A22B
Perfecte! 🎉
Les veus que veus són les veus TTS (Text-to-Speech) instal·lades al teu Windows 11. I sí, les mantindras de forma estable al sistema sempre que no les desinstal·lis o restableixis el sistema a valors d’origen.
✅ Què vol dir això?
Les veus que tens actualment:
Microsoft Hazel Desktop | en-GB | Femení | Anglès del Regne Unit |
Microsoft David Desktop | en-US | Masculí | Anglès dels EUA |
Microsoft Zira Desktop | en-US | Femení | Anglès dels EUA |
Microsoft Hedda Desktop | de-DE | Femení | Alemany |
Vocalizer Expressive Jordi Harpo | ca-ES | Masculí | Català (amb motor de tercers) |
🧠 Aquestes veus són compatibles amb l’API clàssica (
System.Speech.Synthesis
) i poden ser utilitzades per programes com Narrador, Cortana, PowerShell, etc.