I've had this trouble; there's been a lot of discussion on Xiaomi (not .eu) forums, with no clearcut solution. Things that people say have happened: dirt in ear speaker hole; new phone with protective foil over speaker. Not in my case, with then-new RN7 (lavender). I've seen suggestions to increase digital volume; this does increase volume, but causes distortion, increasing with the boost. See this article for details. The method I recommend is to change analog volume, which doesn't distort seriously until clipping starts. This involves editing a system file, so you need a rooted phone (you might be able to copy the file off a not-rooted phone with the help of a custom recovery like TWRP, edit it, and copy it back).... call volume ... I can barelly hear people talking. The volume is super low.
There are several copies of file mixer_paths.xml; I think the one to edit is in /system/vendor/etc (the other relevant copy is in /vendor/etc; I think one is a link to the other).
In section <path name="handset">, edit the line
<ctl name="EAR PA Gain" value="POS_4P5_DB" />
This means that the gain is +4.5dB
I changed the value to "POS_7P5_DB"
Usual precaution: keep unaltered backup copy. I don't (yet) know if I'll have to repeat the edit after some update.
It can also help to press the volume-up button on the side during a call.
HTH