xiongyihui / notes

Notes
https://xiongyihui.github.io/notes/
3 stars 0 forks source link

Speaker Test and Tweak #19

Open xiongyihui opened 6 years ago

xiongyihui commented 6 years ago

When we get a new phone, a new computer, or a smart speaker, how to find out if its speaker is good or not? There is a simple way to find out. It only requires your computer (running Linux, Windows or macOS) or your Raspberry Pi with the open source software Audacity

We often evaluate a speaker based on its frequency response. With Audacity, we quickly find out the frequency response of a speaker.

Use Audacity to evaluate the frequency response of a speaker

  1. Open Audacity, click menus Generate >> Chirp and create 5 seconds logarithmic interpolation chirp started from 100 Hz to 10,000 Hz.

    image

    We choose logarithmic interpolation instead of linear interpolation, as we more care about lower mid-range of audio.

  2. Click |<< of the toolbar to the start of the chirp, and then press r (or shirt + r on audacity 2.2.0+) to play the chirp and record at the same time.

    image

    image

  3. I tested the built-in speaker of my computer and an external speaker. The two recordings is look like:

    image

    Channel 2 and channel 3 are the recordings of the built-in speaker of the computer (my computer has two microphones). The last two channels are the recording of the external speaker. Based on the waveforms, the external speaker is much better on low frequency and has more uniform frequency response.

  4. We can also switch to frequency domain to get a look of the frequency response. Select a channel and click menus Analyze >> Plot spectrum...

    image

    image

Does the test reflect the real frequency response of the speaker?

We can use our microphones of our computers to test a speaker, because most of microphones have a very good frequency response. The following image is the frequency response of a microphone found in its datasheet.

So the microphone has only a little bit effect on the above test. The frequency responses we got is close to the frequency response of the speakers. Of course, the surrounding noise has some effects, so it would be better if we are in a quiet and less-reflection place or in a anechoic chamber.

image

tweak EQ to adjust audio output

When we know the frequency response of a speaker, we can't change it, but we can use software to adjust the audio output.

  1. On Raspberry Pi, we can use alsaequal to tweak the EQ. See Max's Enabling Equalizer on Raspberry Pi using ALSA equal Plugin

  2. On Linux with PulseAudio, we can use PulseEffects