Move non legacy stt models out from legacy module (#99582)

This commit is contained in:
Martin Hjelmare 2023-09-04 22:51:57 +02:00 committed by GitHub
parent d2a52230ff
commit 0b383067ef
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 39 additions and 30 deletions

View File

@ -40,12 +40,11 @@ from .const import (
) )
from .legacy import ( from .legacy import (
Provider, Provider,
SpeechMetadata,
SpeechResult,
async_default_provider, async_default_provider,
async_get_provider, async_get_provider,
async_setup_legacy, async_setup_legacy,
) )
from .models import SpeechMetadata, SpeechResult
__all__ = [ __all__ = [
"async_get_provider", "async_get_provider",

View File

@ -3,7 +3,6 @@ from __future__ import annotations
from abc import ABC, abstractmethod from abc import ABC, abstractmethod
from collections.abc import AsyncIterable, Coroutine from collections.abc import AsyncIterable, Coroutine
from dataclasses import dataclass
import logging import logging
from typing import Any from typing import Any
@ -20,8 +19,8 @@ from .const import (
AudioCodecs, AudioCodecs,
AudioFormats, AudioFormats,
AudioSampleRates, AudioSampleRates,
SpeechResultState,
) )
from .models import SpeechMetadata, SpeechResult
_LOGGER = logging.getLogger(__name__) _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): class Provider(ABC):
"""Represent a single STT provider.""" """Represent a single STT provider."""

View File

@ -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