#!/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. # Path to the POLQA tool. if [ -z ${POLQA_PATH} ]; then # Check if defined. # Default location. export POLQA_PATH='/var/opt/PolqaOem64' fi if [ -d "${POLQA_PATH}" ]; then echo "POLQA found in ${POLQA_PATH}" else echo "POLQA not found in ${POLQA_PATH}" exit 1 fi # Path to the Aechen IR database. if [ -z ${AECHEN_IR_DATABASE_PATH} ]; then # Check if defined. # Default location. export AECHEN_IR_DATABASE_PATH='/var/opt/AIR_1_4' fi if [ -d "${AECHEN_IR_DATABASE_PATH}" ]; then echo "AIR database found in ${AECHEN_IR_DATABASE_PATH}" else echo "AIR database not found in ${AECHEN_IR_DATABASE_PATH}" exit 1 fi # Customize probing signals, test data generators and scores if needed. CAPTURE_SIGNALS=(probing_signals/*.wav) TEST_DATA_GENERATORS=( \ "identity" \ "white_noise" \ # "environmental_noise" \ # "reverberation" \ ) SCORES=( \ # "polqa" \ "audio_level_peak" \ "audio_level_mean" \ ) OUTPUT_PATH=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=(apm_configs/*.json) # Add output path if missing. if [ ! -d ${OUTPUT_PATH} ]; then mkdir ${OUTPUT_PATH} fi # Start one process for each "probing signal"-"test data source" pair. chmod +x apm_quality_assessment.py for capture_signal_filepath in "${CAPTURE_SIGNALS[@]}" ; do probing_signal_name="$(basename $capture_signal_filepath)" probing_signal_name="${probing_signal_name%.*}" for test_data_gen_name in "${TEST_DATA_GENERATORS[@]}" ; do LOG_FILE="${OUTPUT_PATH}/apm_qa-${probing_signal_name}-"` `"${test_data_gen_name}.log" echo "Starting ${probing_signal_name} ${test_data_gen_name} "` `"(see ${LOG_FILE})" ./apm_quality_assessment.py \ --polqa_path ${POLQA_PATH}\ --air_db_path ${AECHEN_IR_DATABASE_PATH}\ -i ${capture_signal_filepath} \ -o ${OUTPUT_PATH} \ -t ${test_data_gen_name} \ -c "${APM_CONFIGS[@]}" \ -e "${SCORES[@]}" > $LOG_FILE 2>&1 & done done # Join Python processes running apm_quality_assessment.py. wait # Export results. chmod +x ./apm_quality_assessment_export.py ./apm_quality_assessment_export.py -o ${OUTPUT_PATH} # Show results in the browser. RESULTS_FILE="$(realpath ${OUTPUT_PATH}/results.html)" sensible-browser "file://${RESULTS_FILE}" > /dev/null 2>&1 &