Simon 5fefa606b6
Add ElevenLabs text-to-speech integration (#115645)
* Add ElevenLabs text-to-speech integration

* Remove commented out code

* Use model_id instead of model_name for elevenlabs api

* Apply suggestions from code review

Co-authored-by: Sid <27780930+autinerd@users.noreply.github.com>

* Use async client instead of sync

* Add ElevenLabs code owner

* Apply suggestions from code review

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>

* Set entity title to voice

* Rename to elevenlabs

* Apply suggestions from code review

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>

* Allow multiple voices and options flow

* Sort default voice at beginning

* Rework config flow to include default model and reloading on options flow

* Add error to strings

* Add ElevenLabsData and suggestions from code review

* Shorten options and config flow

* Fix comments

* Fix comments

* Add wip

* Fix

* Cleanup

* Bump elevenlabs version

* Add data description

* Fix

---------

Co-authored-by: Sid <27780930+autinerd@users.noreply.github.com>
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: Michael Hansen <mike@rhasspy.org>
Co-authored-by: Joostlek <joostlek@outlook.com>
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2024-07-31 21:31:09 +02:00

53 lines
1.5 KiB
Python

"""Constants for the Testing of the ElevenLabs text-to-speech integration."""
from elevenlabs.types import LanguageResponse, Model, Voice
from homeassistant.components.elevenlabs.const import DEFAULT_MODEL
MOCK_VOICES = [
Voice(
voice_id="voice1",
name="Voice 1",
),
Voice(
voice_id="voice2",
name="Voice 2",
),
]
MOCK_MODELS = [
Model(
model_id="model1",
name="Model 1",
can_do_text_to_speech=True,
languages=[
LanguageResponse(language_id="en", name="English"),
LanguageResponse(language_id="de", name="German"),
LanguageResponse(language_id="es", name="Spanish"),
LanguageResponse(language_id="ja", name="Japanese"),
],
),
Model(
model_id="model2",
name="Model 2",
can_do_text_to_speech=True,
languages=[
LanguageResponse(language_id="en", name="English"),
LanguageResponse(language_id="de", name="German"),
LanguageResponse(language_id="es", name="Spanish"),
LanguageResponse(language_id="ja", name="Japanese"),
],
),
Model(
model_id=DEFAULT_MODEL,
name=DEFAULT_MODEL,
can_do_text_to_speech=True,
languages=[
LanguageResponse(language_id="en", name="English"),
LanguageResponse(language_id="de", name="German"),
LanguageResponse(language_id="es", name="Spanish"),
LanguageResponse(language_id="ja", name="Japanese"),
],
),
]