3
edits
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== | ||
== | === 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 == | |||
edits