agents.components.speechtotext
#
Module Contents#
Classes#
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