ffmpeg also works! Code below chops your sound up in 2-second files:
ffmpeg -i input.wav -f segment -segment_time 2 output_%03d.wav
I don’t remember how to do this elegantly but if you put all your newly chopped files in a new directory you can then zero cross them as follows (using the 2-second files you made earlier. Hence the fade-in starting at 0 for a duration of 0.001 second, and the fadeout starting at 1.999 second for the same duration):
for i in *.wav; do ffmpeg -i "$i" -af "afade=t=in:st=0:d=0.001,afade=t=out:st=1.999:d=0.001" "${i%.*}_zerocrossed.wav"; done
and this does all the above in one command (deletes the non-zero-crossed files):
if [ ! -d segmented ]; then mkdir -p segmented; else echo folder exists; fi && for i in *.wav; do ffmpeg -i "$i" -f segment -segment_time 2 "segmented/${i%*}%02d.wav"; done; cd segmented; mkdir -p segzc; for i in *.wav; do ffmpeg -i "$i" -af "afade=t=in:st=0:d=0.001,afade=t=out:st=1.999:d=0.001" "segzc/${i%.*}_zc.wav"; done; mv segzc ../ ; cd ..; rm -r segmented
further edit: made a bash script with variable chunk length and fade times. Works with aiff, wav and flac