Skip to content
Snippets Groups Projects
Select Git revision
  • 9a94c87e64a1083d8964b927853fd029da09c823
  • main default protected
  • change_data_model
  • feature/add_auth_asr_service
  • fix/incorrect_import
  • feature/change_registry_clarin
  • feature/add_base_asr_service
  • feature/add_poetry
  • feature/add_word_ids
  • feature/add_sziszapangma
10 results

asr_task.py

Blame
  • user avatar
    Marcin Wątroba authored
    9a94c87e
    History
    asr_task.py 1.97 KiB
    from sziszapangma.integration.asr_processor import AsrProcessor
    from sziszapangma.integration.record_path_provider import RecordPathProvider
    from sziszapangma.integration.repository.experiment_repository import ExperimentRepository
    from sziszapangma.integration.task.processing_task import ProcessingTask
    from sziszapangma.model.model_creators import create_new_word
    from sziszapangma.model.relation_manager import RelationManager
    
    
    class AsrTask(ProcessingTask):
        _record_path_provider: RecordPathProvider
        _asr_processor: AsrProcessor
        _asr_property_name: str
    
        def __init__(
            self,
            task_name: str,
            record_path_provider: RecordPathProvider,
            asr_processor: AsrProcessor,
            asr_property_name: str,
            require_update: bool,
        ):
            super().__init__(task_name, require_update)
            self._record_path_provider = record_path_provider
            self._asr_processor = asr_processor
            self._asr_property_name = asr_property_name
    
        def skip_for_record(self, record_id: str, experiment_repository: ExperimentRepository) -> bool:
            asr_value = experiment_repository.get_property_for_key(record_id, self._asr_property_name)
            print(record_id, self._asr_property_name, asr_value)
            return asr_value is not None and "transcription" in asr_value
    
        def run_single_process(
            self,
            record_id: str,
            experiment_repository: ExperimentRepository,
            relation_manager: RelationManager,
        ) -> None:
            file_record_path = self._record_path_provider.get_path(record_id)
            print('before call_recognise', flush=True)
            asr_result = self._asr_processor.call_recognise(file_record_path)
            print('after call_recognise', flush=True)
            asr_result["transcription"] = [create_new_word(it) for it in asr_result["transcription"]]
            print('after create_new_word', flush=True)
            experiment_repository.update_property_for_key(
                record_id, self._asr_property_name, asr_result
            )