def metrics(deepspeech: DeepSpeech, layer_outputs: List[np.ndarray], batch: Tuple[np.ndarray, np.ndarray]) -> Iterable[Metric]: X, y = batch y_hat = layer_outputs[-1] predict_sentences = deepspeech.decode(y_hat) true_sentences = deepspeech.get_transcripts(y) return get_metrics(sources=predict_sentences, destinations=true_sentences)
def test_get_labels_and_get_transcripts(deepspeech: DeepSpeech): bad_transcripts = ['to jest je$st!', 'test'] correct_transcripts = ['to jest jest', 'test'] labels = deepspeech.get_labels(bad_transcripts) assert labels.dtype == np.int64 assert labels.shape == (2, 12) assert labels[1, 4] == deepspeech.alphabet.blank_token transformed_transcripts = deepspeech.get_transcripts(labels) assert transformed_transcripts == correct_transcripts
def evaluate_batch(deepspeech: DeepSpeech, X: np.ndarray, y: np.ndarray, store: h5py.File, references: pd.DataFrame, save_activations: bool, get_activations: Callable) -> List[Metric]: if save_activations: *activations, y_hat = get_activations([X, 0]) # Learning phase is `test=0` else: activations = [] y_hat = deepspeech.predict(X) predict_sentences = deepspeech.decode(y_hat) true_sentences = deepspeech.get_transcripts(y) metrics = list(get_metrics(sources=predict_sentences, destinations=true_sentences)) save_in(store, [X, *activations, y_hat], metrics, references) return metrics