Estoy tratando de pasar la salida del micrófono en una aplicación Flutter a un servidor Node que transmite un servicio de voz a texto a través de un websocket. El micrófono produce una lista Uint8 que estoy tratando de convertir a un ArrayBuffer de javascript y enviar a través del websocket. El servicio de nodo funciona bien con otros clientes y, en la inspección, recibe datos que parecen del websocket:
<Buffer f9 ff fa ff f9 ff f7 ff f5 ff f7 ff f8 ff f5 ff f2 ff f0 ff f5 ff f7 ff f1 ff f2 ff f1 ff f2 ff f6 ff f5 ff f2 ff f4 ff f7 ff f7 ff f7 ff f9 ff fe ff ... 2922 more bytes>
Sin embargo, con la aplicación Flutter, recibe datos que se ven así:
[ 7, 13, 114, 101, 99, 111, 114, 100, 105, 110, 103, 68, 97, 116, 97, 13, 4, 7, 7, 115, 117, 99, 99, 101, ... ]que no puede ser consumido por el servicio STT. ¿Alguien puede ayudarme con esto? El servicio STT espera datos de audio en el siguiente formato:
- PCM format - One channel - 16 bits per sample, 8,000 or 16,000 samples per second (16,000 bytes or 32,000 bytes per second) - Two-block aligned (16 bit including padding for a sample)Creo que es el último requisito el que me hace tropezar.
EDITAR: Resolví esto envolviendo la matriz en un Uint8Array en el lado del nodo const uint8Array = new Uint8Array(data) . No pude hacer que Flutter generara los datos en el formato requerido