Word of cartographic advice: Don't do this. Some things like house numbers (as in your example) are only meant to be displayed at large scales, not when zooming out. Everything else is bad practice, since it overloads and covers up the map, leads to colliding labels and is confusing in general.
As to your problem: In the image below you see the properties tab of a point layer.
labeling and in the
text sub-tab hit the rectangle with the triangles attached to it to the right of the
size field, choose
edit and enter the following:
WHEN @map_scale < 1000 THEN 10
WHEN (@map_scale >= 1000 AND @map_scale < 5000) THEN 8
WHEN (@map_scale >= 5000 AND @map_scale < 15000) THEN 6
This is a basic example of how to create scale-dependent text size. Obviously it needs tweaking so it fits your needs.