标签: sox

使用 SOX 从 16 位 WAV 转换为 GSM

我目前正在与 Asterisk 和 PHP Web 界面进行一些电话集成。我想让用户选择在 wav 文件中上传他们自己的自定义问候语,然后在服务器上将 wav 转换为 8000hz 的 gsm 文件。目前,我正在尝试使用 sox 来完成此操作。

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

gsm asterisk wav sox

2
推荐指数
1
解决办法
2万
查看次数

如何将16bit WAV转换为原始音频

我正在尝试使用sox将星号语音邮件转换为原始音频。原始wav的编码信息是PCM S16 LE,所以我认为我可以做到,sox msg0000.wav msg0001.raw但是其中的原始文件是乱码,根据VLC的说法,它的长度为4分钟,而源文件为6秒。

我不确定我要去哪里错,有人怎么将wav转换成raw?最好使用sox,但是任何命令行解决方案都可以。

command-line asterisk sox

2
推荐指数
1
解决办法
2万
查看次数

在java中执行linux终端命令?

我正在尝试从java执行SOX命令,但不幸的是它每次都返回一个错误.其他每个SOX命令都运行得很好!! 这是代码:

class Simple {
    public static void main(String args[]) throws IOException, Exception {
        Process p;
        BufferedReader br;
        String co = "sox speech_16.wav -p pad 0 2.5 | sox - -m speech_16.wav speech_output.wav";
        p = Runtime.getRuntime().exec(co);
        br = new BufferedReader(new InputStreamReader(p.getInputStream()));
            int returnCode = p.waitFor();
        System.out.println("reurn code : "+returnCode);         
    }
}
Run Code Online (Sandbox Code Playgroud)

当我在终端中执行相同的sox命令时,它工作正常.我真的无法理解问题是什么!是因为'|' 符号??

java linux sox

2
推荐指数
1
解决办法
4855
查看次数

如何使用 SoX 命令从音频文件中删除频率范围?

我想从上传到服务器的音频文件中删除某个频率范围。我了解到 SoX 命令具有这样的功能。

我找不到实现此目的的确切方法。任何帮助都是最受欢迎的。

sox

2
推荐指数
1
解决办法
4588
查看次数

使用对 AWS lambda 的 lame 和 flac 支持构建静态袜子

我正在尝试在 AWS lambda 函数中使用 sox 将 FLAC 文件转换为 MP3,但我似乎无法构建支持 FLAC 的 sox 版本。

我找到了我一直在使用的这个很棒的解决方案,但它不支持 FLAC。

我在网上搜索了替代品,但似乎没有任何效果。我还读到,在某个阶段 FLAC 支持丢失了,但应该已修复。我仍在寻找答案,但任何帮助表示赞赏。

sox lame flac aws-lambda

2
推荐指数
1
解决办法
981
查看次数

SoX 不会使用“播放”运行。'play' 不是内部或外部命令,也不是可运行的程序或批处理文件

我已经添加sox到我的 PATH 中,它似乎做得很好。如果我打开终端并输入C:\Users\[EXAMPLE USERNAME]>sox,程序将运行所有选项和效果。问题是我似乎play无法上班。我已经试过C:\Users\[EXAMPLE USERNAME]>play file.ogg这给产生错误:'play' is not recognized as an internal or external command, operable program or batch file。我不完全确定这里发生了什么。

我通常会考虑创建一个 PATH 变量,play但正如在这个问题的答案的评论中提到的那样,没有可执行文件,它的sox名称不同。

另外,作为参考,我在 Windows 10 上使用 sox-14-4-2。

sox

2
推荐指数
1
解决办法
1131
查看次数

修剪音频文件,并在沉默之间获得部分

我的目标是通过使用SoX获取包含非噪声声音的音频文件部分.我已阅读SOX法案的影响,发现noiseredsilence我认为有帮助的.问题是我没有找到可以根据其中的静音暂停修剪音频文件的命令.

linux audio terminal speech sox

1
推荐指数
1
解决办法
1011
查看次数

使用 sox 修剪音频文件开头的 0.010 毫秒

我正在尝试修剪 30+ 分钟文件的前 .010 毫秒。修剪命令会修剪它,但我得到的输出是 0.010 毫秒。我想要的是保留音频文件的结尾部分并去掉文件开头的 0.010 毫秒。

我尝试使用以下命令:

sox input.wav output.wav trim 0 .010
Run Code Online (Sandbox Code Playgroud)

sox libsox

1
推荐指数
1
解决办法
1847
查看次数

SoX:我可以同时产生声音吗?

我使用 SoX 来生成这个声音:

\n\n
$ play -n synth 1 pluck E3 repeat 2\n
Run Code Online (Sandbox Code Playgroud)\n\n

我设法在新的终端选项卡上同时播放另一种模式,让 \xe2\x80\x99s 说$ play -n synth 1.5 pluck C3 repeat 2。有没有办法在同一个 bash 脚本中同时播放这两种模式?

\n

bash sox

1
推荐指数
1
解决办法
1297
查看次数

运行时错误:找不到二进制“sox”

我正在使用谷歌语音库,如下所示:

from google_speech import Speech

# say "Hello World"
text = "Hello World"
lang = "en"
speech = Speech(text, lang)
speech.play()
Run Code Online (Sandbox Code Playgroud)

收到此错误:

RuntimeError                          

    Traceback (most recent call last)
<ipython-input-2-4daa3294f636> in <module>()
----> 1 from google_speech import Speech
      2 
      3 # say "Hello World"
      4 text = "Hello World"
      5 lang = "en"

D:\soft\Ins\anac\lib\site-packages\google_speech\__init__.py in <module>()
    321 
    322 # check deps
--> 323 bin_dep.check_bin_dependency(("sox",))
    324 
    325 

D:\soft\Ins\anac\lib\site-packages\google_speech\bin_dep.py in check_bin_dependency(bins)
      5   for bin in bins:
      6     if shutil.which(bin) is None:
----> 7 …
Run Code Online (Sandbox Code Playgroud)

python windows speech-recognition sox

1
推荐指数
1
解决办法
9548
查看次数