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 (
Provider,
SpeechMetadata,
SpeechResult,
async_default_provider,
async_get_provider,
async_setup_legacy,
)
from .models import SpeechMetadata, SpeechResult
__all__ = [
"async_get_provider",

View file

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

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