Michael Hansen
a52761171f
No cooldown when wake words have the same id ( #101846 )
...
* No cooldown when wake words have the same id
* Use wake word entity id in cooldown decision
2023-10-23 13:12:34 -04:00
Michael Hansen
257686fcfe
Dynamic wake word loading for Wyoming ( #101827 )
...
* Change supported_wake_words property to async method
* Add test
* Add timeout + test
---------
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2023-10-11 10:21:32 -07:00
Michael Hansen
244f6d8002
Add wake word cooldown to avoid duplicate wake-ups ( #101417 )
2023-10-06 09:18:35 +02:00
Michael Hansen
e6504218bc
Pipeline runs are only equal with same id ( #101341 )
...
* Pipeline runs are only equal with same id
* Use dict instead of list in PipelineRuns
* Let it blow up
* Test
* Test rest of __eq__
2023-10-03 16:52:31 -05:00
Michael Hansen
cc7e35e299
Increase pipeline timeout to 5 minutes ( #101327 )
2023-10-03 19:41:00 +02:00
Erik Montnemery
a9bcfe5700
Abort wake word detection when assist pipeline is modified ( #100918 )
2023-09-26 20:24:55 +02:00
Erik Montnemery
734c4e8e32
Rename WakeWord.ww_id to WakeWord.id ( #100903 )
...
* Rename WakeWord.ww_id to WakeWord.wake_word_id
* Revert unrelated changes
* Rename to id
* Correct rebase
2023-09-26 19:12:16 +02:00
Erik Montnemery
1e76d37cee
Rename PipelineData.pipeline_runs to pipeline_debug ( #100907 )
2023-09-26 11:35:51 +02:00
Michael Hansen
785618909a
Use webrtc-noise-gain for audio enhancement in Assist pipelines ( #100698 )
...
* 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
2023-09-25 20:03:50 -04:00
Erik Montnemery
803d24ad1a
Rename wake_word.async_default_engine to wake_word.async_default_entity ( #100855 )
...
* Rename wake_word.async_default_engine to wake_word.async_default_entity
* tweak
* Some more rename
* Update tests
2023-09-25 17:08:37 +02:00
Erik Montnemery
5a3efb9149
Store wakeword settings in assist pipelines ( #100847 )
...
* Store wakeword settings in assist pipelines
* wakeword -> wake_word
* Remove unneeded variable
2023-09-25 16:07:26 +02:00
Paulus Schoutsen
23b239ba77
Allow passing a wake word ID to detect wake word ( #100832 )
...
* Allow passing a wake word ID to detect wake word
* Do not inject default wake words in wake_word integration
2023-09-25 15:33:54 +02:00
Michael Hansen
e69c88a0d2
Use aliases when listing pipeline languages ( #99672 )
2023-09-08 08:22:08 -04:00
Michael Hansen
054a63c3a2
Add option to save Assist pipeline audio ( #98928 )
...
* 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
2023-08-29 23:07:27 -04:00
Michael Hansen
8768c39021
Wake word cleanup ( #98652 )
...
* 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>
2023-08-25 13:28:48 -04:00
Ville Skyttä
3b4774d9ed
Remove unnnecessary pylint configs from components/[a-d]* ( #98911 )
2023-08-24 00:54:02 +02:00
Michael Hansen
49d2c60992
Add pipeline VAD events ( #98603 )
...
* Add stt-vad-start and stt-vad-end pipeline events
* Update tests
2023-08-17 19:58:58 -04:00
Erik Montnemery
1869177f08
Rename some incorrectly named assist_pipeline tests ( #98389 )
2023-08-14 15:47:55 +02:00
Erik Montnemery
045c327928
Move DeviceInfo from entity to device registry ( #98149 )
...
* Move DeviceInfo from entity to device registry
* Update integrations
2023-08-10 22:04:26 -04:00
Michael Hansen
7ea2998b55
Add wake word integration ( #96380 )
...
* 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
2023-08-07 22:22:16 -04:00
Erik Montnemery
7539cf25be
Don't require passing identifiers to DeviceRegistry.async_get_device ( #96479 )
...
* Require keyword arguments to DeviceRegistry.async_get_device
* Update tests
* Update tests
* Don't enforce keyword arguments
2023-07-13 13:39:25 -04:00
Michael Hansen
65454c945d
Add VAD sensitivity option to VoIP devices ( #94688 )
...
* Add VAD sensitivity option to VoIP devices
* Use select entitiy for VAD sensitivity
* Add sensitivity to tests
* Add to assist pipeline tests
* Update homeassistant/components/assist_pipeline/select.py
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Update tests/components/voip/test_voip.py
---------
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2023-06-23 23:28:13 -04:00
Paulus Schoutsen
c42d0feec1
Allow passing in device_id to pipeline run WS API ( #95139 )
2023-06-23 21:29:56 -05:00
Paulus Schoutsen
65b62d877d
Keep track what devices support Assist features ( #93990 )
2023-06-03 08:26:28 -05:00
c0ffeeca7
c3a3ddcfa4
Standardize spelling of TTS and STT ( #93857 )
...
* Standardize spelling of TTS and STT
* Apply suggestions from code review
* Update homeassistant/components/tts/media_source.py
---------
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2023-05-31 11:00:19 -04:00
Erik Montnemery
30d9d7d905
Minor adjustment of tts typing ( #93450 )
2023-05-24 21:02:55 +02:00
Erik Montnemery
68379dd55a
Improve TTS cache dir mocking ( #93468 )
2023-05-24 21:00:35 +02:00
Erik Montnemery
887e656570
Small improvement of assist_pipeline test coverage ( #92115 )
2023-05-04 19:01:41 +02:00
Erik Montnemery
f8f7de5d5a
Remove homeassistant from conversation dependencies ( #92170 )
...
* Remove homeassistant from conversation dependencies
* Fix tests
2023-04-28 18:17:48 +02:00
Paulus Schoutsen
7c696754ed
Use pipeline ID in event ( #92100 )
...
* Use pipeline ID in event
* Fix tests
2023-04-26 22:40:17 -04:00
Erik Montnemery
57a59d808b
Automaticially create an assist pipeline using cloud stt + tts ( #91991 )
...
* 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
2023-04-25 20:40:01 -05:00
Erik Montnemery
792ea92e55
Remove fuzzy language matching from stt and tts ( #92002 )
...
* Remove fuzzy language matching from stt and tts
* Update tests
2023-04-25 17:54:42 +02:00
Erik Montnemery
b601fb17d3
Create a default assist pipeline on start ( #91947 )
...
* Create a default assist pipeline on start
* Minor adjustments
* Address review comments
* Remove tts.async_get_agent
* Fix bugs, improve test coverage
2023-04-24 14:00:52 -04:00
Erik Montnemery
1c3e1d2e13
Don't resolve default tts engine in assist pipelines ( #91943 )
...
* Don't resolve default tts engine in assist pipelines
* Set tts engine when creating default pipeline
* Update tests
2023-04-24 14:40:11 +02:00
Erik Montnemery
c5d0c392a9
Don't resolve default stt engine in assist pipelines ( #91936 )
...
* Don't resolve default stt engine in assist pipelines
* Apply suggestion from code review
* Add tests
* Tweak
* Add test
* Improve test coverage
2023-04-24 13:37:13 +02:00
Paulus Schoutsen
a203149133
Allow entity names for STT entities ( #91932 )
...
* Allow entity names for STT entities
* Fix tests
2023-04-23 23:06:34 -04:00
Paulus Schoutsen
f4df0ca50a
Assist pipeline to use configured values ( #91901 )
...
* Assist pipeline to use configured values
* Include voice in TTS-START event
* Use correct tts language var
* More vars
* Apply suggestions from code review
* Update
---------
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-04-23 12:48:11 -04:00
Paulus Schoutsen
1eef4af493
Use configured voice in TTS output for assist pipeline ( #91878 )
2023-04-22 22:01:32 -04:00
Martin Hjelmare
1a18dc7425
Add tts entity ( #91692 )
...
* Add tts entity
* Allow passing engine id to url view
* Update async_resolve_engine
* Add and update more tests
* Fix assist pipeline tests temporarily
* Move fixtures
* Update notify platform
* Complete legacy tests
* Update media source tests
* Update async_get_text_to_speech_languages
* Address comment
---------
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2023-04-20 22:55:46 -04:00
Erik Montnemery
b3d50e67cd
Fix assist_pipeline tests ( #91757 )
2023-04-20 12:19:31 -04:00
Erik Montnemery
0525ce59d7
Add additional parameters to assist pipelines ( #91619 )
...
* Add additional parameters to assist pipelines
* Improve WS schema validation
* Tweak
* Add test
* Address review comments
2023-04-20 11:02:55 -04:00
Erik Montnemery
af193094b5
Add WS command for getting an assist pipeline ( #91725 )
...
* Add WS command for getting an assist pipeline
* Return preferred pipeline if none is specified
2023-04-20 09:15:19 -04:00
Erik Montnemery
a98be9dc84
Test specifying pipeline in calls to async_pipeline_from_audio_stream ( #91739 )
2023-04-20 09:01:31 -04:00
Erik Montnemery
6d619579b4
Add WS API for listing languages supported by a full assist pipeline ( #91669 )
...
* Add WS API for listing languages supported by a full assist pipeline
* Address review comments, change logic
2023-04-20 08:55:17 -04:00
Erik Montnemery
090f59aaa2
Make context a mandatory parameter for async_pipeline_from_audio_stream ( #91658 )
2023-04-19 09:30:29 -04:00
Erik Montnemery
bdffb1f298
Drop language parameter from async_get_pipeline ( #91612 )
2023-04-18 18:07:20 +02:00
Erik Montnemery
10606c4d1e
Use the preferred assist pipeline if none was specified ( #91611 )
...
* Use the preferred assist pipeline if none was specified
* Add test
2023-04-18 17:35:33 +02:00
Erik Montnemery
016e051db6
Add timestamp to pipeline runs ( #91599 )
...
* Add timestamp to pipeline runs
* Include the timestamp in the list
2023-04-18 10:43:46 -04:00
Bram Kragten
e3ff7d048a
Make tts/stt/conversation optional on pipeline ( #91555 )
2023-04-17 20:54:04 +02:00
Paulus Schoutsen
bd22e0bd43
Allow picking a pipeline for voip devices ( #91524 )
...
* Allow picking a pipeline for voip device
* Add tests
* Fix test
* Adjust on new pipeline data
2023-04-17 12:09:11 -05:00