JSpeex декодирование не работает - PullRequest
1 голос
/ 21 марта 2012

Я использую библиотеку JSpeex для кодирования звука.Кодировка работает нормально.Но декодирования нет. (Т.е. я получаю все нули как декодированные данные.)

// encoding ///

SpeexEncoder enc = new SpeexEncoder();


// if i use channel as 1 instead of 2 even encoding doesn't work

enc.init(mode, quality, 44100, 2);

enc.processData(b, 0, b.length); // b is byte array i'm trying to encode & then decode

enc.getProcessedData(temp, 0); // save encoded data to temp // temp is byte array

////Decoding /////////

SpeexDecoder dec = new SpeexDecoder();

dec.init(mode,44100,2,true);

dec.processData(temp, 0, temp.length);

dec.getProcessedData(decoded, 0); //decoded is the output byte array which comes only zeros

Если у кого-то есть информация по этому вопросу, пожалуйста, ответьте.

1 Ответ

0 голосов
/ 11 января 2013

Я понимаю, что этот пост немного устарел, но столкнулся с аналогичной проблемой с Speex.js (порт javascript).

Не уверен, что проблема та же для вас, но я обнаружил, что было неявное преобразование из Float32Array в Int16Array, которое фактически не преобразовывало данные.Это означало, что все данные с плавающей запятой (-1.0,1.0) были по существу целыми нулями и были преобразованы как таковые.

Просто нужно было выполнить преобразование в Int16Array перед передачей данных (чтобы не потребовалось преобразование данных в библиотеке), и вывод перешёл к life :)*Надеюсь, это поможет.ура!

...