corwin_9879876

ESPHome voice assistant config with micro wake word (wip)

Mar 21st, 2024
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
YAML 7.03 KB | Source Code | 0 0
  1. esphome:
  2.   name: "voiceassistant-esp32-s3-2"
  3.   platformio_options:
  4.     board_build.flash_mode: dio
  5.   on_boot:
  6.     then:
  7.       - light.turn_on:
  8.           id: led_ww
  9.           red: 100%
  10.           green: 0%
  11.           blue: 0%
  12.           brightness: 50%
  13.           effect: strobe
  14.       - logger.log:
  15.           format: "Booted"
  16.           level: INFO
  17.       - wait_until:
  18.           condition:
  19.             wifi.connected:
  20.       - light.turn_on:
  21.           id: led_ww
  22.           effect: strobe
  23.           red: 100%
  24.           green: 100%
  25.           blue: 0%
  26.           brightness: 50%
  27.       - logger.log:
  28.           format: "Wifi Connected"
  29.           level: INFO
  30.       - wait_until:
  31.           condition:
  32.             api.connected:
  33.       - logger.log:
  34.           format: "API connected"
  35.           level: INFO
  36.       - micro_wake_word.start:
  37.       - logger.log:
  38.           format: "micro wake word started (on_boot)"
  39.           level: INFO
  40.       - light.turn_on:
  41.           id: led_ww
  42.           red: 0%
  43.           green: 100%
  44.           blue: 0%
  45.           brightness: 50%
  46.       - delay: 1s
  47.  
  48. esp32:
  49.   board: esp32-s3-devkitc-1
  50.   variant: esp32s3
  51.   flash_size: 16MB
  52.   framework:
  53.     type: esp-idf
  54.  
  55.     sdkconfig_options:
  56.       CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240: "y"
  57.       CONFIG_ESP32S3_DATA_CACHE_64KB: "y"
  58.       CONFIG_ESP32S3_DATA_CACHE_LINE_64B: "y"
  59.       CONFIG_AUDIO_BOARD_CUSTOM: "y"
  60.    
  61. psram:
  62.   mode: octal
  63.   speed: 80MHz
  64.  
  65. logger:
  66. # Enable Home Assistant API
  67. api:
  68.   encryption:
  69.     key: "*******"
  70.   on_client_connected:
  71.     then:
  72.       - micro_wake_word.start:
  73.       - logger.log:
  74.           format: "micro wake word started (client connected)"
  75.           level: INFO
  76.       - light.turn_on:
  77.           id: led_ww
  78.           red: 0%
  79.           green: 100%
  80.           blue: 0%
  81.           brightness: 80%
  82.       - delay: 2s
  83.       - light.turn_off: led_ww
  84.  
  85. #  on_client_disconnected:
  86. #    condition:
  87. #      not:
  88. #        api.connected:
  89. #    then:
  90. #      - voice_assistant.stop:
  91. #      - light.turn_on:
  92. #          id: led_ww
  93. #          red: 100%
  94. #          green: 0%
  95. #          blue: 0%
  96. #          brightness: 20%
  97. #          effect: "slow pulse"
  98.  
  99. ota:
  100.   password: "*****"
  101.  
  102. wifi:
  103.   ssid: !secret wifi_name
  104.   password: !secret wifi_pass
  105.  
  106.  
  107. button:
  108.   - platform: restart
  109.     name: "Restart"
  110.     id: but_rest
  111.   - platform: template
  112.     id: start_va
  113.     name: Start
  114.     on_press:
  115.       then:
  116.         - logger.log:
  117.             format: "Start_va button pressed"
  118.             level: INFO
  119.         - micro_wake_word.stop:
  120.         - voice_assistant.start:
  121.         - light.turn_on:
  122.             id: led_ww
  123.             red: 0%
  124.             green: 100%
  125.             blue: 100%
  126.             effect: scan_effect
  127.             brightness: 80%
  128.  
  129. switch:
  130.   - platform: template
  131.     id: mute
  132.     name: mute
  133.     optimistic: true
  134.     on_turn_on:
  135.       - logger.log:
  136.           format: "Mute switch on"
  137.           level: INFO
  138.       - micro_wake_word.stop:
  139.       - voice_assistant.stop:
  140.       - light.turn_on:
  141.           id: led_ww          
  142.           red: 100%
  143.           green: 0%
  144.           blue: 0%
  145.           brightness: 80%
  146.           effect: fast pulse
  147.       - delay: 2s
  148.       - light.turn_off:
  149.           id: led_ww
  150.       - light.turn_on:
  151.           id: led_ww          
  152.           red: 100%
  153.           green: 0%
  154.           blue: 0%
  155.           brightness: 60%
  156.     on_turn_off:
  157.       - logger.log:
  158.           format: "Mute switch off"
  159.           level: INFO
  160.       - micro_wake_word.start:
  161.       - light.turn_on:
  162.           id: led_ww          
  163.           red: 0%
  164.           green: 100%
  165.           blue: 0%
  166.           brightness: 60%
  167.           effect: fast pulse
  168.       - delay: 2s
  169.       - light.turn_off:
  170.           id: led_ww
  171.    
  172. light:
  173.   - platform: esp32_rmt_led_strip
  174.     id: led_ww
  175.     rgb_order: GRB
  176.     pin: GPIO14
  177.     num_leds: 24
  178.     rmt_channel: 0
  179.     chipset: WS2812
  180.     name: "on board light"
  181.     default_transition_length: 150ms
  182.     effects:
  183.       - pulse:
  184.       - pulse:
  185.           name: "Fast Pulse"
  186.           transition_length: 0.5s
  187.           update_interval: 0.5s
  188.           min_brightness: 0%
  189.           max_brightness: 80%
  190.       - pulse:
  191.           name: "Slow Pulse"
  192.           transition_length: 1.5s
  193.           update_interval: 1.5s
  194.           min_brightness: 0%
  195.           max_brightness: 80%
  196.       - addressable_scan:
  197.           name: scan_effect
  198.           move_interval: 50ms
  199.           scan_width: 3
  200.       - strobe:
  201.  
  202.  # Audio and Voice Assistant Config      
  203.  
  204. i2s_audio:
  205.   - id: i2s_in
  206.     i2s_lrclk_pin: 17 #WS  
  207.     i2s_bclk_pin: 16 #SCK
  208.   - id: i2s_out
  209.     i2s_lrclk_pin: 18 #LRC
  210.     i2s_bclk_pin: 8 #BCLK  
  211.  
  212. microphone:
  213.   - platform: i2s_audio
  214.     id: va_mic
  215.     i2s_audio_id: i2s_in
  216.     adc_type: external
  217.     i2s_din_pin: 15 #SD  
  218.     pdm: false
  219.     bits_per_sample: 32bit
  220.     channel: left
  221.  
  222. speaker:
  223.   - platform: i2s_audio
  224.     id: va_spk
  225.     dac_type: external
  226.     i2s_audio_id: i2s_out
  227.     i2s_dout_pin: 7 #DIN  
  228.     mode: mono
  229.    
  230. micro_wake_word:
  231.   on_wake_word_detected:
  232.     - logger.log:
  233.         format: "wake word detected"
  234.         level: INFO
  235.     - micro_wake_word.stop:
  236.     - logger.log:
  237.         format: "wake word stopped (wake_word_detected block)"
  238.         level: INFO
  239.     - voice_assistant.start:
  240.     - light.turn_on:
  241.         id: led_ww          
  242.         red: 0%
  243.         green: 100%
  244.         blue: 100%
  245.         brightness: 100%
  246.         effect: scan_effect
  247.   model: okay_nabu
  248. #  model: hey_jarvis
  249.    
  250. voice_assistant:
  251.   id: va
  252.   microphone: va_mic
  253.   speaker: va_spk
  254.   noise_suppression_level: 4.0
  255.   volume_multiplier: 4.0
  256.   auto_gain: 31dBFS
  257.   on_stt_end:
  258.        then:
  259.          - micro_wake_word.stop:
  260.          - logger.log:
  261.              format: "wake word stopped (on_sst_end block)"
  262.              level: INFO
  263.          - light.turn_off: led_ww
  264.          - logger.log:
  265.              format: "I heard : %s"
  266.              args: ['x.c_str()']
  267.              level: INFO
  268.   on_error:
  269.         then:
  270.           - micro_wake_word.start:
  271.           - logger.log:
  272.               format: "wake word started (on_error block)"
  273.               level: INFO
  274.           - light.turn_on:
  275.               id: led_ww
  276.               red: 100%
  277.               brightness: 60%
  278.               effect: pulse
  279.           - delay: 1s
  280.           - light.turn_off: led_ww
  281.   on_end:
  282.         then:
  283.           - logger.log:
  284.               format: "on_end occured"
  285.               level: INFO
  286.           - light.turn_on:
  287.               id: led_ww
  288.               blue: 100%
  289.               green: 100%
  290.               brightness: 100%
  291.               effect: strobe
  292.           - delay: 1s
  293.           - light.turn_off: led_ww
  294.           - wait_until:
  295.               not:
  296.                 voice_assistant.is_running:
  297.           - logger.log:
  298.               format: "voice_assistant not running (on_end block)"
  299.               level: INFO
  300.           - micro_wake_word.start:
  301.           - logger.log:
  302.               format: "wake word started (on_end block)"
  303.               level: INFO
  304.  
  305.  
  306.  
Advertisement
Add Comment
Please, Sign In to add comment