0

In the voice list output by say -v ?, some names can speak multiple languages. (The answers on this question only deal with single-language voices.) A subset of what I see includes:

Sandy (German (Germany)) de_DE    # Hallo! Ich heiße Sandy.
Sandy (English (UK)) en_GB    # Hello! My name is Sandy.
Sandy (English (US)) en_US    # Hello! My name is Sandy.
Sandy (Spanish (Spain)) es_ES    # ¡Hola! Me llamo Sandy.
Sandy (Spanish (Mexico)) es_MX    # ¡Hola! Me llamo Sandy.
Sandy (Finnish (Finland)) fi_FI    # Hei! Nimeni on Sandy.
Sandy (French (Canada)) fr_CA    # Bonjour! Je m’appelle Sandy.
Sandy (French (France)) fr_FR    # Bonjour, je m’appelle Sandy.
Sandy (Italian (Italy)) it_IT    # Ciao! Mi chiamo Sandy.
Sandy (Portuguese (Brazil)) pt_BR    # Olá, meu nome é Sandy.
Sara                da_DK    # Hej, jeg hedder Sara. Jeg er en dansk stemme.
Satu                fi_FI    # Hei, minun nimeni on Satu. Olen suomalainen ääni.
Shelley (German (Germany)) de_DE    # Hallo! Ich heiße Shelley.
Shelley (English (UK)) en_GB    # Hello! My name is Shelley.
Shelley (English (US)) en_US    # Hello! My name is Shelley.
Shelley (Spanish (Spain)) es_ES    # ¡Hola! Me llamo Shelley.
Shelley (Spanish (Mexico)) es_MX    # ¡Hola! Me llamo Shelley.
Shelley (Finnish (Finland)) fi_FI    # Hei! Nimeni on Shelley.
Shelley (French (Canada)) fr_CA    # Bonjour! Je m’appelle Shelley.
Shelley (French (France)) fr_FR    # Bonjour, je m’appelle Shelley.
Shelley (Italian (Italy)) it_IT    # Ciao! Mi chiamo Shelley.
Shelley (Portuguese (Brazil)) pt_BR    # Olá, meu nome é Shelley.

But say -v Shelley es_ES "Hola amigos" doesn't work, and actually neither does say -v Shelley "Hi there"; both fail with a repeated error like:

2023-04-14 16:15:34.968 say[96121:9557619] Could not retrieve voice [AVSpeechSynthesisProviderVoice 0x60000092cf00] Name: Shelley, Identifier: com.apple.eloquence.en-GB.Shelley, Supported Languages (
    "en-GB"
), Age: 0, Gender: 0, Size: 0, Version: (null)

How do I use this voice and specify which language I want?

1 Answer 1

1

The LANG variable defines the locale so you need to set that first (assuming bash or zsh - you export it) then issue your say

export LANG=es_ES
say -v Shelley "Hola amigos"

My LANG was en_US.UTF-8 initially, so you can echo $LANG to inspect that before performing the export above... However, I don't actually need the export and Shelley knows how to say "Hola Amigos" and "Hi there" without setting any variable.

I wonder if your say or setup is somehow customized to cause the errors and failure to speak. I'm on a basic / pretty clean macOS Ventura

  • ProductVersion: 13.3.1
  • BuildVersion: 22E261

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .