0

我正在尝试接收具有以下结构的有效负载:

带有 MIME 多部分内容的 HTTP POST 请求消息。

  1. 第一部分是 JSON 格式,涵盖呼叫元数据。

  2. 第二部分是编码为 16 位 PCM 的波形音频。

我写了下面的代码。但是,我收到的音频已损坏并且有很多噪音。我有一种感觉,这是由于请求数据 (MIME) 处理不当,因为我确认发出的音频是清晰的,因为我通过wireshark 下载截获的音频文件来收听它。

app.post('/export-call', handler(async (req, res) => {
    const body = req.body;
    console.log('req:', Object.keys(req.body));
    //logger.info(JSON.stringify(req.body));
    connectToDb();
    if (body.metadata && body.media_audio_wav) {
        const metadataParse = JSON.parse(body.metadata)
        const metadataObj = metadataParse.metadata
        const tempLocation = "/opt/sa/exportBrokerTesting/"
        const audio = body.media_audio_wav
        const audioBinary = new Buffer(audio, 'binary');
        wav.fromScratch(2, 8000, '16', audioBinary, 'binary');
        fs.writeFileSync(tempLocation + metadataObj.callId.toString() + '.wav', audioBinary);
    } else {
        logger.info('Metadata/ Audio is undefined')
        res.sendStatus(204)
    }
}))
4

0 回答 0