Chromium Code Reviews| Index: webrtc/modules/audio_processing/test/py_quality_assessment/apm_quality_assessment.sh |
| diff --git a/webrtc/modules/audio_processing/test/py_quality_assessment/apm_quality_assessment.sh b/webrtc/modules/audio_processing/test/py_quality_assessment/apm_quality_assessment.sh |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..44a39bd2f8ea64cbb5756f5355970a8e96cd4cce |
| --- /dev/null |
| +++ b/webrtc/modules/audio_processing/test/py_quality_assessment/apm_quality_assessment.sh |
| @@ -0,0 +1,63 @@ |
| +#!/bin/bash |
| +# Copyright (c) 2017 The WebRTC project authors. All Rights Reserved. |
| +# |
| +# Use of this source code is governed by a BSD-style license |
| +# that can be found in the LICENSE file in the root of the source |
| +# tree. An additional intellectual property rights grant can be found |
| +# in the file PATENTS. All contributing project authors may |
| +# be found in the AUTHORS file in the root of the source tree. |
| + |
| +# Customize probing signals, noise sources and scores if needed. |
| +PROBING_SIGNALS=(py_quality_assessment/probing_signals/*.wav) |
| +NOISE_SOURCES=( \ |
| + "identity" \ |
| + "white" \ |
| + "environmental" \ |
| + "echo" \ |
| +) |
| +SCORES=( \ |
| + "polqa" \ |
| + "audio_level" \ |
| +) |
| +OUTPUT_PATH=~/apm_quality_assessment-example |
|
aleloi
2017/02/23 14:48:25
I don't know if it's good practice to place output
|
| + |
| +# Generate standard APM config files. |
| +chmod +x apm_quality_assessment-gencfgs.py |
| +./apm_quality_assessment-gencfgs.py |
| + |
| +# Customize APM configurations if needed. |
| +APM_CONFIGS=(py_quality_assessment/apm_configs/*.json) |
| + |
| +# Add output path if missing. |
| +if [ ! -d ${OUTPUT_PATH} ]; then |
| + mkdir ${OUTPUT_PATH} |
| +fi |
| + |
| +# Start one process for each "probing signal"-"noise source" pair. |
| +chmod +x apm_quality_assessment.py |
| +for probing_signal_filepath in "${PROBING_SIGNALS[@]}" ; do |
| + probing_signal_name="$(basename $probing_signal_filepath)" |
| + probing_signal_name="${probing_signal_name%.*}" |
| + for noise_source_name in "${NOISE_SOURCES[@]}" ; do |
| + LOG_FILE="${OUTPUT_PATH}/apm_qa-${probing_signal_name}-"` |
| + `"${noise_source_name}.log" |
| + echo "Starting ${probing_signal_name} ${noise_source_name} "` |
| + `"(see ${LOG_FILE})" |
| + ./apm_quality_assessment.py \ |
| + -i ${probing_signal_filepath}\ |
| + -o ${OUTPUT_PATH} \ |
| + -n ${noise_source_name} \ |
| + -c "${APM_CONFIGS[@]}" \ |
| + -e "${SCORES[@]}" > $LOG_FILE 2>&1 & |
| + done |
| +done |
| + |
| +# Join. |
| +wait |
| + |
| +# Export results. |
| +./apm_quality_assessment-export.py -o ${OUTPUT_PATH} |
| + |
| +# Show results in the browser. |
| +RESULTS_FILE="$(realpath ${OUTPUT_PATH}/results.html)" |
| +google-chrome "file://${RESULTS_FILE}" > /dev/null 2>&1 & |
|
aleloi
2017/02/23 14:48:25
I think 'sensible-browser' is better. We shouldn't
|