Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OboeTester needs a way to measure latency when AEC is active #2090

Open
philburk opened this issue Aug 16, 2024 · 4 comments
Open

OboeTester needs a way to measure latency when AEC is active #2090

philburk opened this issue Aug 16, 2024 · 4 comments
Labels
P1 high priority

Comments

@philburk
Copy link
Collaborator

When measuring latency with VoiceComm active the device often adds an AEC.
This will cause some or all of the loopback signal to be cancelled.
In some cases a brief chirp can get through before the AEC adaptive filter converges.

aec_latency_chirp

So we should add an option to use alternative signals in place of the pulse train including

  • brief chirp
  • short white noise pulse
  • short FM noise burst using a C/M ratio of sqrt(2)
@philburk philburk added the P1 high priority label Aug 16, 2024
@philburk
Copy link
Collaborator Author

It would also be nice to display waveforms of the output and input recordings.

And we should show the measured latency even if the confidence is very low.

@philburk
Copy link
Collaborator Author

Similar to #1291

@philburk
Copy link
Collaborator Author

I found that I can defeat the AEC just by enabling the Session checkbox and leaving the AEC checkbox off.

philburk added a commit that referenced this issue Aug 19, 2024
Also add NoiseSuppressor

For #2090
@JimG777
Copy link

JimG777 commented Aug 21, 2024

I found that I can defeat the AEC just by enabling the Session checkbox and leaving the AEC checkbox off.

That seems to be the case on many devices that I have tested with, but not all:

  • Samsung S22 (with Exynos chipset) w/ Android 14
    • Session checkbox disabled: AEC is defeated (so no AEC here!)
    • Session checkbox enabled, AEC checked or unchecked: AEC applied
  • Samsung S22 (with Qualcomm chipset) w/ Android 14
    • AEC can't be defeated
  • Samsung S21 w/ Android 13
    • No speaker: AEC can't be defeated
    • Using Speaker: Session checkbox enabled, AEC unchecked = AEC is defeated
  • Samsung S10 (with Exynos chipset) w/ Android 12
    • AEC can't be defeated

Other devices varied. Most of my Pixel devices had the same behavior as yours (except the Pixel 1).

Why is there so much variation here?

Also, what is the expected behavior? I thought that if using the VoiceComm preset, the "/vendor/etc/audio_effects.xml" would get applied automatically. That generally seems to be the case, but why does providing the SessionId to Oboe override that?

My tests use these OboeTester settings for input:

  • Callback size: 480
  • Enable Oboe workarounds
  • Mode: IN_COMMUNICATION
  • 48000/1/PCM_I16/LOW_LATENCY/VoiceComm

philburk added a commit that referenced this issue Sep 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
P1 high priority
Projects
None yet
Development

No branches or pull requests

2 participants