Media/WebRTC Audio Perf: Difference between revisions

Jump to navigation Jump to search
no edit summary
No edit summary
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.
=="'Background" ==
==Background==
== "Proposal" ==
=== Chrome Audio Perf ==
=== "Using Talos Framework ===
Audio Processing Per 10ms Analysis
== "Open Questions" ==
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 ==
3

edits

Navigation menu