问题标签 [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 投票
1 回答
717 浏览

objective-c - 连续运行多个 NSTask

我需要使用 NSTask 按顺序运行多个命令,并且想知道什么是判断任务是否完成的好方法,以便我可以继续执行下一个命令。我正在使用“sox”(我包含在我的应用程序包中)使用输入音频文件创建临时音频文件,然后需要将这些临时音频文件组合成一个文件。流程示例(不是实际的命令):

1) 歌曲A > 温度A

2) 歌曲B > 温度B

3)结合 tempA tempB > songC

我正在使用以下代码来完成第一个命令:

假设我需要在这个进程完成之后再执行两个 NSTask 进程(使用先前进程的输出),那么检测一个进程已经完成以便我可以继续下一个进程的最佳方法是什么。

谢谢。

0 投票
1 回答
1970 浏览

c - Sox 和 FFMPEG 解码

您好,请帮帮忙。我的想法是通过ffmpeg解码音频部分,然后通过sox处理。即解码只使用FFMPEG。这是我剩下的:

函数 in = sox_open_mem_read (pAudioBuffer, data_size, NULL, NULL, NULL); 给出一个错误:

格式:无法确定文件类型`'

我应该怎么办?如何解决问题?请帮忙!!!

0 投票
1 回答
669 浏览

licensing - 如何在商业应用程序中处理 mp3 而无需支付高昂的许可费用

我有一个应用程序,它使用用 lame 编译的 sox 版本来支持 mp3。该应用程序不会产生足够的收入来证明每年 15000 美元的 mp3 处理最低许可费是合理的。我研究了其他免费格式,如 ogg,但似乎并不像行业标准那样普遍存在(从未听说过 ogg 播放器)。我可以有一个链接,用户可以下载他们自己的 sox 版本进行处理而不是分发它吗?

0 投票
4 回答
23897 浏览

wav - 使用 SOX 从 16 位 WAV 转换为 GSM

我目前正在与 Asterisk 和 PHP Web 界面进行一些电话集成。我想为用户提供一个选项,以在 wav 文件中上传他们自己的自定义问候语,然后在服务器上将 wav 转换为 8000hz 的 gsm 文件。目前,我正在尝试使用 sox 来实现这一点。

但是,似乎当我在 8khz sav 以外的任何内容之间转换为 gsm 时,gsm 文件严重失真。几乎就像它将文件减慢了 10 倍(wav 格式的 3 秒介绍变成了 30 秒的 gsm 文件)我尝试了几种速度和重新采样的组合,但无济于事。理想情况下,我想获取任何上传的 wav 文件并对其进行转换,而不会给用户过多的责任来正确编码。我绝对不是发烧友,所以如果有人能指出我正确的方向,我将不胜感激。

0 投票
2 回答
28433 浏览

audio - 转换采样率时减少/消除 SoX 中的削波

我正在使用 SoX 将一组 wav 文件修剪为 16kHz、16 位、单声道 wav 文件(这将是一个初始 wav 文件的子集)。大多数源 wav 文件已经设置为这个规范,但是,我刚刚发现其中一些具有不同的采样率。由于它将使用 ProcessBuilder 在 Java 中实现自动化,我想我可以使用以下命令:

如果不是 16000 Hz,它只会改变采样率。它对具有相同规范的文件执行应有的操作,但在具有不同采样率的文件上,我得到:

我应该如何在不降低音频质量的情况下处理这个问题?请注意,我对信号处理一无所知。

0 投票
1 回答
1590 浏览

java - 使用 Java 的 ProcessBuilder 运行 SoX

我正在使用 ProcessBuilder 从 java 运行 SoX 来修剪 wav 文件。我确信我应该能够运行 SoX,因为在其他 JUnit 测试中,我设法成功运行了以下命令:

但是当我尝试如下修剪文件时:

它抛出一个IOException错误:error=2, No such file or directory。我尝试在终端上运行该命令,它可以正常工作。如果重要的话,我会在 macbook 上通过 eclipse 的 JUnit 测试运行它。

这是我用来在 ProcessBuilder 中构建它的代码:

我也尝试过同样的事情,但使用了 ArrayList。

0 投票
1 回答
1263 浏览

java - SoX 使用 ProcessBuilder 运行缓慢

我正在使用 Java 中的 ProcessBuilder 运行 SoX,它将 WAV 文件修剪为 30 秒长的 WAV 文件。

SoX 正在运行,因为我可以成功修剪文件的前 30 秒并保存为新文件,但它停在那里,但它仍在运行。

这是命令生成的代码:

这是进程创建的代码:

0 投票
1 回答
481 浏览

c++ - libSoX 是线程安全的吗?

我正在使用 libSox,这是一个多线程应用程序中的音频处理库。多个线程可能同时调用 libsox 函数。我想知道 libsox 是否是线程安全的,因为我遇到了这个随机崩溃。

0 投票
2 回答
805 浏览

xml - 有哪些替代语法来表达 XML?

存在哪些人类可读和人类可编辑的语法可以在不损失表达性的情况下自动转换为 XML 和从 XML 转换。换句话说,这个列表的更新版本。那里提到的三种语法是:

还有其他人吗?(这不是关于 XML 的替代品如 JSON,而是人类使用文本编辑器维护 XML 文件的更简单方法)。

0 投票
1 回答
770 浏览

ffmpeg - 将 FLV 音频流与 WAV 背景音轨混合,并使用 SoX 和 FFmpeg 转换为 MP3

我正在为一个签约网站构建一个基于 Flash 的录制应用程序。它将录制的语音(通过 SWF)流式传输到 Red5 服务器,然后使用 FFmpeg 和 SoX 的组合来编译具有较低音量背景音乐轨道的人声音频。这一切都必须按需发生,即当用户“保存”他或她的录音时。

这是我将运行的示例命令。名称已更改以保护无辜者。文件名描述了它们在最终文件中的作用:

当我在 shell 中运行此命令时,会发生以下情况:

我认为这个问题源于 FFmpeg 中从 FLV 到 WAV 的转换,并且由于它是通过管道传输的,因此会导致整个过程失败。我总是收到持续时间警告,但是当 FFmpeg 输出到 .wav 文件并且 SoX 命令单独运行时,我仍然可以从 SoX 获取 WAV 并手动将其转换为 MP3。我想在一行中完成所有这些,在应用程序之间传输数据。

我该怎么办?