Home Assistant Unofficial Reference 2024.12.1
stt.py
Go to the documentation of this file.
1 """Support for the demo for speech-to-text service."""
2 
3 from __future__ import annotations
4 
5 from collections.abc import AsyncIterable
6 
8  AudioBitRates,
9  AudioChannels,
10  AudioCodecs,
11  AudioFormats,
12  AudioSampleRates,
13  SpeechMetadata,
14  SpeechResult,
15  SpeechResultState,
16  SpeechToTextEntity,
17 )
18 from homeassistant.config_entries import ConfigEntry
19 from homeassistant.core import HomeAssistant
20 from homeassistant.helpers.entity_platform import AddEntitiesCallback
21 
22 SUPPORT_LANGUAGES = ["en", "de"]
23 
24 
26  hass: HomeAssistant,
27  config_entry: ConfigEntry,
28  async_add_entities: AddEntitiesCallback,
29 ) -> None:
30  """Set up Demo speech platform via config entry."""
32 
33 
35  """Demo speech API provider entity."""
36 
37  _attr_name = "Demo STT"
38 
39  @property
40  def supported_languages(self) -> list[str]:
41  """Return a list of supported languages."""
42  return SUPPORT_LANGUAGES
43 
44  @property
45  def supported_formats(self) -> list[AudioFormats]:
46  """Return a list of supported formats."""
47  return [AudioFormats.WAV]
48 
49  @property
50  def supported_codecs(self) -> list[AudioCodecs]:
51  """Return a list of supported codecs."""
52  return [AudioCodecs.PCM]
53 
54  @property
55  def supported_bit_rates(self) -> list[AudioBitRates]:
56  """Return a list of supported bit rates."""
57  return [AudioBitRates.BITRATE_16]
58 
59  @property
60  def supported_sample_rates(self) -> list[AudioSampleRates]:
61  """Return a list of supported sample rates."""
62  return [AudioSampleRates.SAMPLERATE_16000, AudioSampleRates.SAMPLERATE_44100]
63 
64  @property
65  def supported_channels(self) -> list[AudioChannels]:
66  """Return a list of supported channels."""
67  return [AudioChannels.CHANNEL_STEREO]
68 
70  self, metadata: SpeechMetadata, stream: AsyncIterable[bytes]
71  ) -> SpeechResult:
72  """Process an audio stream to STT service."""
73 
74  # Read available data
75  async for _ in stream:
76  pass
77 
78  return SpeechResult("Turn the Kitchen Lights on", SpeechResultState.SUCCESS)
list[AudioCodecs] supported_codecs(self)
Definition: stt.py:50
SpeechResult async_process_audio_stream(self, SpeechMetadata metadata, AsyncIterable[bytes] stream)
Definition: stt.py:71
list[AudioFormats] supported_formats(self)
Definition: stt.py:45
list[AudioChannels] supported_channels(self)
Definition: stt.py:65
list[AudioSampleRates] supported_sample_rates(self)
Definition: stt.py:60
list[AudioBitRates] supported_bit_rates(self)
Definition: stt.py:55
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)
Definition: stt.py:29