Articles of audio

使用Python脚本从NodeJS服务器播放audio

我正在尝试使用python播放audio文件。 虽然我只是需要重现audio文件,但我会用一个覆盆子的GPIO。 当我收到一个HTTP GET到相关链接时,它应该执行一个python脚本并重现audio。 但是,从API只能再现短暂的声音。 我的文件有10秒,但播放的噪音小于1秒。 这是我的控制器 // Controller /* importar o módulo child_process */ var cp = require('child_process'); /* importar o módulo node-omxplayer */ var omx = require('node-omxplayer'); /* importar o módulo python-shell */ var ps = require('python-shell'); // Caminhos para os scripts pythons var options = { scriptPath: '/home/pi/Documents/apiRest/api/files/' }; /* O módulo […]

使用ffmpeg,javascript和nodejs实况audio

我对这件事很陌生。 请不要挂我的语法差。 我正试图创build一个概念certificate应用程序,我将在以后扩展。 它执行以下操作:我们有一个html页面,要求获得使用麦克风的权限。 我们捕获麦克风input,并通过websocket发送到节点js应用程序。 JS(客户端): var bufferSize = 4096; var socket = new WebSocket(URL); var myPCMProcessingNode = context.createScriptProcessor(bufferSize, 1, 1); myPCMProcessingNode.onaudioprocess = function(e) { var input = e.inputBuffer.getChannelData(0); socket.send(convertFloat32ToInt16(input)); } function convertFloat32ToInt16(buffer) { l = buffer.length; buf = new Int16Array(l); while (l–) { buf[l] = Math.min(1, buffer[l])*0x7FFF; } return buf.buffer; } navigator.mediaDevices.getUserMedia({audio:true, video:false}) .then(function(stream){ […]

Icecast元数据提取在输出audio数据中产生工件

我试图(在NodeJS中 ): 连接到Icecast互联网audiostream。 例如: http : //icecast3.977music.com/comedy parsing响应头并提取icy-metaint值。 将原始audio数据写入文件,同时从audiostream中提取元数据字节,以便: 元数据到达时拦截并parsing。 不要在输出文件中包含元数据字节,以免由于注入的元数据而导致audio失真。 在SmackFu的“非官方”Shoutcast元数据协议页面之后,我已经能够得到这个了: https://gist.github.com/e7474421dcb25e011620 基本上,我能够提取元数据时,预期(只有1个元数据事件在stream转储包括在头脑的最初)。 这部分似乎工作正常。 问题是输出的MP3文件在整个文件中都有明显的audio失真,据推测当元数据字节到达时。 但是,我肯定会提取这些元数据字节,不包括他们在输出文件,所以这是怪异的一部分。 上面的链接中的协议文档没有说输出文件需要做什么,但显然我仍然做错了什么。 有人知道还有什么需要做的audiostream? 提前致谢!

如何使用websocket中的二进制数据stream填充数组

我从websocket获得了连续的字节数据stream。 当我用这个函数查看数据时: document.getElementById('log').innerHTML = document.getElementById('log').innerHTML + msg + "<br />"; 它看起来像这样: -0.00005645785104823496 0.00000906544783255643 -0.001234972515485563 0.00000008534781277461 . . . 我想填充它看起来像一个数组 var inp = new Array(event.data) , arr = new Float32Array() ; for(var i = 0;i <arr.length; i++) { arr[i] = inp[i]; } 如何填充从websocket接收数据的inp [i]数组。 谢谢

WAV格式的差异(JS / NodeJS)

我正在尝试使用WebRTC来录制audio,然后将其存储在服务器端。 我的服务器是使用NodeJS制作的,而且我正在使用POST将数据从客户端传输到服务器。 在客户端上,我将数据从wav BLOB转换为base64,然后在服务器端读取数据,将其翻译为二进制数据,然后将其写入文件中。 应该没事吧? 只有一个问题:我从客户端下载的内容和发送到服务器的内容之间出现了一些非常不好的不一致之处。 有时它是增加的字节,有时候它只是被删除的数据块。 如果只是添加了字节,那就意味着一个字符集问题(从一个到另一个,然后是另一个等),但是在某些时候我增加了280个字节。 我在这里添加了一个hex diff的图片: http : //i.stack.imgur.com/psqf4.png (抱歉,我没有足够的声望直接发布图片) 另外,运行这些文件给我以下:(uuid.wav是服务器之一,而output(1).wav是客户端之一) 9F2B75D3-4C34-4C8F-935E-FC7637D7A054.wav: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 4 bit, stereo 11321924 Hz output (1).wav: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, stereo 44100 Hz …显然这里有什么问题。 此外,试图修复头,或转换WAV给我一个错误沿线:无法find数据块/数据块大小为0。 任何想法可能是什么原因造成的?

将audio从浏览器stream到nodejs

我知道这是一个很长的镜头,但是我想知道这是否可能,并且(如果可能的话)有人指出我正确的方向。 我有一台linux机器(运行nodejs服务器),使用VLC将播放列表(本地文件)stream式传输到networking。 在那个networking中,还有10台其他的linux机器正在播放服务器发送的数据stream(也使用VLC)。 我想知道是否有可能开发一个networking应用程序,可以传输audio从计算机浏览器到服务器,以便它可以stream式传输到其他机器; 我发现这 一点,但我不明白这一点。 即使我可以将现场audio传输到服务器,我也不知道是否可以“重新传输”到其他机器;

我如何将audio数据从波浪冲浪区域复制到新的audio缓冲区?

Wavesurfer.js是伟大的,但有点混乱。 我已经实现了波浪冲浪,但是我想要构build一种切割用户select的audio区域并将其粘贴到新的audio缓冲区的方法 。 目前,我是在区域js文件的控制台日志logging来尝试获取开始和结束时间,但变得非常困惑。 这是我点击并拖动来创build区域的波形。 我想能够运行一个函数,将这部分复制到一个新的audio缓冲区。 我已经在JS区域login了这里。 将其输出到控制台。 然而。 当我打印region.start或region.end到控制台,它不断0和0.0800 ….你可以在预览中看到日志,但是一旦你展开看到更多的实际区域开始和结束存在。 我不知道这是为什么。 这个链接解释了复制和粘贴整个文件。 使用networkingaudioapi和waveurfer.js剪切和粘贴audio 任何线索? 我假设我需要得到开始和结束的数字,然后使用ffmpeg将其切出,或者如果有一种方法,我可以通过Web Audio API和Wavesurfer自己做,这将是最好的。 谢谢

在networking上使用audio

嘿,伙计们,我需要一些提示或资源如何通过networking使用audio。 基本情景:有人打开麦克风,开始录制他的歌曲。 完成后,他可能想要添加一些音效。 这甚至有可能吗? 我没有胶水在哪里开始。 也许你可以build议一些工具甚至npm包。 提前致谢!

连接audioblob

我尝试使用Muaz Khan的Web RTC实验连接audioblob,但是当我播放连接的audio时,HTMLaudio元素不显示audio文件的全长,并且如果您下载并播放,则问题将持续存在。 我用ffmpeg来拼接这些blob,但是有没有一种方法可以用来连接audioblob,使用Muaz Khan的Web RTC js实验 。 类似的尝试也没有解决: 合并两个audioblob录音

修改Alexaaudio播放器示例项目以播放特定音轨

我已经从https://github.com/alexa/skill-sample-nodejs-audio-player上看到了示例代码,并通过我的Amazon Echo获得了示例播客播放器。 如何修改这段代码,以告诉Alexa“询问MySkill播放$ trackname”。 而不是从顶部玩? 我对创build技能非常陌生,但是我已经阅读了所有的文档,并且明白这涉及audio指令。 但是,我无法弄清楚究竟在哪里。 在示例代码中,audioAssets.js包含标题和url的列表。 例如,如果我想说“播放第138集”(其中一个标题) – 为了做到这一点,我需要修改哪些文件? 'use strict'; var audioData = [ { 'title' : 'Episode 140', 'url' : 'https://feeds.soundcloud.com/stream/275202399-amazon-web- services-306355661-amazon-web-services.mp3' }, { 'title' : 'Episode 139', 'url' : 'https://feeds.soundcloud.com/stream/274166909-amazon-web-services-306355661-aws-podcast-episode-139.mp3' }, { 'title' : 'Episode 138', 'url' : 'https://feeds.soundcloud.com/stream/273105224-amazon-web-services-306355661-aws-podcast-episode-138.mp3' }, { 'title' : 'Episode 137', 'url' : 'https://feeds.soundcloud.com/stream/272089501-amazon-web-services-306355661-aws-podcast-episode-137.mp3' } ]; […]