Tag: audiocontext

从AudioBuffer中的Node.js中写入一个wav文件

我在Node.js编程中是新的,我试图将m4a文件转换为wav文件。 我使用了audiobuffer-to-wav和web-audio-api。 这是我的代码: const fs = require('fs'); const toWav = require('audiobuffer-to-wav'); const AudioContext = require('web-audio-api').AudioContext; const audioContext = new AudioContext; let resp = fs.readFileSync('sample.m4a'); audioContext.decodeAudioData(resp, buffer => { let wav = toWav(buffer); console.log(buffer.length); console.log(wav); }); 我想知道如何将节点variables保存到Node.js文件中

带有AudioContext的Socket.io在接收时发送和接收audio错误

我正在尝试构build一些东西,用户可以使用socket.io,audioContext,js作为前端,Node.js,socket.io作为服务器,让用户可以即时发送audio给很多人。 我可以录制audio,将其发送到服务器并将其发回给其他用户,但我无法播放这些数据。 我想这肯定是我发送它们的问题,或者我如何处理接收它们的缓冲区。 我得到以下错误: 更新! 传递给decodeAudioData的缓冲区包含未知的内容types。 audio传递正常,缓冲区没有错误地创build,但没有声音反馈。 用户按下logging,并开始logging/stream与他以下function: 这是如何开始的: navigator.getUserMedia({audio: true,video: false}, initializeRecorder, errorCallback); function initializeRecorder(stream) { var bufferSize = 2048; audioCtx = new (window.AudioContext || window.webkitAudioContext)(); var source = audioCtx.createMediaStreamSource(stream); var recorder = audioCtx.createScriptProcessor(bufferSize, 1, 1); recorder.onaudioprocess = recorderProcess; source.connect(recorder); recorder.connect(audioCtx.destination); recording = true; initialized = true; play = false; stop = true; } […]

当检测到静音(JS)时,如何将前面的audio(从麦克风)提取为缓冲区?

我正在使用Google Cloud API进行语音到文本,并使用NodeJS后端。 该应用程序需要能够侦听语音命令,并将其作为缓冲区传输到后端。 为此,当检测到静音时,我需要发送前一个audio的缓冲区。 任何帮助,将不胜感激。 包括下面的js代码 if (!navigator.getUserMedia) navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia; if (navigator.getUserMedia) { navigator.getUserMedia({audio: true}, success, function (e) { alert('Error capturing audio.'); }); } else alert('getUserMedia not supported in this browser.'); var recording = false; window.startRecording = function () { recording = true; }; window.stopRecording = function […]