|
|
@ -14,6 +14,7 @@
|
|
|
|
import os
|
|
|
|
import os
|
|
|
|
from abc import ABC
|
|
|
|
from abc import ABC
|
|
|
|
from abc import abstractmethod
|
|
|
|
from abc import abstractmethod
|
|
|
|
|
|
|
|
from typing import Any
|
|
|
|
from typing import List
|
|
|
|
from typing import List
|
|
|
|
from typing import Union
|
|
|
|
from typing import Union
|
|
|
|
|
|
|
|
|
|
|
@ -33,43 +34,63 @@ class BaseExecutor(ABC):
|
|
|
|
def _get_pretrained_path(self, tag: str) -> os.PathLike:
|
|
|
|
def _get_pretrained_path(self, tag: str) -> os.PathLike:
|
|
|
|
"""
|
|
|
|
"""
|
|
|
|
Download and returns pretrained resources path of current task.
|
|
|
|
Download and returns pretrained resources path of current task.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Args:
|
|
|
|
|
|
|
|
tag (str): A tag of pretrained model.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
|
|
|
os.PathLike: The path on which resources of pretrained model locate.
|
|
|
|
"""
|
|
|
|
"""
|
|
|
|
pass
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
@abstractmethod
|
|
|
|
@abstractmethod
|
|
|
|
def _init_from_path(self, *args, **kwargs):
|
|
|
|
def _init_from_path(self, *args, **kwargs):
|
|
|
|
"""
|
|
|
|
"""
|
|
|
|
Init model and other resources from a specific path.
|
|
|
|
Init model and other resources from arguments. This method should be called by `__call__()`.
|
|
|
|
"""
|
|
|
|
"""
|
|
|
|
pass
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
@abstractmethod
|
|
|
|
@abstractmethod
|
|
|
|
def preprocess(self, input: Union[str, os.PathLike]):
|
|
|
|
def preprocess(self, input: Any, *args, **kwargs):
|
|
|
|
"""
|
|
|
|
"""
|
|
|
|
Input preprocess and return paddle.Tensor stored in self.input.
|
|
|
|
Input preprocess and return paddle.Tensor stored in self._inputs.
|
|
|
|
Input content can be a text(tts), a file(asr, cls) or a streaming(not supported yet).
|
|
|
|
Input content can be a text(tts), a file(asr, cls), a stream(not supported yet) or anything needed.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Args:
|
|
|
|
|
|
|
|
input (Any): Input text/file/stream or other content.
|
|
|
|
"""
|
|
|
|
"""
|
|
|
|
pass
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
@paddle.no_grad()
|
|
|
|
@paddle.no_grad()
|
|
|
|
@abstractmethod
|
|
|
|
@abstractmethod
|
|
|
|
def infer(self, device: str):
|
|
|
|
def infer(self, *args, **kwargs):
|
|
|
|
"""
|
|
|
|
"""
|
|
|
|
Model inference and result stored in self.output.
|
|
|
|
Model inference and put results into self._outputs.
|
|
|
|
|
|
|
|
This method get input tensors from self._inputs, and write output tensors into self._outputs.
|
|
|
|
"""
|
|
|
|
"""
|
|
|
|
pass
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
@abstractmethod
|
|
|
|
@abstractmethod
|
|
|
|
def postprocess(self) -> Union[str, os.PathLike]:
|
|
|
|
def postprocess(self, *args, **kwargs) -> Union[str, os.PathLike]:
|
|
|
|
"""
|
|
|
|
"""
|
|
|
|
Output postprocess and return human-readable results such as texts and audio files.
|
|
|
|
Output postprocess and return results.
|
|
|
|
|
|
|
|
This method get model output from self._outputs and convert it into human-readable results.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
|
|
|
Union[str, os.PathLike]: Human-readable results such as texts and audio files.
|
|
|
|
"""
|
|
|
|
"""
|
|
|
|
pass
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
@abstractmethod
|
|
|
|
@abstractmethod
|
|
|
|
def execute(self, argv: List[str]) -> bool:
|
|
|
|
def execute(self, argv: List[str]) -> bool:
|
|
|
|
"""
|
|
|
|
"""
|
|
|
|
Command line entry.
|
|
|
|
Command line entry. This method can only be accessed by a command line such as `paddlespeech asr`.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Args:
|
|
|
|
|
|
|
|
argv (List[str]): Arguments from command line.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
|
|
|
int: Result of the command execution. `True` for a success and `False` for a failure.
|
|
|
|
"""
|
|
|
|
"""
|
|
|
|
pass
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|