Articles of audio

接收wav文件并将其写入Node / Express Server上的磁盘

我使用以下方式将audio文件发送到Node / Express服务器: curl -X POST -H "Content-Type: audio/wav" –data-binary @"hello.wav" http://127.0.0.1:3000/extract_indicators/audio/darksigma 我正在使用下面的代码: … app.use(bodyParser.raw({ type: 'audio/wav', limit: '50mb' })); … app.post('/extract_indicators/audio/:user_id', function (req, res) { console.log("RECIEVED AUDIO TO EXTRACT INDICATORS: ", req.body); var writeStream = fs.createWriteStream('sample.wav'); req.pipe(writeStream); res.sendStatus(200); }); 但sample.wav文件最终是空的。 有任何想法吗?

我怎样才能通过websockets同步两个javascript定时器

我有一个网站与一个JS视觉节拍器(如指挥),可以通过websocket在多台机器上触发。 我怎样才能使节拍器的开始尽可能地同步? 谢谢。

如何使用WebaudioAPI在浏览器上播放ArrayBufferstream?

我有一个独立的设备,使用ffmpeg和streamaudio到我的节点服务器。 我使用ffmpeg命令对stream进行编码 ffmpeg -f alsa -i hw:0 -acodec mp2 -f mp3 -r 30 http://localhost:8086/abc 输出: ffmpeg version 0.8.8-4:0.8.8-0ubuntu0.12.04.1, Copyright (c) 2000-2013 the Libav developers built on Oct 22 2013 12:31:55 with gcc 4.6.3 [alsa @ 0x20ef9c0] Estimating duration from bitrate, this may be inaccurate Input #0, alsa, from 'hw:0': Duration: N/A, start: 10088.609013, bitrate: N/A […]

当从socket.io – node.js接收到消息时,从客户端播放audio

我已经寻找了一个解决这个问题的时间,但没有find太多。 我的目标是从udp客户端收到一条消息,服务器接收并转发给Web客户端,每次收到消息时都会播放一个audio剪辑。 但是,由于某些原因,audio不能播放。 如果我直接从我的目录打开页面,audio可以播放,但如果我尝试通过本地访问它,它无法加载。 有谁知道一个解决scheme? 这里是客户端JavaScript。 var mySound = new Audio('/public/audio/Bloom.mp3'); mySound.load(); var socket = io.connect('http://localhost'); socket.on('message', function(data){ console.log(data); $('#content').text(data); mySound.play(); //document.getElementById('audiotag1').play(); }); 这个页面是由server.js服务的,它是一个使用socket.io和express的node.js文件。 我没有收到我的console.log中的任何错误。 这里是server.js var app = require('express')() , server = require('http').Server(app) , io =require('socket.io')(server) , dgram = require('dgram'); var httpPort = 1234; var udpPort = 5000; server.listen(httpPort); app.use(server.express.static( __dirname + '/public')); app.get('/', […]

原始缓冲区数据在audio标签中播放

我正在制作一个Web应用程序,在这里我使用套接字IO将用户麦克风audio传输到NODE JS服务器,然后重新传播数据。 <Buffer 59 00 76 00 92 00 a0 00 aa 00 b1 00 aa 00 92 00 7c 00 74 00 75 00 7e 00 8f 00 9d 00 9c 00 98 00 94 00 85 00 7c 00 8a 00 8f 00 6c 00 4f 00 5d 00 67 00 48 …> […]

将videostream转换为audio时(w / FFMPEG&Node.js)设置内容长度

所以我正在构build一个程序,要求我拍摄一个video并将其转换为audio。 我目前正在通过node.js将audio直接传输到浏览器,但是我遇到了一个主要问题:我不知道如何找出我的audio有多less个字节。 结果,当我没有得到正确的内容长度时,浏览器一直在抛出net::ERR_CONTENT_LENGTH_MISMATCH 。 我尝试了几种策略,都失败了: 手动计算大小(秒*比特率(kbps)*(1024/8))。 这产生了一个近似的答案,因为我只知道长度到最近的几秒钟。 即使我比较接近,我仍然得到相同的MISMATCH错误。 将streampipe道传送到缓冲区,获取缓冲区的长度,并将缓冲区传送到浏览器 这可以工作,但是加载每首歌曲可能需要15-20秒。 这是非常慢,并在服务器上承受相当大的负载

带有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; } […]

使用Node.js创builddynamicaudio

问题 我的应用程序(莫尔斯电码翻译器)接受用户input并将文本转换为在路线后播放的声音。 但是,我目前的应用程序将只播放一个声音,即使多次调用该方法也不会更多。 它从节点进程播放,而不是在客户端。 我觉得这需要创build一些types的audiostream,然后将其作为响应的一部分发送给用户,但我需要一些关于如何做到这一点的指针。 编辑 看起来这不是特别容易,所以我猜测作弊的方法就是为每个声音创build一个audio文件,然后为那些给定的声音渲染一个audio元素。 我很想看到一个非常简单的例子,就是如何dynamic地通过Node.js制作audio。 结构体 在我的服务器中,我尝试调用短audio爆发的函数,但只引发一个声音。 Server.js var express = require('express'), jade = require('jade'), bodyParser = require('body-parser'), morseCode = require('./lib/translateMorseCode'), playSound = require('./lib/playSound'), sfx = require('sfx'), app = express(); app.use(bodyParser.urlencoded({ extended: true })); app.set('view engine', 'jade'); app.set('views', './views'); app.get('/', function(req, res) { res.render('index'); }); app.get('/translation', function(req, res) { var untranslated = […]

将PCM-Streamspipe道化为一个function

我有两个PCMstream( decoder1 + decoder2 ): var readable1 = fs.createReadStream("track1.mp3"); var decoder1 = new lame.Decoder({ channels: 2, mode: lame.STEREO }); readable1.pipe(decoder1); 和 var readable2 = fs.createReadStream("track2.mp3"); var decoder2 = new lame.Decoder({ channels: 2, mode: lame.STEREO }); readable2.pipe(decoder2); 现在我想把stream传输到一个混合函数中,我可以使用这个缓冲区函数: function mixStream(buf1, buf2, callback) { // The mixStream-Function is not implemented yet (dummy) var out = new Buffer(buf1.length); […]

用node.js和node-record-lpcm16录制16位WAVEaudio

我使用的系统是一个名为Raspbian(基于Debian的)的Linux发行版。 我试图用node-record-lpcm16录制一个.wavaudio文件。 它开始录制,但一旦启动完成。 结束时间是56ms。 因此test.wav结果为空。 我不明白为什么它不工作,因为没有发生错误。 你有什么主意吗? 谢谢!