Media/WebRTC Audio Perf: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
No edit summary
Line 1: Line 1:
Analysis of tools and techniques for measuring WebRTC Audio Performance.
Analysis of tools and techniques for measuring WebRTC Audio Performance.
This page is under construction. please come back later for more complete information
==Background==
==Background==
=== Chrome Audio Perf ==
=== Chrome Audio Perf ==
Audio Processing Per 10ms Analysis
Audio Processing Per 10ms Analysis

Revision as of 22:54, 27 October 2013

Analysis of tools and techniques for measuring WebRTC Audio Performance. This page is under construction. please come back later for more complete information

Background

= Chrome Audio Perf

Audio Processing Per 10ms Analysis Test Code: process_test.c Details:

 1. Uses WebRTC AudioProcessingModule to simulate mic to             render audio processing. 
 2. AudioEngine Configuration touch points : Sample Rate, Input        and Output Channels, Reverse Channels, Echo Cancellation,        Gain Control, Noise Suppression, Voice Activity Detection,              Level Metrics, Delay, Drift Compensation,Echo Metrics

Logic:

  For every Input AudioFrame
    time ProcessStream()
    also apply component configuration
  For every Output AudioFrame
     time AnalyzeReverseStream()
Calculate Execution Time as average for all the 10ms frames processed and analyzed.
 

Audio Quality Voice Engine - E2E Code:run_audio_test.py

 third_party/webrtc/tools/e2e_quality

This uses PulseAudio to setup virtual devices followed by comparison tool to measure the quality. This is based on VoiceEngine loopback call


WebRTC Recording Time Code: webrtc_audio_device_unittest.cc This uses VoEMediaProcess::Process() callback to act as interceptor to audio frames at the recording path to time the recoding setup time

WebRTC Playout Setup Time This uses VoEMediaProcess::Process() callback to act as interceptor to audio frames before playback to time the setup time

WebRTC Loopback With Signal Processing WebRTC Loopback Without Signal Processing Both the tests uses loopback call with/without APM enabled. this loopback runs for 100 AudioFrames.

Proposal

Using Talos Framework

Open Questions