Estaba usando Google Cloud Speech para reconocer la transmisión de audio (desde el micrófono) en el servidor del nodo. Al mismo tiempo, me gustaría almacenar el audio transmitido en un archivo. Dado que el reconocimiento de transmisión se realiza en fragmentos de búferes, ¿cómo podría combinar todos los búferes y almacenarlos como un solo archivo de audio?
El código real que estaba usando está adaptado de esta biblioteca , donde la codificación de audio en el lado del servidor se define como
const encoding = 'LINEAR16'; const sampleRateHertz = 16000;Y cada vez que haya una transmisión de audio, se enviará a través de la API de la nube:
client.on('binaryData', function (data) { if (recognizeStream !== null) { recognizeStream.write(data); } }); En el lado del cliente, el búfer se preprocesó en este archivo (se redujo la muestra en un Int16Array ).
Entonces, ¿puedo simplemente concatenar cada búfer y guardarlo en un archivo pcm en el lado del servidor, cuando finalice la transmisión? ¿O necesito fusionar los búferes de una manera compleja (como usar audiobuffer-to-wav ?