文件最后提交记录最后更新时间
Moving src/webrtc into src/. In order to eliminate the WebRTC Subtree mirror in Chromium, WebRTC is moving the content of the src/webrtc directory up to the src/ directory. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true TBR=tommi@webrtc.org Bug: chromium:611808 Change-Id: Iac59c5b51b950f174119565bac87955a7994bc38 Reviewed-on: https://webrtc-review.googlesource.com/1560 Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> Reviewed-by: Henrik Kjellander <kjellander@webrtc.org> Cr-Commit-Position: refs/heads/master@{#19845}8 年前
Moving src/webrtc into src/. In order to eliminate the WebRTC Subtree mirror in Chromium, WebRTC is moving the content of the src/webrtc directory up to the src/ directory. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true TBR=tommi@webrtc.org Bug: chromium:611808 Change-Id: Iac59c5b51b950f174119565bac87955a7994bc38 Reviewed-on: https://webrtc-review.googlesource.com/1560 Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> Reviewed-by: Henrik Kjellander <kjellander@webrtc.org> Cr-Commit-Position: refs/heads/master@{#19845}8 年前
Adopt absl::string_view in modules/audio_processing/ Bug: webrtc:13579 Change-Id: Idb05a64cfd16aed68d40cd427a6b516caa5e2077 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/269387 Reviewed-by: Ivo Creusen <ivoc@webrtc.org> Commit-Queue: Ali Tofigh <alito@webrtc.org> Cr-Commit-Position: refs/heads/main@{#37800} 3 年前
Adopt absl::string_view in modules/audio_processing/ Bug: webrtc:13579 Change-Id: Idb05a64cfd16aed68d40cd427a6b516caa5e2077 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/269387 Reviewed-by: Ivo Creusen <ivoc@webrtc.org> Commit-Queue: Ali Tofigh <alito@webrtc.org> Cr-Commit-Position: refs/heads/main@{#37800} 3 年前
Remove wildcard ownership for build files. No-Try: True Bug: webrtc:10381 Change-Id: I852d9a2da7e0c5c12f508a1c788b0b5753503aba Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168769 Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> Cr-Commit-Position: refs/heads/master@{#30558} 6 年前
Removing the intelligibility enhancer. The intelligibility enhancer is always disabled and it is the only non-test target using the lapped transform in common_audio (which we planned to remove). Bug: webrtc:9689, webrtc:5298 Change-Id: Ida65d3aa11ac366471e7e5cbc053108b376c67d8 Reviewed-on: https://webrtc-review.googlesource.com/96460 Commit-Queue: Alessio Bazzica <alessiob@webrtc.org> Reviewed-by: Alex Loiko <aleloi@webrtc.org> Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> Reviewed-by: Per Åhgren <peah@webrtc.org> Cr-Commit-Position: refs/heads/master@{#24504}7 年前
Reformat python files checked by pylint (part 1/2). After recently changing .pylintrc (see [1]) we discovered that the presubmit check always checks all the python files when just one python file gets updated. This CL moves all these files one step closer to what the linter wants. Autogenerated with: # Added all the files under pylint control to ~/Desktop/to-reformat cat ~/Desktop/to-reformat | xargs sed -i '1i\\' git cl format --python --full This is part 1 out of 2. The second part will fix function names and will not be automated. [1] - https://webrtc-review.googlesource.com/c/src/+/186664 No-Presubmit: True Bug: webrtc:12114 Change-Id: Idfec4d759f209a2090440d0af2413a1ddc01b841 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/190980 Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> Cr-Commit-Position: refs/heads/master@{#32530} 5 年前
Moving src/webrtc into src/. In order to eliminate the WebRTC Subtree mirror in Chromium, WebRTC is moving the content of the src/webrtc directory up to the src/ directory. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true TBR=tommi@webrtc.org Bug: chromium:611808 Change-Id: Iac59c5b51b950f174119565bac87955a7994bc38 Reviewed-on: https://webrtc-review.googlesource.com/1560 Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> Reviewed-by: Henrik Kjellander <kjellander@webrtc.org> Cr-Commit-Position: refs/heads/master@{#19845}8 年前
Use backticks not vertical bars to denote variables in comments for /modules/audio_processing Bug: webrtc:12338 Change-Id: I85bff694dd2ead83c939c4d1945eff82e1296001 No-Presubmit: True Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/227161 Commit-Queue: Artem Titov <titovartem@webrtc.org> Reviewed-by: Harald Alvestrand <hta@webrtc.org> Cr-Commit-Position: refs/heads/master@{#34690} 4 年前
Reformat python files checked by pylint (part 1/2). After recently changing .pylintrc (see [1]) we discovered that the presubmit check always checks all the python files when just one python file gets updated. This CL moves all these files one step closer to what the linter wants. Autogenerated with: # Added all the files under pylint control to ~/Desktop/to-reformat cat ~/Desktop/to-reformat | xargs sed -i '1i\\' git cl format --python --full This is part 1 out of 2. The second part will fix function names and will not be automated. [1] - https://webrtc-review.googlesource.com/c/src/+/186664 No-Presubmit: True Bug: webrtc:12114 Change-Id: Idfec4d759f209a2090440d0af2413a1ddc01b841 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/190980 Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> Cr-Commit-Position: refs/heads/master@{#32530} 5 年前
Reformat python files checked by pylint (part 1/2). After recently changing .pylintrc (see [1]) we discovered that the presubmit check always checks all the python files when just one python file gets updated. This CL moves all these files one step closer to what the linter wants. Autogenerated with: # Added all the files under pylint control to ~/Desktop/to-reformat cat ~/Desktop/to-reformat | xargs sed -i '1i\\' git cl format --python --full This is part 1 out of 2. The second part will fix function names and will not be automated. [1] - https://webrtc-review.googlesource.com/c/src/+/186664 No-Presubmit: True Bug: webrtc:12114 Change-Id: Idfec4d759f209a2090440d0af2413a1ddc01b841 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/190980 Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> Cr-Commit-Position: refs/heads/master@{#32530} 5 年前
Use backticks not vertical bars to denote variables in comments for /modules/audio_processing Bug: webrtc:12338 Change-Id: I85bff694dd2ead83c939c4d1945eff82e1296001 No-Presubmit: True Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/227161 Commit-Queue: Artem Titov <titovartem@webrtc.org> Reviewed-by: Harald Alvestrand <hta@webrtc.org> Cr-Commit-Position: refs/heads/master@{#34690} 4 年前
Reformat python files checked by pylint (part 1/2). After recently changing .pylintrc (see [1]) we discovered that the presubmit check always checks all the python files when just one python file gets updated. This CL moves all these files one step closer to what the linter wants. Autogenerated with: # Added all the files under pylint control to ~/Desktop/to-reformat cat ~/Desktop/to-reformat | xargs sed -i '1i\\' git cl format --python --full This is part 1 out of 2. The second part will fix function names and will not be automated. [1] - https://webrtc-review.googlesource.com/c/src/+/186664 No-Presubmit: True Bug: webrtc:12114 Change-Id: Idfec4d759f209a2090440d0af2413a1ddc01b841 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/190980 Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> Cr-Commit-Position: refs/heads/master@{#32530} 5 年前
README.md

APM Quality Assessment tool

Python wrapper of APM simulators (e.g., audioproc_f) with which quality assessment can be automatized. The tool allows to simulate different noise conditions, input signals, APM configurations and it computes different scores. Once the scores are computed, the results can be easily exported to an HTML page which allows to listen to the APM input and output signals and also the reference one used for evaluation.

Dependencies

  • OS: Linux
  • Python 2.7
  • Python libraries: enum34, numpy, scipy, pydub (0.17.0+), pandas (0.20.1+), pyquery (1.2+), jsmin (2.2+), csscompressor (0.9.4)
  • It is recommended that a dedicated Python environment is used
    • install virtualenv
    • $ sudo apt-get install python-virtualenv
    • setup a new Python environment (e.g., my_env)
    • $ cd ~ && virtualenv my_env
    • activate the new Python environment
    • $ source ~/my_env/bin/activate
    • add dependcies via pip
    • (my_env)$ pip install enum34 numpy pydub scipy pandas pyquery jsmin \ csscompressor
  • PolqaOem64 (see http://www.polqa.info/)
    • Tested with POLQA Library v1.180 / P863 v2.400
  • Aachen Impulse Response (AIR) Database
  • Input probing signals and noise tracks (you can make your own dataset - *1)

Build

  • Compile WebRTC
  • Go to out/Default/py_quality_assessment and check that apm_quality_assessment.py exists

Unit tests

  • Compile WebRTC
  • Go to out/Default/py_quality_assessment
  • Run python -m unittest discover -p "*_unittest.py"

First time setup

  • Deploy PolqaOem64 and set the POLQA_PATH environment variable
    • e.g., $ export POLQA_PATH=/var/opt/PolqaOem64
  • Deploy the AIR Database and set the AECHEN_IR_DATABASE_PATH environment variable
    • e.g., $ export AECHEN_IR_DATABASE_PATH=/var/opt/AIR_1_4
  • Deploy probing signal tracks into
    • out/Default/py_quality_assessment/probing_signals (*1)
  • Deploy noise tracks into
    • out/Default/py_quality_assessment/noise_tracks (*1, *2)

(*1) You can use custom files as long as they are mono tracks sampled at 48kHz encoded in the 16 bit signed format (it is recommended that the tracks are converted and exported with Audacity).

Usage (scores computation)

  • Go to out/Default/py_quality_assessment
  • Check the apm_quality_assessment.sh as an example script to parallelize the experiments
  • Adjust the script according to your preferences (e.g., output path)
  • Run apm_quality_assessment.sh
  • The script will end by opening the browser and showing ALL the computed scores

Usage (export reports)

Showing all the results at once can be confusing. You therefore may want to export separate reports. In this case, you can use the apm_quality_assessment_export.py script as follows:

  • Set --output_dir, -o to the same value used in apm_quality_assessment.sh
  • Use regular expressions to select/filter out scores by
    • APM configurations: --config_names, -c
    • capture signals: --capture_names, -i
    • render signals: --render_names, -r
    • echo simulator: --echo_simulator_names, -e
    • test data generators: --test_data_generators, -t
    • scores: --eval_scores, -s
  • Assign a suffix to the report name using -f <suffix>

For instance:

$ ./apm_quality_assessment_export.py \
  -o output/ \
  -c "(^default$)|(.*AE.*)" \
  -t \(white_noise\) \
  -s \(polqa\) \
  -f echo

Usage (boxplot)

After generating stats, it can help to visualize how a score depends on a certain APM simulator parameter. The apm_quality_assessment_boxplot.py script helps with that, producing plots similar to this one.

Suppose some scores come from running the APM simulator audioproc_f with or without the level controller: --lc=1 or --lc=0. Then two boxplots side by side can be generated with

$ ./apm_quality_assessment_boxplot.py \
      -o /path/to/output
      -v <score_name>
      -n /path/to/dir/with/apm_configs
      -z lc

Troubleshooting

The input wav file must be:

  • sampled at a sample rate that is a multiple of 100 (required by POLQA)
  • in the 16 bit format (required by audioproc_f)
  • encoded in the Microsoft WAV signed 16 bit PCM format (Audacity default when exporting)

Depending on the license, the POLQA tool may take “breaks” as a way to limit the throughput. When this happens, the APM Quality Assessment tool is slowed down. For more details about this limitation, check Section 10.9.1 in the POLQA manual v.1.18.

In case of issues with the POLQA score computation, check py_quality_assessment/eval_scores.py and adapt PolqaScore._parse_output_file(). The code can be also fixed directly into the build directory (namely, out/Default/py_quality_assessment/eval_scores.py).