Reducing the samples from ADC

hi…
i am working on tx_voice.py and rx_voice.py. I have to capture data
directly from usrp and write onto a file and process that. The problem
is that the file which is made by the data coming from usrp is very big
so basically i am not able to process that. Is there any way by which i
can reduce the size of the file without affecting my audio quality much.

The rates which i am presently using on the tx_voice.py are:
Bitrate- 50,000
samples per symbol - 5
interpolation - 512

Rates which i am using on the rx_voice.py are:
Bitrate- 50,000
samples per symbol - 5
decimation - 256.

Moreover, i have tried using gr.fir_filter_ccf (for decimatio in
software)in the following fashion

    chan_coeffs = gr.firdes.low_pass (1.0,                  # gain
                                      self._samples_per_symbol, # 

sampling rate
1.0, #
midpoint of trans. band
0.1, # width
of trans. band
gr.firdes.WIN_HANN) # filter
type

    self.chan_filt = gr.fir_filter_ccc(sw_decim, chan_coeffs)

and making a connection as
fg.connect(self.u, self.chan_filt, self.packet_receiver)
fg.connect(self.chan_filt,destination)

where destination refers to the file onto which i want to write.Now,
this works fine as long as sw_decim =1. But, if i change the value to
2,4 ,8 or any other then i dont receive any packet. The file size does
change as required (i am able to observe that as the usrp is always
sending data). what i have understood is that because of the decimation
i am missing samples and thus not able to receive packets.So, can
somebody please explain how to get around the situation.

Thanks for all the help.
Pratik Hetamsaria