Source code for eclypse.builders.application.keyword_spotting.rest_services.inference

"""REST endpoints for keyword inference."""

from eclypse.remote.communication import rest
from eclypse.remote.service import RESTService
from eclypse.utils import format_log_kv

KEYWORD_THRESHOLD = 5


[docs] class InferenceService(RESTService): """Infer a keyword from preprocessed features."""
[docs] @rest.endpoint("/infer", "POST") def infer(self, window_id: int, features: list[float], **_): """Infer the most likely keyword from the extracted features.""" self.logger.info( "Received request | " + format_log_kv(window_id=window_id, features=features) ) keyword = "eclypse" if sum(features) > KEYWORD_THRESHOLD else "background" return 200, {"window_id": window_id, "keyword": keyword}