Как настроить аудиофайл на определенные характеристики? - PullRequest
2 голосов
/ 08 февраля 2020

Как преобразовать mp3-файл в файл со следующими характеристиками?

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

Я попытался выполнить эту команду:

ffmpeg -i audio16000.mp3 - ar 16000 -a c 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

Он не говорит, является ли он прямым порядком байтов или он не заголовок. Я также подумал, что только необработанный файл не заголовен, и что у файла wav есть заголовок, но инструкции, которые я читаю, подсказывают мне использовать команду ffmpeg, которую я использовал выше.

1 Ответ

4 голосов
/ 08 февраля 2020

Ваша цель - преобразовать в PCM (Pulse-Code Modulation), который по сути является необработанным аудиофайлом. Вот почему вам также нужна вся дополнительная информация о порядке байтов, точности и т. Д. c. Там нет заголовка, который бы сказал вам, что это unheadered .

С помощью вашей команды вы вместо этого преобразовали файл в формат WAVE , который по определению имеет заголовок, определяющий кодировку.

Что вы имели в виду:

ffmpeg -i audio16000.mp3 -f s16le -ac 1 -ar 16000 audio16000.raw
  • -f s16le - 16-разрядный младший байтовый код
  • ac 1 - 1 канал
  • -ar 16000 - 16 кГц

Какое расширение вы используете (PCM или RAW) действительно зависит от вас. При чтении файла вам все равно придется самостоятельно кодировать.

...