agents.components.speechtotext#

Module Contents#

Classes#

SpeechToText

This component takes in audio input and outputs a text representation of the audio using Speech-to-Text models (e.g. Whisper).

API#

class agents.components.speechtotext.SpeechToText(*, inputs: List[agents.ros.Topic], outputs: List[agents.ros.Topic], model_client: agents.clients.model_base.ModelClient, config: Optional[agents.config.SpeechToTextConfig] = None, trigger: Union[agents.ros.Topic, List[agents.ros.Topic]], component_name: str, **kwargs)#

Bases: agents.components.model_component.ModelComponent

This component takes in audio input and outputs a text representation of the audio using Speech-to-Text models (e.g. Whisper).

Parameters:
  • inputs (list[Topic]) – The input topics for the STT. This should be a list of Topic objects, limited to Audio type.

  • outputs (list[Topic]) – The output topics for the STT. This should be a list of Topic objects, String type is handled automatically.

  • model_client (ModelClient) – The model client for the STT. This should be an instance of ModelClient.

  • config (Optional[SpeechToTextConfig]) – The configuration for the STT. This should be an instance of SpeechToTextConfig. If not provided, defaults to SpeechToTextConfig().

  • trigger (Union[Topic, list[Topic], float]) – The trigger value or topic for the STT. This can be a single Topic object, a list of Topic objects.

  • component_name (str) – The name of the STT component. This should be a string.

Example usage:

audio_topic = Topic(name="audio", msg_type="Audio")
text_topic = Topic(name="text", msg_type="String")
config = SpeechToTextConfig(enable_vad=True)
model = Whisper(name="whisper")
model_client = ModelClient(model=model)
stt_component = SpeechToText(
    inputs=[audio_topic],
    outputs=[text_topic],
    model_client=model_client,
    config=config,
    component_name='stt_component'
)
custom_on_activate()#

Custom activation

custom_on_deactivate()#

Destroy model client if it exists

custom_on_configure()#

Create model client if provided and initialize model.

property warmup: bool#

Enable warmup of the model.

create_all_subscribers()#

Override to handle trigger topics and fixed inputs. Called by parent BaseComponent

activate_all_triggers() None#

Activates component triggers by attaching execution step to callbacks

destroy_all_subscribers() None#

Destroys all node subscribers

trigger(trigger: Union[agents.ros.Topic, List[agents.ros.Topic], float]) None#

Set component trigger

validate_topics(topics: Sequence[Union[agents.ros.Topic, agents.ros.FixedInput]], allowed_topic_types: Optional[Dict[str, List[Union[Type[agents.ros.SupportedType], List[Type[agents.ros.SupportedType]]]]]] = None, topics_direction: str = 'Topics')#

Verify component specific inputs or outputs using allowed topics if provided