问题标签 [sox]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3090 浏览

audio - sox.exe - 将单声道人声与立体声音乐混合

sox.exe的所有组合方法我都试过了,包括sequence、mix、merge、multiply等等。

我无法将单声道音轨与立体声音乐音轨混合,并将单声道音轨置于混音的中心。

使用音频文件在混音/弹跳中同时播放的任何方法都会将单声道音轨拍打到左声道。我希望它很好地融入其中,但不知道如何让它发挥作用。

任何帮助将不胜感激。它在批处理脚本中使用,并且必须是一个无需用户干预即可运行的命令,即时指定内容:2+ 个文件,全部一起播放,保持立体声和单声道原样,输出一个文件。

0 投票
0 回答
4706 浏览

mp3 - sox mp3 转 wav。输出 wav 文件为空

我正在尝试使用 sox 将 mp3 文件转换为 wav 文件。但是输出文件总是空的。

我已经尝试了下一页上的命令。

http://stefaanlippens.net/audio_conversion_cheat_sheet http://www.thegeekstuff.com/2009/05/sound-exchange-sox-15-examples-to-manipulate-audio-files/

为什么输出文件是空的?我错过了任何其他选择吗?

谢谢

0 投票
1 回答
1287 浏览

java - Play 2 框架应用的后端服务器

我正在计划一个 Web 应用程序,用户可以在其中上传和处理他们的文件。该应用程序的细节与我的问题无关,但我们假设该应用程序将处理 mp3 音频文件。我将把我的应用程序分成两个不同的部分:前端和后端。

前端应用程序将是一个为用户提供 html 页面的常用 Web 应用程序。通常,用户将上传他的文件并填写一个 html 表单以指定他想对文件执行哪些操作。这些文件最初将上传到存储设施,例如 Amazon S3,然后由后端服务器处理。我正在使用 Play 2.0.4 框架来开发前端应用程序,这对我来说非常顺利。我设法实现了用户授权,起草了大部分 UI,还实现了文件上传到 S3。该应用程序目前部署在 Heroku 上,没有任何问题。

对于我的后端服务器,我正在考虑再次使用 Play 2 框架。后端服务器将从前端服务器接收有关创建新作业的通知(http 请求)。作业规范将包括存储中原始用户文件的链接和描述作业的参数。该作业应添加到队列中。现在最重要的部分是将实际的处理工作委托给第三方程序,这肯定是一个已编译的命令行实用程序,例如SoX对于音频处理,由好人使用他们选择的编程语言编写。据我所知,可以从 java 调用外部程序,传递命令行参数并收集结果。处理完成后,后端服务器会将处理后的文件上传回存储,并向前端应用程序发送通知(http请求),前端应用程序将存储处理后文件的链接并稍后显示给用户时间。为了能够使用命令行实用程序,我将使用 Typesafe 堆栈安装将后端应用程序部署到 Amazon EC2 实例。

以下是有关此基本计划的一些问题:

  1. Play 2 是后端的合理选择,还是我应该寻找替代方案?其中一个似乎是 CGI,根据 Wikipedia 的说法,它“是一种标准方法,用于 Web 服务器软件将 Web 内容的生成委托给可执行文件。” 不幸的是,我对此没有任何经验。
  2. 使用 Play 实现作业队列应该没有任何问题吗?
  3. 是否可以在 EC2 上安装命令行实用程序并从 Play 调用它?
  4. 我应该期待在 EC2 上安装 Typesafe 堆栈会出现任何问题吗?这篇文章简要描述了我打算做什么https://www.assembla.com/spaces/bufferine/wiki/Typesafe_stack_on_Amazon_EC2
  5. 假设将来应用程序会增长,我将如何在 EC2 上的多个实例之间分配作业?我应该在我的前端和后端之间创建一个单独的工作平衡应用程序吗?

我将不胜感激任何建议!谢谢!

注意:我在 Play 2 框架中使用 Java api,因为我不熟悉 Scala 语言。

0 投票
1 回答
1422 浏览

ffmpeg - 更改 MOV 或 WAV 的 wav、aiff 或 mov 音频采样率而不更改样本数

我需要一种非常精确的方法来加速音频。我正在为 OpenDCP(一种用于制作数字电影包的开源工具)准备电影,以便在影院放映。我的源文件通常是 23.976fps 和 48.000kHz 音频的 quicktime MOV 文件。有时我的音频是单独的 48.000kHz WAV。(FWIW,源的视频帧率实际上是每秒24/100.1帧,是一个重复的小数。)

DCP 标准基于 24.000fps 和 48.000kHz 程序,因此需要加快源的音频和视频。图像处理工作流程本质上涉及将 MOV 转换为 TIF 序列,每帧帧,然后假定为 24.000fps,因此我不必参与 QT 视频媒体处理程序的内部。

但事实证明,加快音频匹配速度是很困难的。大多数音频程序无法获得与重新定时的图像帧对齐的音频样本数。Audacity 速度增加 0.1% 会导致错误的样本数量。我发现唯一可行的方法是使用 Apple Cinema Tools 使 23.976fps/48.000kHz MOV 符合 24.000fps/48.048kHz(通过更改 Quicktime 标头来实现),然后使用 Quicktime Player 从该文件在 48.000kHz,重新采样。这是帧精确的。

所以我的问题是:ffmpeg 或 sox 中是否有设置可以精确地加速 MOV 或 WAV 或 AIFF 中的音频?我想要一个跨平台的解决方案,所以我不依赖Cinema Tools,它只有MacOS。

我知道这是很多背景。随时提出澄清问题!

0 投票
1 回答
646 浏览

ruby - SoX - Sound eXchange 可以在 heroku 上工作吗?

我需要在 heroku 上托管一个测试应用程序。它使用 SoX 拆分文件并存储拆分文件(仅临时)。

在这种情况下使用ruby​​s Dir.mktmpdir会起作用吗?

还是我必须使用#{RAILS_ROOT}/tmp/myfile_#{Process.pid}

这适用于 SoX 吗?

非常感谢任何帮助

0 投票
1 回答
3274 浏览

sox - sox:A-法则到 PCM

如何将 A-law 波形文件转换为 PCM?我已经用 sox 尝试了几个选项,但输出总是保持 A-law。供您参考,这是我要转换的文件的完整规范。

提前致谢,

乔里斯

0 投票
0 回答
1313 浏览

ffmpeg - 使用带有 .wav 文件的 pocketsphinx_continuous

我正在尝试编写一个应用程序,该应用程序将允许用户从远程系统说出一小组命令并让它们在我的服务器上执行。使用 pocketsphinx 解析语音文本。当使用麦克风在本地运行时,pocketsphinx_continuous 可以完美地工作,无论我如何含糊其辞。但是在导入音频文件并使用 ffmpeg 将音频下采样到单声道、16 位 PCM 文件时,它会毫无困难地解析第一个单词。然后它将跳过其他所有内容并将其视为 . 我相信问题出在文件格式而不是pocketsphinx配置中。

ffmpeg -y -i Sound\AddSheet.wav -ac 1 -f s16le -acodec pcm_s16le -ar 16k AddTmp.wav
在批处理文件中使用命令行 。

我得到的输出的底部是:

这不是文件中的音频。文件中所说的单词是“ADD SPREADSHEET”,它可以在同一个麦克风上完美运行,而无需插入 .wav 文件。

我尝试使用 sox 增加音量并降低背景噪音:

对最终结果没有明显影响。

如果您查看输出,您会注意到 fsg_search.c 已找到 ADD 作为起始节点,然后对其余节点保持沉默。请帮助解决这个问题。

0 投票
1 回答
4881 浏览

windows - Sox --multi-thread 选项:将立体声 wav 文件拆分为 2 个单声道文件 Windows Line 命令

我在 Windows 命令行中编写了一个批处理程序来获取立体声 wav 文件并使用 sox v.14.4.0 音频程序将左右声道拆分为单独的 FLAC 文件。像这样。。

但是,这比我想要的要长一点。我对此进行了更多研究,看来我可以使用 SOX_OPTS 和 --multi-thread 选项以及 --buffer 以同时执行两个 sox 操作。

Sox 文档说明了这一点:

SOX_OPTS 环境变量可用于为 SoX 的全局选项提供替代默认值。例如:

请注意,设置环境变量的方式因系统而异。以下是一些示例: MS-DOS/MS-Windows:

设置用于处理音频的缓冲区的大小(默认为 8192)。
−−buffer适用于输入、效果和输出处理;
−−input−buffer 仅适用于输入处理(如果两者都给定,它将覆盖−−buffer)。
请注意,−−buffer 的较大值将导致 SoX 响应终止或跳过当前输入文件的请求变得缓慢。

两个问题。

  1. 是否可以使用 --multi-thread 如上所述或其他方式同时将 1 个输入文件拆分为 2 个输出文件?
  2. 如果是这样,怎么做?(注意:我无法找出正确的语法来从上面的文档中获取 SOX_OPTS 以自行处理,不要介意在批处理文件中)

另外:我发现了一些与此类似的其他 stackoverflow 问题,但总是使用 java、php、linux 等。不幸的是,我对这些程序一无所知。请同情我的编程无知。

0 投票
1 回答
2062 浏览

audio - 使用音频工具 sox,我如何确定立体声录音是否实际上是单声道?

我有立体声文件(2 声道 WAV),听起来完全像单声道录音。有没有办法让sox文件运行并输出两个通道是否相同?

或者是否有另一个命令行工具进行这种波形比较,将声音文件的通道之间的差异聚合为“相似度数”?

0 投票
1 回答
1950 浏览

split - 尝试使用 SoX 将 Wav 文件拆分为两部分

我正在尝试将一个 .wav 文件分成两部分,其中有几秒钟的沉默。根据我找到的文档,以下内容应该有效:

“testfile.wav”是一个录音,我在中间放了大约 4 秒的静音来测试。预期的结果是我会通过运行它得到“tester001.wav”和“tester002.wav”。相反,我得到一个文件 - “tester.wav”,它是原始文件的第一部分(直到静音)。我想知道如何让它继续并从沉默后的部分制作一个新文件。

我发现了这一点:sox 无法在 StackOverflow 上拆分文件,但对该问题的接受答案并没有改变我(将秒数更改为 3.0 给了我相同的结果,因为我有四秒的差距。它仍然没有给我第二个音频文件。)

任何帮助,将不胜感激!