Spanish Audio por UDP

dkhiri

New Member
Licensed User
Longtime User
Hola a todos,

Estoy intentando realizar una aplicación que, cuando hables por el micrófono, el audio sea enviado por UDP. El principal problema que tengo es que necesito que el audio utilice el codec G.711u y es lo que no se como hacerlo. ¿Alguien tiene alguna idea?

Muchas gracias
 

JordiCP

Expert
Licensed User
Longtime User
Creo que AudioRecord utiliza PCM lineal (8 o 16 bits). G711 también es PCM pero no lineal, por lo tanto ncesitarás convertirlo.

Desconozco si hay alguna librería en B4A que haga el trabajo. Si no, siempre se puede implementar en B4A (aquí el equivalente en C). Ten en cuenta que en B4A y Java los bytes son signed!!
B4X:
int8_tMuLaw_Encode(int16_t number)
{
  constuint16_t MULAW_MAX =0x1FFF;
  constuint16_t MULAW_BIAS =33;
  uint16_t mask =0x1000;
  uint8_t sign =0;
  uint8_t position =12;
  uint8_t lsb =0;
  if(number <0){
    number =-number;
    sign =0x80;
  }
  number += MULAW_BIAS;
  if(number > MULAW_MAX){
    number = MULAW_MAX;
  }
  for(;((number & mask)!= mask && position >=5); mask >>=1, position--);
  lsb =(number >>(position -4))&0x0f;
  return(~(sign |((position -5)<<4)| lsb));
}

(código sacado de: http://dystopiancode.blogspot.com.es/2012/02/pcm-law-and-u-law-companding-algorithms.html )
 

dkhiri

New Member
Licensed User
Longtime User
Muchas gracias Jordi. Probaré a ver si tengo suerte con la conversión y diré algo.
 
Top