sounds.json allows the pitches of certain sounds to be defined, and is used by vanilla in several cases. However, in several cases, the pitch actually played in-game can actually vary from what is represented in sounds.json itself, usually due to hardcoded cases which cannot be modified through sounds.json.
To reproduce:
(optional) Check the sounds.json in the resource pack to see what is defined, what pitch to expect, and possibly recreate it with playsound
Apply the provided testing resource pack
Create a setup like what is shown
Spawn a fox inside to cause the sound event entity.fox.hurt to play
Note how the pitch of the sound actually varies in this case, despite it being defined as a constant within sounds.json
(optional) Spawn a baby fox and note how in addition to varying in pitch, it is also consistently higher pitched, despite this also not being defined
The suggested fix to this would be to remove these hardcoded pitch variations, and instead implement a pitch range feature into sounds.json's definition itself to allow for this to be removed via resource packs when undesirable, as well as to allow for other customization options for resource packs.
This is a feature request.