标签: sox

如何将 G.723.1 类型的音频文件转换为 wav 格式?

我有几个带有.wav扩展名的音频文件。我尝试使用soxi <foo.wav>命令获取有关此文件的信息,但出现以下错误:

soxi FAIL 格式:无法打开输入文件 foo.wav':未知的 WAV 文件编码(类型 a100)

所以我使用MediaInfo工具来获取有关此文件的更多信息,我获得了有关此文件的以下信息:

一般的

格式 : 波浪

文件大小:51.4 KiB

时长 : 100 万 18 秒

比特率:5 339 bps

声音的

格式:G.723.1

编解码器 ID : A100

持续时间 : 100 万 18 秒

比特率:5 328 bps

频道:1个频道

采样率 : 8 000 Hz

流大小:51.3 KiB (100%)

根据此信息,此文件似乎具有G.723.1格式,而 SOX 无法理解此格式。

所以我想知道:

  • 我关于 SOX 不支持此类文件的结论是否正确?
  • 如果 SOX 不支持这种类型的文件,那么安装一些编解码器会有帮助吗?我lame在几个网页上看到过命令,但不确定它是否对我有帮助。

请求超级用户帮助!

提前致谢 !

audio codec sox audio-conversion

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

如何使用 SoX 录制 10 秒的音频?

我想用SoX从我的麦克风输入中录制 10 秒的音频。我还没有在文档或其他地方找到任何示例来说明如何做到这一点。这是我当前timeout用于停止录制的命令。有没有更好的方法来做到这一点?

timeout 10 sox -b 32 -e unsigned-integer -r 96k -c 2 -d --clobber --buffer $((96000*2*10)) /tmp/soxrecording.wav
Run Code Online (Sandbox Code Playgroud)

audio sox audio-recording

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

需要使用 sox 清除音频噪音

我现在正在做的是使用 arecord 从我的麦克风录制音频并将原始输出通过管道传输到 VLC,如下所示:

arecord -r 8000 - | vlc -vvv - 
Run Code Online (Sandbox Code Playgroud)

它工作得很好,除了发出的音频有很多噪音。我知道可以使用 sox 清除背景噪音,但我似乎无法找出正确的命令。当我使用“播放”只是为了测试输出(甚至没有尝试去除噪音)时,使用以下输出听起来很糟糕:

play -t raw -b 16 -c 1 -e signed -r 8000 -
Run Code Online (Sandbox Code Playgroud)

除了 sox/play 之外还有其他解决方案吗?如果我可以通过 VLC 本身做到这一点,那将是理想的。我还需要放大声音,这就是我使用 VLC 的原因。如果我能让 sox 清理音频并将输出再次通过管道返回到 VLC,那就太棒了。我怎么能做到这一点,我相信这是可能的。

我的目标是 (1) 清除所有背景噪音和 (2) 尽可能放大音频。

audio noise sox

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

sox 和 ffmpeg 组合 mp3 失败“输入文件必须具有相同的采样率”

我正在尝试使用以下命令通过 sox 合并 mp3 文件:

sox in.mp3 in2.mp3 out.mp3
Run Code Online (Sandbox Code Playgroud)

我得到:

sox FAIL sox: Input files must have the same sample-rate
Run Code Online (Sandbox Code Playgroud)

尝试了该-m选项,但我想这是默认的。

我也尝试通过 ffmpeg 这样做:

printf "file '%s'\n" ./*.mp3 > mylist.txt && ffmpeg -sn -f concat -safe 0 -i mylist.txt -acodec copy output.mp3
Run Code Online (Sandbox Code Playgroud)

但输出文件output.mp3有点搞砸了,它只播放第一首歌,没有其他:(

有一个优雅的解决方案吗?

任何帮助都会很棒..

mp3 ffmpeg sox

3
推荐指数
2
解决办法
3493
查看次数

使 SoX 不显示输出

我正在用 SoX 录制,我想让它根本不显示输出。录制时,它显示以下输出:

Input File     : 'default' (waveaudio)
Channels       : 2
Sample Rate    : 48000
Precision      : 16-bit
Sample Encoding: 16-bit Signed Integer PCM

In:0.00% 00:00:00.68 [00:00:00.00] Out:28.7k [      |      ]        Clip:0
Run Code Online (Sandbox Code Playgroud)

我尝试将详细程度设置为 0,但没有效果。(我猜它适用于除此之外的消息。)

我不只是想隐藏我可以轻松完成的输出;我希望 SoX 首先不要生成它,以便在弱计算机上获得性能。

windows sox

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

FFmpeg 音频相位反转

我正在编写一个脚本,该脚本对多个.wav文件执行一系列操作。其中一项操作是相位反转(据我所知,180 度相移)。

这对 FFmpeg 是否可行,如果可以,我需要使用什么开关?

旁注:我在这里找到了一种与 SOX 反相的可能方法/sf/ask/2217791131/ version-of-an-audio-file(虽然,为什么它使用音量开关超出了我的理解),但是在花了几个小时试图用 FFmpeg 解决这个问题之后,我仍然想知道这是否可能。

ffmpeg sox

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

使用 SOX 将原始 g722 文件转换为 .wav

我正在尝试解决一些 VOIP 问题,并且一直在捕获故障呼叫的数据包。然而,我的通话都是用 g722 编码的,我在解码时遇到问题。

我已经提取了 RTP 有效负载,并将其当前作为原始文件。我能找到的唯一信息是这个链接:

https://ask.wireshark.org/questions/26607/coverting-g722-payload-to-wav

但我似乎无法弄清楚如何将 g722 原始数据转换为可用的波形文件。任何方向正确的观点都会有所帮助。

audio wireshark sox

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