wav - Sox 文件格式失败
问题描述
我曾尝试将 pcm 文件转换为 wav,但无论我尝试多少(或少数)选项,都会不断收到 FAIL 格式错误。我想知道我需要做什么来获取 pcm 文件的文件处理程序。再次安装 sox 并更新终端什么也没做。我知道这个问题以前在这里,在这里,但遗憾的是,没有人给出解决问题的答案。
这是我尝试过的命令:
sox -t raw -r 44000 --bits 16 −e signed-integer -c 2 -B \
infile.pcm /wav/outfile.wav channels 1
这是它抛出的错误:
sox FAIL formats: no handler for file extension `pcm'
pcm 文件具有以下属性:
- 采样率:44 kHz
- 样本大小:16 位
- 信号编码:线性PCM(不知道这是什么意思?)
- 文件格式:无头原始
- 格式:Motorola PCM(数据最初是为 IBM 系统创建的)
- 通道:2(左侧语音+右侧喉镜/EGG)
我需要它来只给我语音(所以从立体声转换为单声道,但只从左声道获取信息)和一个 wav 文件,所以我正在使用的程序可以处理它。
解决方案
找到了解决方案!基本上,其他人都建议在命令错误之后立即放置 -t raw ,并且顺序确实很重要。现在,我不知道为什么文档中从未指定选项顺序的严格性(我想我通读了所有这些,虽然不是一次坐),但至少这对我来说是转换无头原始 PCM 文件到 wav:
sox -e signed-integer -b 16 -B -r 44100 -c 2 -t raw infile.pcm wav/outfile.wav remix 1
选项、文件和效果的顺序:
- 编码
- 样本量
- 字节序
- 采样率
- 渠道
- 文件类型
- 文件
- 输出文件
- 混音效果,从立体声转换为单声道
混音效果选择使用哪个通道(在本例中,1 代表左侧)。我的立体声 infile 包含语音(左 = 1)和喉记录(右 = 2),所以我不希望两者在输出中一起出现。
推荐阅读
- bash - 结合 unix find 命令选项
- php - PHP将mysql时间戳添加到现有时间戳
- java - 没有这样的列:MariaDB 查询中的 id
- powershell - 如何使用 PowerShell 从任务计划程序中删除文件夹?
- linux - 文件描述符处于阻塞模式,但 read() 没有阻塞
- hyperledger-fabric - 从私人收藏中添加数据和查询的示例代码
- python - 我无法让 ipython 控制台在 spyder 中播放声音
- python - 为什么我无法在 matplotlib.pyplot 直方图中使用相同的数据集后在图表中使用它?
- c - 如何根据使用的选项更改大小写
- android - 如何等待firebase数据获取完成并在react-native中获取不是承诺的值?