Projet voice control

De retour…
Mes branchements on l’air OK (le système m’entend…même si il ne me comprend pas)
Par contre pas de retour sur le HP et on dirait que le service s’arrête après le 1er essai.
Voici ma config pour Assist:


[16:56:25][D][voice_assistant:422]: State changed from STREAMING_MICROPHONE to IDLE
[16:56:25][D][voice_assistant:428]: Desired state set to IDLE
[16:56:25][D][voice_assistant:422]: State changed from IDLE to START_PIPELINE
[16:56:25][D][voice_assistant:428]: Desired state set to START_MICROPHONE
[16:56:25][D][voice_assistant:206]: Requesting start...
[16:56:25][D][voice_assistant:422]: State changed from START_PIPELINE to STARTING_PIPELINE
[16:56:25][D][voice_assistant:443]: Client started, streaming microphone
[16:56:25][D][voice_assistant:422]: State changed from STARTING_PIPELINE to STREAMING_MICROPHONE
[16:56:25][D][voice_assistant:428]: Desired state set to STREAMING_MICROPHONE
[16:56:25][D][voice_assistant:529]: Event Type: 1
[16:56:25][D][voice_assistant:532]: Assist Pipeline running
[16:56:25][D][voice_assistant:529]: Event Type: 9
[16:56:28][D][voice_assistant:529]: Event Type: 10
[16:56:28][D][voice_assistant:538]: Wake word detected
[16:56:28][D][voice_assistant:529]: Event Type: 3
[16:56:28][D][voice_assistant:543]: STT started
[16:56:29][D][voice_assistant:529]: Event Type: 11
[16:56:29][D][voice_assistant:680]: Starting STT by VAD
[16:56:30][D][voice_assistant:529]: Event Type: 12
[16:56:30][D][voice_assistant:684]: STT by VAD end
[16:56:30][D][voice_assistant:422]: State changed from STREAMING_MICROPHONE to STOP_MICROPHONE
[16:56:30][D][voice_assistant:428]: Desired state set to AWAITING_RESPONSE
[16:56:30][D][voice_assistant:422]: State changed from STOP_MICROPHONE to STOPPING_MICROPHONE
[16:56:30][D][voice_assistant:422]: State changed from STOPPING_MICROPHONE to AWAITING_RESPONSE
[16:56:31][D][voice_assistant:529]: Event Type: 4
[16:56:31][D][voice_assistant:557]: Speech recognised as: " à l'une garage."
[16:56:31][D][voice_assistant:529]: Event Type: 5
[16:56:31][D][voice_assistant:562]: Intent started
[16:56:31][D][voice_assistant:529]: Event Type: 6
[16:56:31][D][voice_assistant:529]: Event Type: 7
[16:56:31][D][voice_assistant:585]: Response: "Désolé, je n'ai pas compris"
[16:56:31][D][voice_assistant:529]: Event Type: 2
[16:56:32][D][voice_assistant:619]: Assist Pipeline ended
[16:56:32][D][i2s_audio.speaker:161]: Starting I2S Audio Speaker
et mon code esphome:
esphome:
  name: jarvis1
  friendly_name: jarvis
  on_boot:
     - priority: -100
       then:
         - wait_until: api.connected
         - delay: 1s
         - if:
             condition:
               switch.is_on: use_wake_word
             then:
               - voice_assistant.start_continuous:

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

ota:
  password: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  manual_ip:
    static_ip: 192.168.xxxxx
    gateway: 192.168.0.254
    subnet: 255.255.255.0

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Jarvis1 Fallback Hotspot"
    password: "xxxxxxxxxx"


i2s_audio:
  - id: i2s_out
    i2s_lrclk_pin: GPIO26
    i2s_bclk_pin: GPIO27
  - id: i2s_in
    i2s_lrclk_pin: GPIO13
    i2s_bclk_pin: GPIO12

microphone:
  - platform: i2s_audio
    i2s_audio_id: i2s_in
    id: mic
    i2s_din_pin: GPIO21
    adc_type: external
    pdm: false

speaker:
  - platform: i2s_audio
    i2s_audio_id: i2s_out
    id: big_speaker
    i2s_dout_pin: GPIO25
    dac_type: external
    mode: mono

voice_assistant:
  microphone: mic
  use_wake_word: true
  noise_suppression_level: 2
  auto_gain: 31dBFS
  volume_multiplier: 2.0
  speaker: big_speaker
  id: assist

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(assist).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(assist).set_use_wake_word(false);


HA à jour sur VM dsm7 (proc Xénon et 12gb de ram)

Exactement le même problème de mon côté, je n’ai pas trouvé de solution pour le moment :confused:

Ca du mal avec le français :rofl:

Allume escalier est reconnu comme " Alhum Escarrey". C’est pas gagné avec une détection pareille .

[10:40:18][D][voice_assistant:422]: State changed from STOPPING_MICROPHONE to AWAITING_RESPONSE
[10:40:42][D][voice_assistant:529]: Event Type: 4
[10:40:42][D][voice_assistant:557]: Speech recognised as: " Alhum Escarrey"
[10:40:42][D][voice_assistant:529]: Event Type: 5
[10:40:42][D][voice_assistant:562]: Intent started
[10:40:42][D][voice_assistant:529]: Event Type: 6
[10:40:42][D][voice_assistant:529]: Event Type: 7
[10:40:42][D][voice_assistant:585]: Response: "Désolé, je n'ai pas compris"

comme pour @Lolobuc54 , allume garage reconnu en " à l’une garage." :rofl:

est-ce que tu penses qu’il y aurait une solution pour remédier à cela ?
Je pense par exemple au projet jarvis sur rpi, la reconnaissance vocale était entrainée par les utilisateurs avant de télécharger la voix de jarvis

Je saurais te dire, je me suis pas pencher sur une solution. Pour moi c’est pas stable , prêt , a être utiliser. Patienter, qui est des améliorations, mais pour un RPI4 chez pas si c’est une bonne voie a prendre.

Alors après plusieurs tests, j’ai réussis à avoir quelque chose de stable en gardant la langue française.
Dans la configuration de whisper j’ai réglé comme modèle « small-int8 » et dans Beam size j’ai mis la valeur à « 5 ».
Résultat, la compréhension de l’assistant est vachement meilleur même s’il a encore un peu de mal avec le mot « éteint »

Je testerai ça de mon côté, demain.
C’est plus une occupation hivernale qu’une priorité, donc si il faut patienter!

1 « J'aime »

Bonsoir à tous ! Merci pour cet echznge hper intéressant.
Après avoir suivi le tuto vidéo, j’en arrive au point où le satellite réagit 1 pois puis semble ne plus reagir. Comment avez vous réglé le problème ?
Pour info, je n’ai pas séparé les deux i2s dans mon code.

Merci d’avance pour le partage d’expérience !

Chapeau, j’avais pas vu les options de configuration de whisper et j’avais langue sur en :rofl:
J’ai mis en FR et small-int8. j’ai pas modif en 5 Beam Size, j’ai laisser sur 1.

Au premier essai, ca a fonctionner :+1:

[03:24:05][D][voice_assistant:422]: State changed from STOPPING_MICROPHONE to AWAITING_RESPONSE
[03:24:24][D][voice_assistant:529]: Event Type: 4
[03:24:24][D][voice_assistant:557]: Speech recognised as: " Allume escalier"
[03:24:24][D][voice_assistant:529]: Event Type: 5
[03:24:24][D][voice_assistant:562]: Intent started
[03:24:25][D][voice_assistant:529]: Event Type: 6
[03:24:25][D][voice_assistant:529]: Event Type: 7
[03:24:25][D][voice_assistant:585]: Response: "Allumé"

Bravo pour c’est soluce @T_R

Moi j’avais mis en mode « en » pour faire des tests en anglais mais j’avais oublié de le repasser en français je trouvais ça bizarre que dans le debbug les mots soit en anglais :joy:

1 « J'aime »

Ca fonctionne toujours mieux avec les bons paramètres :wink:

Je n’ai pas de RPI sous la main, mais j’ai enfin pris le temps de tester Vosk à la place de faster-whisper et c’est impressionnant ( comme toujours vu que c’est Mike alias Synesthesiam qui est au commande).
La rapidité de traitement sur mon i3/8Go est incomparable par rapport à faster-whisper…et même dans la langue de Molière.

Si l’un d’entre-vous tourne sur RPI et peux tester afin de me faire retour pour ma culture personnelle…

@+

ps : vosk est disponible dans les modules complémentaires

Je teste dès que je reçois mais nouveaux esp…j’ai l’impréssion que celui que j’ai ,fait comme bon lui semble :joy:.

1 « J'aime »

tu utilises quelle version de l’addon (Rhasspy 3 ou 2) ?

Ce n’est pas rhasspy mais vosk ( du même dev)
Dans la conf, le strict minimum ( allow unknow) fais déjà très bien le taff. 1 seconde tout au plus entre la fin de la commande vocale et l’action correspondante :open_mouth:

Installation

Follow these steps to get the add-on installed on your system:

  1. Navigate in your Home Assistant frontend to SettingsAdd-onsAdd-on store.
  2. Add the store GitHub - rhasspy/hassio-addons: Add-ons for Home Assistant's Hass.IO
  3. Find the « vosk » add-on and click it.
  4. Click on the « INSTALL » button.

Si je te suis, on installe vosk par addon et on remplace faster-whisper par vosk dans reconnaissance vocale (STT) ?

Oui, tout à fait.
Soit tu remplace dans ton assistant actuel Faster-whisper par Vosk, soit tu créé un autre assistant avec Vosk pour le STT.
Une fois le module installé, tout comme pour Piper/Faster-Whisper, une intégration va être découverte pour ajouter Vosk à Wyoming.

Je suis bluffé par la rapidité, c’est aussi réactif que le STT de Nabu-Casa. A voir si cela se confirme sur RPI

@+

1 « J'aime »

Bonjour,
Je viens de tester vosk en FR sur RPI4, c’est nettement plus rapide que faster-whisper en effet.
Environ 2 secondes :wink:

Bob

2 « J'aime »

Hello Voisin :wink:

Merci pour ce rapide retour.
C’est bizarre que Nabu n’ai pas mis encore en avant cette solution. Ils vont peut-^tre le faire demain lors du chapitre 5.

Bonne journée

@+

1 « J'aime »

J’ai essayer vosk aussi sur RPI4 4Go, ca marche mieux que faster-whisper et c’est plus rapide.
En 2s ca répond, et ca mange moins de RAM et de ressource proc aussi. Ca deviens intéressant, même avec un ATOM echo :wink:

1 « J'aime »

Il reste à trouver un bon réseau de microphone compatible ESP32 qui fasse le beamforming, AEC et touti-quanti pour différencier la commande des autre voix dans un environnement « pollué » pour que Google Nest , Amazon Echo et consorts finissent au fond du placard.

Affaire à suivre donc …

1 « J'aime »