SoX:音频处理领域的“瑞士军刀”

1. 什么是 SoX

在 Linux / VoIP / ASR(语音识别)领域,提到命令行音频工具,很多人第一反应就是:

  • ffmpeg

  • lame

  • audacity

但对于真正长期做语音系统、电话系统、ASR 测试的人来说,

SoX 才是那个最稳定、最轻量、最容易自动化的工具。

SoX 全称:

Sound eXchange

官方网站:

SoX Official Website

它是一个经典的跨平台命令行音频处理工具,支持:

  • WAV

  • MP3

  • GSM

  • FLAC

  • OGG

  • RAW

  • μ-law

  • A-law

等大量音频格式。

在:

  • FreeSWITCH

  • OpenSIPS

  • Asterisk

  • UniMRCP

  • ASR/TTS

  • SIP IVR

  • 呼叫中心

等领域中极其常见。


2. 为什么 VoIP 工程师离不开 SoX

对于普通音频编辑,

图形界面软件已经够用了。

但在服务器环境中:

  • 没有 GUI

  • 需要批量处理

  • 需要自动化

  • 需要脚本化

这时:

SoX 的优势就非常明显。

它特别适合:

  • 自动转换采样率

  • 生成测试音频

  • 批量转码

  • 音量归一化

  • 去噪

  • 拼接音频

  • 电话语音格式转换


3. 安装 SoX

3.1 Ubuntu / Debian

bash 复制代码
sudo apt install sox

安装常见格式支持:

bash 复制代码
sudo apt install sox libsox-fmt-all

3.2 CentOS / RHEL

bash 复制代码
sudo yum install sox

4. 查看音频信息

这是最常用的命令之一:

bash 复制代码
soxi test.wav

输出示例:

复制代码
Input File     : 'test.wav'
Channels       : 1
Sample Rate    : 8000
Precision      : 16-bit
Duration       : 00:00:05.00
File Size      : 80.0k
Bit Rate       : 128k
Sample Encoding: 16-bit Signed Integer PCM

在 VoIP 中非常重要:

因为很多 ASR 平台要求:

  • 8000Hz

  • mono

  • PCM16

如果格式不对:

ASR 往往直接失败。


5. 音频格式转换

5.1 WAV 转 8k 电话语音

bash 复制代码
sox input.wav -r 8000 -c 1 output.wav

参数说明:

  • -r 8000

    设置采样率为 8000Hz

  • -c 1

    设置单声道

这是:

SIP / PSTN / ASR 最经典格式。


5.2 转换为 μ-law

很多 SIP 系统使用:

  • PCMU

  • G.711 μ-law

转换命令:

bash 复制代码
sox input.wav -r 8000 -c 1 -t ul output.ul

6. 调整音量

6.1 放大音频

bash 复制代码
sox input.wav output.wav gain 5

表示:

  • 增加 5dB

6.2 降低音量

bash 复制代码
sox input.wav output.wav gain -5

7. 生成静音

在 IVR 测试中很常见:

bash 复制代码
sox -n -r 8000 -c 1 silence.wav trim 0.0 3.0

生成:

  • 3 秒静音文件

8. 拼接多个音频

例如:

bash 复制代码
sox part1.wav part2.wav output.wav

可用于:

  • IVR 菜单拼接

  • 自动化测试语音

  • TTS 合成后处理


9. 截取音频片段

9.1 从第 2 秒开始截取 5 秒

bash 复制代码
sox input.wav output.wav trim 2 5

10. 生成测试音

10.1 生成 1kHz 测试音

bash 复制代码
sox -n test.wav synth 5 sine 1000

作用:

  • SIP RTP 测试

  • 音频链路测试

  • MRCP 调试

VoIP 工程师非常常用。


11. 查看音频波形统计

bash 复制代码
sox input.wav -n stat

输出:

  • 最大音量

  • RMS

  • clipping

  • 平均功率

对于:

  • ASR 输入质量分析

  • 电话录音质量分析

很有帮助。


12. 在 FreeSWITCH 中的典型用途

对于做 FreeSWITCH 的工程师来说:

SoX 经常用于:

12.1 转换 IVR 音频

bash 复制代码
sox welcome.mp3 -r 8000 -c 1 welcome.wav

12.2 ASR 测试集准备

例如:

  • AWS Transcribe

  • Google STT

  • Verbio

  • Deepgram

都可能要求:

  • mono

  • PCM16

  • 8k/16k

SoX 是最快的处理工具。


12.3 RTP 抓包后处理

配合:

  • tcpdump

  • Wireshark

  • sngrep

做音频恢复。


13. 一个非常实用的批量转换脚本

13.1 批量转换为 8k mono wav

bash 复制代码
#!/bin/bash

for file in *.wav
do
    sox "$file" -r 8000 -c 1 "converted_$file"
done

非常适合:

  • ASR 数据集处理

  • 呼叫中心语音预处理


14. SoX 与 ffmpeg 的区别

很多人会问:

既然有 ffmpeg,为什么还需要 SoX?

我的实际经验:

场景 推荐
视频处理 ffmpeg
电话语音 SoX
ASR测试 SoX
RTP音频处理 SoX
批量音频脚本 SoX
多媒体转码 ffmpeg

SoX:

  • 更轻

  • 更纯粹

  • 更适合语音

尤其:

在 8k 电话音频领域,

SoX 体验比 ffmpeg 更舒服。


15. 总结

SoX 是一个:

  • 经典

  • 稳定

  • 高效

  • 极其适合自动化

的命令行音频工具。

对于:

  • FreeSWITCH

  • OpenSIPS

  • UniMRCP

  • ASR/TTS

  • 呼叫中心

工程师来说,

它几乎是必备技能。

如果你长期做:

  • SIP

  • RTP

  • 电话语音

  • AI语音识别

建议一定要熟练掌握 SoX。

相关推荐
轻口味3 小时前
HarmonyOS 6.1 全栈实战录 - 08 视讯巅峰:Media Kit 视频缩略图批量提取与 HDR 渲染链路实战
华为·音视频·harmonyos
小为资料库3 小时前
英语六级听力历年真题汇总电子版PDF(含听力音频mp3、答案解析及听力原文)
pdf·音视频
moonsims4 小时前
空-地-人语音协同系统:AGH Audio Collaboration-系统级音频协同基础设施
音视频
小为资料库5 小时前
英语四级听力历年真题汇总电子版PDF(含听力音频mp3、答案解析及听力原文)
pdf·音视频
AI创界者5 小时前
AI视频新突破:Ltx2.3-relay-smart 图生视频整合包,双提示词驱动告别画面崩坏
人工智能·音视频
Likeadust6 小时前
私有化视频会议系统EasyDSS上线重磅功能:替换视频,数据“无损”继承!
音视频
DogDaoDao6 小时前
【GitHub】SkyReels-V2 无限时长电影级视频生成模型:技术架构与核心原理深度解析
人工智能·大模型·aigc·音视频·ai agent·生成视频·skyreels-v2
weixin_4083180420 小时前
2026企业直播平台选型:三大主流方案技术对比
音视频
东方佑1 天前
观测的连续性:从波粒二象性诠释生成式 AI 中音视频与图像的表征范式
人工智能·音视频