ESP32 with Assist doesn't like women's voices

so… i have a little problem, or rather, i can’t set a “voice”.
I use an ESP32 with voice assistant that transmits the answers to an external media player.
Conversation agent: Chat GPT
Voice recognition: Home Assistant CLoud.
Speech synthesis: Home Assistant Cloud.

The problem is that if I change the type of voice, from a female to a male, the answers always come from a male voice. (normally I just change the Speech synthesis voice from male to famale)
(Instead on my Echo Atom M5 stack I have no problem and the voice changes)

Where am I going wrong?

This is part of my configuration regarding the configuration:

binary_sensor:
  - platform: status
    name: API Connection
    id: api_connection
    filters:
      - delayed_on: 1s
    on_press:
      - if:
          condition:
            switch.is_on: use_wake_word
          then:
            - voice_assistant.start_continuous:
    on_release:
      - if:
          condition:
            switch.is_on: use_wake_word
          then:
            - voice_assistant.stop:

switch:
  - platform: template
    name: Use wake word
    id: use_wake_word
    optimistic: true
    restore_mode: RESTORE_DEFAULT_ON
    entity_category: config
    on_turn_on:
      - lambda: id(va).set_use_wake_word(true);
      - if:
          condition:
            not:
              - voice_assistant.is_running
          then:
            - voice_assistant.start_continuous

    on_turn_off:
      - voice_assistant.stop
      - lambda: id(va).set_use_wake_word(false);

microphone:
  - platform: i2s_audio
    adc_type: external
    pdm: false
    id: mic_i2s
    channel: right
    bits_per_sample: 32bit
    i2s_audio_id: i2s_in
    i2s_din_pin: GPIO32

speaker:
  - platform: i2s_audio
    id: my_speaker
    dac_type: external
    i2s_dout_pin: GPIO33   #DIN
    i2s_mode: primary
    i2s_audio_id: i2s_in


voice_assistant:
  microphone: mic_i2s
  id: va
  noise_suppression_level: 2
  auto_gain: 31dBFS
  volume_multiplier: 5.0
  use_wake_word: false
  speaker: my_speaker

  on_tts_start:
    - homeassistant.service:
        service: tts.cloud.say
        data:
          entity_id: media_player.arylica30_amp
        data_template:
          message: "{{ my_stt }}"
        variables:
          my_stt: return x;


  on_error:
   - if:
        condition:
          switch.is_on: use_wake_word
        then:
          - switch.turn_off: use_wake_word
          - switch.turn_on: use_wake_word

  on_client_connected:
    - if:
        condition:
          switch.is_on: use_wake_word
        then:
          - voice_assistant.start_continuous:

  on_client_disconnected:
    - if:
        condition:
          switch.is_on: use_wake_word
        then:
          - voice_assistant.stop:

Thanks

You might have gotten one of the defective ones that were made to be sexist! At least you didnt get one of the racist ones that screams back at you like they were the German Chancellor back in 1939… You know, the little mustache guy! I hear those devices are mean as hell!

1 Like