diff --git a/homeassistant/components/stt/__init__.py b/homeassistant/components/stt/__init__.py index 679f9b29e41..b1730a09357 100644 --- a/homeassistant/components/stt/__init__.py +++ b/homeassistant/components/stt/__init__.py @@ -40,12 +40,11 @@ from .const import ( ) from .legacy import ( Provider, - SpeechMetadata, - SpeechResult, async_default_provider, async_get_provider, async_setup_legacy, ) +from .models import SpeechMetadata, SpeechResult __all__ = [ "async_get_provider", diff --git a/homeassistant/components/stt/legacy.py b/homeassistant/components/stt/legacy.py index f14eed467db..862f59d5f6d 100644 --- a/homeassistant/components/stt/legacy.py +++ b/homeassistant/components/stt/legacy.py @@ -3,7 +3,6 @@ from __future__ import annotations from abc import ABC, abstractmethod from collections.abc import AsyncIterable, Coroutine -from dataclasses import dataclass import logging from typing import Any @@ -20,8 +19,8 @@ from .const import ( AudioCodecs, AudioFormats, AudioSampleRates, - SpeechResultState, ) +from .models import SpeechMetadata, SpeechResult _LOGGER = logging.getLogger(__name__) @@ -88,32 +87,6 @@ def async_setup_legacy( ] -@dataclass -class SpeechMetadata: - """Metadata of audio stream.""" - - language: str - format: AudioFormats - codec: AudioCodecs - bit_rate: AudioBitRates - sample_rate: AudioSampleRates - channel: AudioChannels - - def __post_init__(self) -> None: - """Finish initializing the metadata.""" - self.bit_rate = AudioBitRates(int(self.bit_rate)) - self.sample_rate = AudioSampleRates(int(self.sample_rate)) - self.channel = AudioChannels(int(self.channel)) - - -@dataclass -class SpeechResult: - """Result of audio Speech.""" - - text: str | None - result: SpeechResultState - - class Provider(ABC): """Represent a single STT provider.""" diff --git a/homeassistant/components/stt/models.py b/homeassistant/components/stt/models.py new file mode 100644 index 00000000000..45322e2da07 --- /dev/null +++ b/homeassistant/components/stt/models.py @@ -0,0 +1,37 @@ +"""Speech-to-text data models.""" +from dataclasses import dataclass + +from .const import ( + AudioBitRates, + AudioChannels, + AudioCodecs, + AudioFormats, + AudioSampleRates, + SpeechResultState, +) + + +@dataclass +class SpeechMetadata: + """Metadata of audio stream.""" + + language: str + format: AudioFormats + codec: AudioCodecs + bit_rate: AudioBitRates + sample_rate: AudioSampleRates + channel: AudioChannels + + def __post_init__(self) -> None: + """Finish initializing the metadata.""" + self.bit_rate = AudioBitRates(int(self.bit_rate)) + self.sample_rate = AudioSampleRates(int(self.sample_rate)) + self.channel = AudioChannels(int(self.channel)) + + +@dataclass +class SpeechResult: + """Result of audio Speech.""" + + text: str | None + result: SpeechResultState