* Default agent as entity
* Migrate constant to point at new value
* Fix tests
* Fix more tests
* Move assist pipeline back to cloud after dependenceis
Co-authored-by: Sid <27780930+autinerd@users.noreply.github.com>
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
* Deconflict based on wake word
* Undo test
* Make wake up key a string, rename error
* Update snapshot
* Change to "wake word phrase" and normalize
* Move normalization into the wake provider
* Working on describe
* Use satellite info to resolve wake word phrase
* Add test for wake word phrase
* Match phrase with model name in wake word provider
* Check model id
* Use one constant wake word cooldown
* Update homeassistant/components/assist_pipeline/error.py
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Fix wake word tests
---------
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Migrate cloud stt to config entry
* Update default engine
* Test config flow
* Migrate pipelines with cloud stt engine to new engine id
* Fix test after rebase
* Update and add comment
* Remove cloud specifics from default stt engine
* Refactor cloud assist pipeline
* Fix cloud stt entity_id
* Try to wait for platforms before creating default pipeline
* Clean up import
* Move function in cloud assist pipeline
* Wait for tts platform loaded in stt migration
* Update deprecation dates
* Clean up not used fixture
* Add test for async_update_pipeline
* Define pipeline update interface better
* Remove leftover
* Fix tests
* Change default engine test
* Add test for missing stt entity during login
* Add and update comments
* Update config entry title
* Add websocket command to capture audio from a device
* Update homeassistant/components/assist_pipeline/pipeline.py
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Add device capture test
* More tests
* Add logbook
* Remove unnecessary check
* Remove seconds and make logbook message past tense
---------
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Add ATTR_PREFERRED_FORMAT to TTS for auto-converting audio
* Move conversion into SpeechManager
* Handle None case for expected_extension
* Only use ATTR_AUDIO_OUTPUT
* Prefer MP3 in pipelines
* Automatically convert to mp3 on demand
* Add preferred audio format
* Break out preferred format
* Add ATTR_BLOCKING to allow async fetching
* Make a copy of supported options
* Fix MaryTTS tests
* Update ESPHome to use "wav" instead of "raw"
* Clean up tests, remove blocking
* Clean up rest of TTS tests
* Fix ESPHome tests
* More test coverage
* Delay import of webrtc to avoid blocking start up if package is missing
* Update homeassistant/components/assist_pipeline/pipeline.py
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Update homeassistant/components/assist_pipeline/vad.py
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
---------
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Use webrtc-noise-gain instead of webrtcvad package
* Switching to ProcessedAudioChunk
* Refactor VAD and fix tests
* Add vad no chunking test
* Add test that runs audio enhancements
* Add pipeline option to save wake/stt audio to media
* Add debug_recording_dir to assist_pipeline YAML config
* Clean up and additional tests
* Remove I/O in event loop
* Organize saved audio by pipeline name and device id
* Record wake/stt debug audio in separate thread
* Fix after rebase
* Use timestamp instead of pipeline id for directory name
* Add WAV write error test
* Join thread in executor
* Make arguments for async_pipeline_from_audio_stream keyword-only after hass
* Use a bytearray ring buffer
* Move generator outside
* Move stt stream generator outside
* Clean up execute
* Refactor VAD to use bytearray
* More tests
* Refactor chunk_samples to be more correct and robust
* Change AudioBuffer to use append instead of setitem
* Cleanup
---------
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Add wake component
* Add wake support to Wyoming
* Add helper function to assist_pipeline (not complete)
* Rename wake to wake_word
* Fix platform
* Use send_event and clean up
* Merge wake word into pipeline
* Add wake option to async_pipeline_from_audio_stream
* Add start/end stages to async_pipeline_from_audio_stream
* Add wake timeout
* Remove layer in wake_output
* Use VAD for wake word timeout
* Include audio metadata in wake-start
* Remove unnecessary websocket command
* wake -> wake_word
* Incorporate feedback
* Clean up wake_word tests
* Add wyoming wake word tests
* Add pipeline wake word test
* Add last processed state
* Fix tests
* Add tests for wake word
* More tests for the codebot
* Automaticially create an assist pipeline using cloud stt + tts
* Return the id of the cloud enabled pipeline
* Wait for platforms to load
* Fix typing
* Fix startup race
* Update tests
* Create a cloud pipeline only when logging in
* Fix tests
* Tweak _async_resolve_default_pipeline_settings
* Improve assist_pipeline test coverage
* Improve cloud test coverage