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
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
Erik Montnemery
a9bcfe5700
Abort wake word detection when assist pipeline is modified ( #100918 )
2023-09-26 20:24:55 +02:00
Erik Montnemery
bd40cbcb21
Tweak pipeline.multiply_volume ( #100905 )
2023-09-26 09:19:57 -05:00
Erik Montnemery
4df14b2625
Remove duplicated call to `PipelineRun.end` from `PipelineInput.execute` ( #100909 )
...
Remove duplicated call to PipelineRun.end from PipelineInput.execute
2023-09-26 12:38:25 +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
d76c5ed351
Use wake word settings in assist pipeline runs ( #100864 )
2023-09-25 12:58:10 -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
Erik Montnemery
4f8e28a781
Future proof assist_pipeline.Pipeline ( #100277 )
2023-09-13 12:41:28 +02: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
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
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
Franck Nijhof
30058297cf
Migrate backported StrEnum to built-in StrEnum ( #97101 )
2023-07-23 23:19:24 +02:00
Michael Hansen
b70a67404b
Check end stage as well when preparing pipeline ( #95303 )
2023-06-26 16:36:02 -05: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
Paulus Schoutsen
cd330a2740
Pass device ID to conversation input ( #93867 )
2023-05-31 16:56:12 -04:00
Paulus Schoutsen
927b59fe5a
Simplify get pipeline method ( #93865 )
2023-05-31 10:06:03 -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
887e656570
Small improvement of assist_pipeline test coverage ( #92115 )
2023-05-04 19:01:41 +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
2750a5c3e6
Make assist_pipeline an after dependency of cloud ( #92057 )
2023-04-26 13:45:32 +02: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
8e70446ef8
Tweak a couple of `stt` and `tts` related asserts ( #92012 )
...
Tweak a couple of stt and tts related asserts
2023-04-25 11:50:37 -05: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
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
03dcb915e3
Add missing callback decorator on StorageCollectionWebsocket.ws_list_item ( #91727 )
2023-04-20 07:58:11 -04:00
Erik Montnemery
5e9bbeb4ad
Refactor conversation agent WS API for listing agents ( #91590 )
...
* Refactor conversation agent WS API for listing agents
* Add conversation/agent/info back
2023-04-19 10:53:24 -04:00
Michael Hansen
6b5e82ed40
Support both stt entity and legacy providers ( #91633 )
2023-04-18 16:59:06 -05: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
Erik Montnemery
0ecd23baee
Add WS API for debugging previous assist_pipeline runs ( #91541 )
...
* Add WS API for debugging previous assist_pipeline runs
* Improve typing
2023-04-17 11:48:02 -04:00
Erik Montnemery
8c1c7e1e4c
Remove PipelineEvent.as_dict ( #91546 )
2023-04-17 16:33:53 +02:00
Erik Montnemery
3367e86686
Enable strict typing of assist_pipeline ( #91529 )
2023-04-17 10:32:14 +02:00
Erik Montnemery
8f8a398631
Support marking an assist pipeline as preferred ( #91418 )
...
* Support marking an assist pipeline as preferred
* Adjust
* Revert unneeded change
* Send preferred pipeline id in pipeline list
* Don't use property functions for the preferred pipeline
2023-04-15 10:05:46 -04:00
Erik Montnemery
4e80154ebe
Rename voice_assistant to assist_pipeline ( #91371 )
...
* Rename voice_assistant to assist_pipeline
* Fix tests
* Fix voip test
---------
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2023-04-13 17:25:38 -04:00