Veus disponibles

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

profile

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 Desktopen-GBFemeníAnglès del Regne Unit
Microsoft David Desktopen-USMasculíAnglès dels EUA
Microsoft Zira Desktopen-USFemeníAnglès dels EUA
Microsoft Hedda Desktopde-DEFemeníAlemany
Vocalizer Expressive Jordi Harpoca-ESMasculí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.


💾 Seran estables? Sí 👍