Butterworth filter for signal processing
First of all when you work with MATLAB I suggest you to use a time axis t.

[x,Fs] = audioread('go10.wav'); % to read the data
t=(0:length(x)-1)/Fs;
plot(t,x) ; % Now when you plot you can see the time in seconds


The code seems to be correct. A butterworth bandpass filter, like others bandpass filter keep only the frequencies in the interval from beginFreq and endFreq. It is impossible to make a perfect filter, so there are a lot of filters like bessel, cebicev, butterworth,... each one have some particular properties and the choice of the better filter depends on the application. In sound processing butterworth filter is quite good. The human voice goes from 100Hz to 1100Hz, if you want to keep the voice in your signal you should change your values to:

beginFreq = 100/ (Fs/2);
endFreq = 1100/ (Fs/2);


A passband filter, like this butterworth, keep only the frequencies in the range you have chosen, so if you have noises in your signal that can't are human voices this filter will remove them. However this filter keeps all noises that have frequency in the vocal range.