Hello all,
Today I had some time to experiment with WiiM Room Correction feature, and specifically I wanted to test the new WHA microphone calibration file import feature.
First some background: when I use the built-in phone mic on my Samsung S23+ the measurements look terrible because the built-in mic has a terrible response - notice especially the peaking at about 8kHz and the rising response after that:

Measuring with REW and my Cross-Spectrum Labs calibrated Dayton Audio EMM-6 tells a different story - no peak at 8kHz and a much flatter high frequency response:

I wanted a simple way to get more reliable RC results, so I started thinking about how to use the calibrated Dayton mic on my phone. This is an analogue XLR mic, so connecting it to the phone requires a USB class-compliant audio interface with phantom power and an assortment of cables and adapters. I really wanted something simpler, so I remembered I also had Samsung USB-C wired earbuds (model EO-IC100) lying around which also had a mic.
Using the mic from these earbuds for room correction gave me the following response:

Now isn't this a mix of both better and worse!
We can see the higher frequencies look more reasonable, but there is obviously a low frequency roll-off in the mic - which results in WiiM RC boosting low frequencies by A LOT.
So naturally
, my next instinct was to use my calibrated mic to create a calibration file for the earbud mic.
To do this, I measured the response of my system 5-6 times with REW using the MMM method and RMS-averaged the measured responses. I repeated the same procedure for both the calibrated Dayton mic, and the earbud mic.
This is the comparison of averaged responses of the same system measured with both of the two mics:

As expected, the earbud mic shows a very significant low frequency roll-off, and a wonky high frequency response.
To create a calibration curve I first used REW Trace Arithmetic function to divide the response of the earbuds with the response of the calibrated mic, thereby normalizing the response measured with the earbud mic to the calibrated mic response.
This gives a difference curve which corresponds roughly to the earbud mic frequency response curve:

This is however unnecessarily precise, and experience tells me that the mid-frequency irregularity and <30Hz response is caused by noise, room nulls and measurement error.
So next step was to smooth the response (1/3 octave) and manually extend the low frequency roll-off (I estimated the slope to be about 10dB/oct).
This gave me the "final" earbud mic calibration curve:

Let's export this to a text file and do some validation with REW to see how the measurements made by the earbud mic with this "DIY" calibration file compares to a measurement made with the "officially" calibrated Dayton mic:
Now we're talking! This is very close indeed!
Now I repeated the WiiM RC measurement with the earbud mic and my "DIY" calibration file loaded. This was the result:

Looking much better now!
Let's validate with REW and compare the responses without any RC, with RC calculated based on measurement with the phone built-in mic, one made with stock/uncalibrated earbud mic, and finally one made with the earbud mic calibrated with my "DIY" calibration file:

As we can see, when using the uncalibrated earbud mic with RC the low frequencies are boosted a lot because WiiM RC algorithm can't know that the mic is rolling-off the lows (and by how much).
With the phone built-in mic we also see some bass boost, but not as much.
When using the "DIY" calibration file we get a very nice and flat bass response. This also sounds the best (to me).
In all tests above I used individual channel correction and the following RC settings:

While I'm not really sure about the unit-to-unit response consistency of Samsung USB-C EO-IC100 earbud mic response (and therefore how applicable my "DIY" calibration curve will be to others), perhaps some might still make some use of the file so I'm sharing it here:
The calibration file is also attached to the post.
Hope some will find this interesting/useful!
Today I had some time to experiment with WiiM Room Correction feature, and specifically I wanted to test the new WHA microphone calibration file import feature.
First some background: when I use the built-in phone mic on my Samsung S23+ the measurements look terrible because the built-in mic has a terrible response - notice especially the peaking at about 8kHz and the rising response after that:

Measuring with REW and my Cross-Spectrum Labs calibrated Dayton Audio EMM-6 tells a different story - no peak at 8kHz and a much flatter high frequency response:

I wanted a simple way to get more reliable RC results, so I started thinking about how to use the calibrated Dayton mic on my phone. This is an analogue XLR mic, so connecting it to the phone requires a USB class-compliant audio interface with phantom power and an assortment of cables and adapters. I really wanted something simpler, so I remembered I also had Samsung USB-C wired earbuds (model EO-IC100) lying around which also had a mic.
Using the mic from these earbuds for room correction gave me the following response:

Now isn't this a mix of both better and worse!

We can see the higher frequencies look more reasonable, but there is obviously a low frequency roll-off in the mic - which results in WiiM RC boosting low frequencies by A LOT.

So naturally

To do this, I measured the response of my system 5-6 times with REW using the MMM method and RMS-averaged the measured responses. I repeated the same procedure for both the calibrated Dayton mic, and the earbud mic.
This is the comparison of averaged responses of the same system measured with both of the two mics:

As expected, the earbud mic shows a very significant low frequency roll-off, and a wonky high frequency response.
To create a calibration curve I first used REW Trace Arithmetic function to divide the response of the earbuds with the response of the calibrated mic, thereby normalizing the response measured with the earbud mic to the calibrated mic response.
This gives a difference curve which corresponds roughly to the earbud mic frequency response curve:

This is however unnecessarily precise, and experience tells me that the mid-frequency irregularity and <30Hz response is caused by noise, room nulls and measurement error.
So next step was to smooth the response (1/3 octave) and manually extend the low frequency roll-off (I estimated the slope to be about 10dB/oct).
This gave me the "final" earbud mic calibration curve:

Let's export this to a text file and do some validation with REW to see how the measurements made by the earbud mic with this "DIY" calibration file compares to a measurement made with the "officially" calibrated Dayton mic:

Now we're talking! This is very close indeed!
Now I repeated the WiiM RC measurement with the earbud mic and my "DIY" calibration file loaded. This was the result:

Looking much better now!
Let's validate with REW and compare the responses without any RC, with RC calculated based on measurement with the phone built-in mic, one made with stock/uncalibrated earbud mic, and finally one made with the earbud mic calibrated with my "DIY" calibration file:

As we can see, when using the uncalibrated earbud mic with RC the low frequencies are boosted a lot because WiiM RC algorithm can't know that the mic is rolling-off the lows (and by how much).
With the phone built-in mic we also see some bass boost, but not as much.
When using the "DIY" calibration file we get a very nice and flat bass response. This also sounds the best (to me).

In all tests above I used individual channel correction and the following RC settings:

While I'm not really sure about the unit-to-unit response consistency of Samsung USB-C EO-IC100 earbud mic response (and therefore how applicable my "DIY" calibration curve will be to others), perhaps some might still make some use of the file so I'm sharing it here:
16.000000 -25.804
18.000000 -24.654
20.000000 -23.232
22.400000 -21.667
25.000000 -20.151
28.000000 -18.589
31.500000 -16.973
35.500000 -15.489
40.000000 -13.964
45.000000 -12.524
50.000000 -11.333
56.000000 -10.232
63.000000 -9.239
71.000000 -8.376
80.000000 -7.782
90.000000 -7.376
100.000000 -6.572
112.000000 -5.634
125.000000 -4.709
140.000000 -3.760
160.000000 -3.362
180.000000 -2.591
200.000000 -2.208
224.000000 -2.780
250.000000 -2.506
280.000000 -1.903
315.000000 -2.493
355.000000 -2.493
400.000000 -0.945
450.000000 -0.262
500.000000 -0.739
560.000000 -0.919
630.000000 -0.800
710.000000 -0.769
800.000000 -0.668
900.000000 -0.251
1000.000000 -0.045
1120.000000 0.008
1250.000000 0.023
1400.000000 -0.161
1600.000000 -0.257
1800.000000 -0.071
2000.000000 0.063
2240.000000 0.334
2500.000000 0.564
2800.000000 0.760
3150.000000 1.021
3550.000000 1.314
4000.000000 1.815
4500.000000 2.552
5000.000000 3.124
5600.000000 3.165
6300.000000 2.370
7100.000000 0.980
8000.000000 -0.829
9000.000000 -2.943
10000.000000 -3.773
11200.000000 -3.045
12500.000000 -2.482
14000.000000 -2.126
16000.000000 -0.764
18000.000000 0.870
20000.000000 0.585
22400.000000 -3.401
18.000000 -24.654
20.000000 -23.232
22.400000 -21.667
25.000000 -20.151
28.000000 -18.589
31.500000 -16.973
35.500000 -15.489
40.000000 -13.964
45.000000 -12.524
50.000000 -11.333
56.000000 -10.232
63.000000 -9.239
71.000000 -8.376
80.000000 -7.782
90.000000 -7.376
100.000000 -6.572
112.000000 -5.634
125.000000 -4.709
140.000000 -3.760
160.000000 -3.362
180.000000 -2.591
200.000000 -2.208
224.000000 -2.780
250.000000 -2.506
280.000000 -1.903
315.000000 -2.493
355.000000 -2.493
400.000000 -0.945
450.000000 -0.262
500.000000 -0.739
560.000000 -0.919
630.000000 -0.800
710.000000 -0.769
800.000000 -0.668
900.000000 -0.251
1000.000000 -0.045
1120.000000 0.008
1250.000000 0.023
1400.000000 -0.161
1600.000000 -0.257
1800.000000 -0.071
2000.000000 0.063
2240.000000 0.334
2500.000000 0.564
2800.000000 0.760
3150.000000 1.021
3550.000000 1.314
4000.000000 1.815
4500.000000 2.552
5000.000000 3.124
5600.000000 3.165
6300.000000 2.370
7100.000000 0.980
8000.000000 -0.829
9000.000000 -2.943
10000.000000 -3.773
11200.000000 -3.045
12500.000000 -2.482
14000.000000 -2.126
16000.000000 -0.764
18000.000000 0.870
20000.000000 0.585
22400.000000 -3.401
Hope some will find this interesting/useful!