Nothing but rhythm was left after encoding and decoding by speex on ipad(XCode 4.1 48110)

刘华 <[email protected]>
Newsgroups gmane.comp.audio.compression.speex.devel
Message-ID <CAL-8rhMNAQv_i0w_j=nXk7T3=ArgPhvWmhdU4DcpJ4K8H__zyg@mail.gmail.com>
hi,

I tried to encode the voice data read from AudioQueue and then decode
it. There was nothing but rhythm left, it sounds like robot's voice,
but I cannot recognize any word.

The app was compiled by XCode 4.1. Speex 1.0.5 and 1.2.rc1 gave the
same result. When compiling speex 1.0.5, I  added them to Xcode
project, set the Header Search Paths, then compiled successfully. When
compiling speex 1.2.rc1, I included the config.h file generated by the
configure on Mac OS X 10.7.1(add "#include config.h" in arch.h) and
did the same thing with that on speex 1.0.5.

The following is the code I used to encode and decode, it works
properly in Android 3.0:

static int speexo_encode(const void *in_bytes, void *out_bytes, int size)
{
	if (!codec_open)
		return 0;

	int return_value;

	speex_bits_reset(&ebits);
	
	//speex_echo_capture(echo_state, (short*)in_bytes, (short*)in_bytes);
	
	//speex_preprocess_run(prep_state, (short*)in_bytes);
	
	speex_encode_int(enc_state, (short*)in_bytes, &ebits);
	if(speex_bits_nbytes(&ebits) >= (int)size) {
		return_value = 0;
	}
	else {
		return_value = (int)speex_bits_write(&ebits, (char*)out_bytes, size);
	}
	
	return return_value;
}

static int speexo_decode(const void *in_bytes, int in_len, void *out_bytes)
{
	if (!codec_open)
		return 0;

	int return_value;

	speex_bits_reset(&dbits);
	speex_bits_read_from(&dbits, (char *)in_bytes, in_len);
	if (0 != speex_decode_int(dec_state, &dbits, (short*)out_bytes)) {
		return_value = 0;
	}
	else {
		return_value = dec_frame_size*2;
	}

	return return_value;
}

Please give your suggestion, thanks.
_______________________________________________
Speex-dev mailing list
[email protected]
http://lists.xiph.org/mailman/listinfo/speex-dev
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.