The | takes the output of the left command and pipes it as input the right command. Mind, that this is done in a subshell. Hence you cannot set values of vars of the calling process wihtin a pipe.
find . -type f -a -iname '*.mp3' | \
while read filename; do
mute --noise "...