Преобразование аудиоданных в формате RAW в формат WAV с использованием сценариев - PullRequest
15 голосов
/ 13 января 2010

У меня есть большое количество аудиофайлов .RAW (8-разрядный PCM без знака без порядковых номеров), которые я хочу преобразовать в файлы .WAV. Какой инструмент командной строки (Windows или Linux) я могу использовать для их быстрого преобразования?

Ответы [ 6 ]

30 голосов
/ 13 января 2010

Мне указал SoX друг, который добился цели. Синтаксис был использован sox -r 44100 -e unsigned -b 8 -c 1 <RAW_FILE> <TARGET_FILE>

2 голосов
/ 21 августа 2012

Сокс оказался невероятно быстрым и надежным. Я использую его для решения диктовки, которое я поставил вместе с Asterisk. Однако, если вы используете sox, помните, что вы должны знать, что такое исходная кодировка. Я обнаружил, что this - мое первоначальное зависание с проектом, который я сделал

Для моей реализации я использую это:

sox -t auto -w -s -r 8000 -c 1 {input_file}  {output_file}
2 голосов
/ 13 января 2010

MPlayer должен иметь возможность конвертировать аудио;

$ mplayer \
  -quiet \
  -vo null \
  -vc dummy \
  -af volume=0,resample=44100:0:1 \
  -ao pcm:waveheader:file="file.wav" "file.raw"

Он доступен в большинстве менеджеров пакетов дистрибутивов Linux.

1 голос
/ 24 сентября 2018

Если у вас есть файл name.txt, который содержит все необработанные имена аудиофайлов, то с помощью python вы можете преобразовать пакет необработанных файлов в пакет wav.

from subprocess import call
file = "name.txt"
with open(file,'rU') as f:
     for name in f:
        name = name[:len(name)-4]
        name1 = './'+name+'raw' #input 
        name2 = './'+name+'wav' #output
        call(["sox","-r","48000", "-t", "sw", "-e", "signed", "-c", "1", "-b", "16", name1, name2])

частота дискретизации 48K, моноканал, точность 16 бит.

1 голос
/ 13 января 2010

audioconvert довольно стандартно (я думаю)

mencoder стандартно не поставляется в полностью бесплатных дистрибутивах linux, но может конвертировать во что угодно

0 голосов
/ 22 февраля 2019

Вы можете использовать node-lame

 var Lame = require("node-lame").Lame;

 const decoder = new Lame({
        output: "./new.wav",
        raw: true,
        bitwidth:16,
        sfreq:48,
        mode: "m"
    }).setFile("./a.pcm");
    decoder.decode().then(() => {
            console.log("decoded successfully.");
        }).catch(error => {
            console.log("Error: "+error);
        });

https://www.npmjs.com/package/node-lame

Или с помощью инструмента командной строки "sox"

sox -r 48000 -t sw -e signed -c 1 -b 16 a.pcm new.wav
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...