如何将音频文件设置为某些特征?

How do I set an audio file to certain characteristics?

如何将 mp3 文件转换为具有以下特征的文件?

single-channel (monaural)
little-endian
unheadered
16-bit signed
PCM
sampled at 16000 Hz

我试过运行这个命令:

ffmpeg -i audio16000.mp3 -ar 16000 -ac 1 audio16000.wav

当我用这个命令检查文件时:

sox --i audio16000.wav

我得到了以下结果:

Input File     : 'audio16000.wav'
Channels       : 1
Sample Rate    : 16000
Precision      : 16-bit
Duration       : 00:05:30.98 = 5295744 samples ~ 24823.8 CDDA sectors
File Size      : 10.6M
Bit Rate       : 256k
Sample Encoding: 16-bit Signed Integer PCM

它没有说明它是小端还是未headered。我还认为只有原始文件未被 header 编辑,而 wav 文件具有 header,但我正在阅读的说明告诉我使用上面使用的 ffmpeg 命令。

您的目标是转换为 PCM(Pulse-Code 调制),它本质上是一个原始音频文件。这就是为什么您还需要有关字节序、精度等所有额外信息的原因。没有 header 可以告诉您,它是 unheadered

使用您的命令,您将文件转换为 WAVE 格式,根据定义,该格式具有 header 定义编码。

你的意思是:

ffmpeg -i audio16000.mp3 -f s16le -ac 1 -ar 16000 audio16000.raw
  • -f s16le - 16 位 little-endian
  • ac 1 - 1 个通道
  • -ar 16000 - 16khz

您使用什么扩展名(PCM 或 RAW)完全取决于您。读入文件时,无论如何您都必须自己提供编码。