Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(359)

Unified Diff: webrtc/modules/audio_processing/test/py_quality_assessment/quality_assessment/eval_scores.py

Issue 2714543005: Evaluation controller, evaluation score abstract class, and score data access. (Closed)
Patch Set: Downgrading to Python 2 Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webrtc/modules/audio_processing/test/py_quality_assessment/quality_assessment/eval_scores.py
diff --git a/webrtc/modules/audio_processing/test/py_quality_assessment/quality_assessment/eval_scores.py b/webrtc/modules/audio_processing/test/py_quality_assessment/quality_assessment/eval_scores.py
index 8e900251e601eedd3cdc9fccb6bc8da19f4727f9..3a1c4bf911826f644af98376b34eee435e9a704c 100644
--- a/webrtc/modules/audio_processing/test/py_quality_assessment/quality_assessment/eval_scores.py
+++ b/webrtc/modules/audio_processing/test/py_quality_assessment/quality_assessment/eval_scores.py
@@ -6,13 +6,23 @@
# in the file PATENTS. All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.
+import logging
+import os
+
+from .data_access import ScoreFile
+
class EvaluationScore(object):
NAME = None
REGISTERED_CLASSES = {}
def __init__(self):
- pass
+ self._reference_signal = None
+ self._reference_signal_filepath = None
+ self._tested_signal = None
+ self._tested_signal_filepath = None
+ self._output_filepath = None
+ self._score = None
@classmethod
def register_class(cls, class_to_register):
@@ -21,6 +31,58 @@ class EvaluationScore(object):
"""
cls.REGISTERED_CLASSES[class_to_register.NAME] = class_to_register
+ @property
+ def output_filepath(self):
+ return self._output_filepath
+
+ @property
+ def score(self):
+ return self._score
+
+ def set_reference_signal_filepath(self, filepath):
+ """
+ Set the path to the audio track used as reference signal.
+ """
+ self._reference_signal_filepath = filepath
+
+ def set_tested_signal_filepath(self, filepath):
+ """
+ Set the path to the audio track used as test signal.
+ """
+ self._tested_signal_filepath = filepath
+
+ def _load_reference_signal(self):
+ assert self._reference_signal_filepath is not None
+ # TODO(alessio): load signal.
+ self._reference_signal = None
+
+ def _load_tested_signal(self):
+ assert self._tested_signal_filepath is not None
+ # TODO(alessio): load signal.
+ self._tested_signal = None
+
+ def run(self, output_path):
+ self._output_filepath = os.path.join(output_path, 'score-{}.txt'.format(
+ self.NAME))
+ try:
+ # If the score has already been computed, load.
+ self._load_score()
+ logging.debug('score found and loaded')
+ except IOError:
+ # Compute the score.
+ logging.debug('score not found, compute')
+ self._run(output_path)
+
+ def _run(self, output_path):
+ # Abstract method.
+ raise NotImplementedError()
+
+ def _load_score(self):
+ return ScoreFile.load(self._output_filepath)
+
+ def _save_score(self):
+ return ScoreFile.save(self._output_filepath, self._score)
+
@EvaluationScore.register_class
class AudioLevelScore(EvaluationScore):
@@ -36,14 +98,18 @@ class AudioLevelScore(EvaluationScore):
NAME = 'audio_level'
def __init__(self):
- super(AudioLevelScore, self).__init__()
+ EvaluationScore.__init__(self)
+
+ def _run(self, output_path):
+ # TODO(alessio): implement.
+ self._score = 0.0
+ self._save_score()
@EvaluationScore.register_class
class PolqaScore(EvaluationScore):
"""
- Compute the POLQA score. It requires that the POLQA_PATH environment variable
- points to the PolqaOem64 executable.
+ Compute the POLQA score.
Unit: MOS
Ideal: 4.5
@@ -53,4 +119,9 @@ class PolqaScore(EvaluationScore):
NAME = 'polqa'
def __init__(self):
- super(PolqaScore, self).__init__()
+ EvaluationScore.__init__(self)
+
+ def _run(self, output_path):
+ # TODO(alessio): implement.
+ self._score = 0.0
+ self._save_score()

Powered by Google App Engine
This is Rietveld 408576698