returnn.sprint.extern_interface
#
This is a Sprint interface implementation. See SprintInterface.py for another Sprint interface. This Sprint interface is to be used for ExternSprintDataset, which should automatically use it.
- returnn.sprint.extern_interface.getSegmentList(corpusName, segmentList, **kwargs)[source]#
Called by Sprint PythonSegmentOrder. Set python-segment-order = true in Sprint to use this.
If this is used, this gets called really early. If it is used together with the Sprint PythonTrainer, it will get called way earlier before the init() below. It might also get called multiple times, e.g. if Sprint is in interactive mode to calc the seg count. This is optional. You can use the SprintInterface only for the PythonTrainer.
- Return type:
list[str]
:returns segment list. Can also be an iterator.
- returnn.sprint.extern_interface.exchook(exc_type, exc_obj, exc_tb)[source]#
Replacement for sys.excepthook.
- returnn.sprint.extern_interface.init(**kwargs)[source]#
Called by Sprint when it initializes the PythonTrainer, or also for PythonControl. Set trainer = python-trainer in Sprint to enable PythonTrainer for the Sprint nn-trainer tool. Note that Sprint will call this, i.e. the trainer init lazily quite late, only once it sees the first data.
- Parameters:
kwargs – all passed to
_init_python_trainer()
orPythonControl.init()
- Return type:
None|PythonControl
- returnn.sprint.extern_interface.feedInput(features, weights=None, segmentName=None)[source]#
Called by Sprint. Unsupervised case.
- Parameters:
features (numpy.ndarray) –
weights (numpy.ndarray|None) –
segmentName (str|None) –
- returnn.sprint.extern_interface.feedInputAndTargetAlignment(features, targetAlignment, weights=None, segmentName=None)[source]#
- Parameters:
features (numpy.ndarray) –
targetAlignment (numpy.ndarray) –
weights (numpy.ndarray|None) –
segmentName (str|None) –
- returnn.sprint.extern_interface.feedInputAndTargetSegmentOrth(features, targetSegmentOrth, weights=None, segmentName=None)[source]#
- Parameters:
features (numpy.ndarray) –
targetSegmentOrth (str) –
weights (numpy.ndarray|None) –
segmentName (str|None) –
- returnn.sprint.extern_interface.feedInputUnsupervised(features, weights=None, segmentName=None)[source]#
Called by Sprint. Unsupervised case.
- Parameters:
features (numpy.ndarray) –
weights (numpy.ndarray|None) –
segmentName (str|None) –
- returnn.sprint.extern_interface.feedInputAndTarget(features, weights=None, segmentName=None, orthography=None, alignment=None, speaker_name=None, speaker_gender=None, **kwargs)[source]#
- Parameters:
features (numpy.ndarray) –
weights (numpy.ndarray|None) –
segmentName (str|None) –
orthography (str|None) –
alignment (numpy.ndarray|None) –
speaker_name (str|None) –
speaker_gender (str|None) –
- class returnn.sprint.extern_interface.PythonControl(config, **kwargs)[source]#
PythonControl, interface for Sprint.
- init_processing(input_dim, output_dim, **kwargs)[source]#
Called by Sprint.
- Parameters:
input_dim (int) –
output_dim (int) –
kwargs – maybe others
- process_segment(name, orthography, features, alignment, soft_alignment, speaker_name=None, **kwargs)[source]#
Called by Sprint.
- Parameters:
name (str) –
orthography (str|None) –
features (numpy.ndarray) –
alignment (numpy.ndarray|None) –
soft_alignment (numpy.ndarray|None) –
speaker_name (str|None) –
kwargs – maybe others
- class returnn.sprint.extern_interface.ExternSprintDatasetSource(c2p_fd, p2c_fd, input_dim, output_dim, num_segments)[source]#
This will send data to ExternSprintDataset over a pipe. We expect that we are child process and the parent process has spawned us via ExternSprintDataset and is waiting for our data.
- Parameters:
c2p_fd (int) – child-to-parent file descriptor
p2c_fd (int) – parent-to-child file descriptor
num_segments (int | None) – can be None if not known in advance