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
Open Audacity, click menus Generate >> Chirp and create 5 seconds logarithmic interpolation chirp started from 100 Hz to 10,000 Hz.
We choose logarithmic interpolation instead of linear interpolation, as we more care about lower mid-range of audio.
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.
I tested the built-in speaker of my computer and an external speaker. The two recordings is look like:
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.
We can also switch to frequency domain to get a look of the frequency response. Select a channel and click menus Analyze >> Plot spectrum...
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.
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.
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
Open
Audacity
, click menusGenerate
>>Chirp
and create 5 secondslogarithmic interpolation
chirp started from 100 Hz to 10,000 Hz.We choose logarithmic interpolation instead of linear interpolation, as we more care about lower mid-range of audio.
Click
|<<
of the toolbar to the start of the chirp, and then pressr
(or shirt + r on audacity 2.2.0+) to play the chirp and record at the same time.I tested the built-in speaker of my computer and an external speaker. The two recordings is look like:
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.
We can also switch to frequency domain to get a look of the frequency response. Select a channel and click menus
Analyze
>>Plot spectrum...
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.
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.
On Raspberry Pi, we can use
alsaequal
to tweak the EQ. See Max's Enabling Equalizer on Raspberry Pi using ALSA equal PluginOn Linux with PulseAudio, we can use PulseEffects