вторник, 4 октября 2016 г.

Конвертация звуковых файлов для Asterisk

Конвертация файлов для Asterisk при помощи программы SoX

sox — консольная утилита, которая умеет конвертировать аудиофайлы. Список поддерживаемых форматов велик. Имеются порты на windows, unix, macos.
Рассмотрим sox применительно к asterisk. Очень часто приходится восстанавливать файлы в wav или кодировать в ulaw, alaw, gsm, поэтому ниже приведен список команд для этого.

Простая конвертация

узнать информацию об аудиофайле

sox -V file.wav -e stat

wav to gsm

sox start.wav -r 8000 -c 1 -s -w finish.gsm resample -ql

gsm to wav

sox start.gsm -r 44100 -a finish.wav
или
sox.exe start.gsm -t wav -e signed-integer finish.wav

wav to alaw

sox start.wav -A -t RAW -r 8000 -c 1 finish.alaw

alaw to wav

sox -A -t RAW -r 8000 -c 1 start.alaw finish.wav

Команды для конвертации всех файлов в каталоге (применяется в скриптах)

Wav to alaw

for i in *.wav; do sox ./$i -t RAW -A -r 8000 -c 1 -1 ./`echo $i| sed "s/wav/alaw/"`; done

Wav to ulaw

for a in *.wav; do sox "$a" -t raw -r 8000 -c 1 -b -U `echo $a|sed "s/.wav/.mulaw/"` ; done

Wav to alaw

for a in *.wav; do sox "$a" -t raw -r 8000 -c 1 -b -A `echo $a|sed "s/.wav/.alaw/"` ; done

Wav to gsm

for a in *.wav; do sox "$a" -r 8000 -c1 `echo $a|sed "s/.wav/.gsm/"` resample -ql; done

Alaw to wav

for a in *.alaw; do sox -A -t RAW -r 8000 -c 1 "$a" `echo $a|sed "s/.alaw/.wav/"` ; done

Работа с MP3

Для работы с MP3 необходимо загрузить дополнительно 2 библиотеки: liblame и libmad Под Windows эти библиотеки можно загрузить отсюдаlibmad-0.dll libmp3lame-0.dll Эти файлы необходимо положить в папку с sox.exe

MP3 в GSM

sox source.mp3 -r 8k -c 1 -e gsm-full-rate finish.gsm remix -

MP3 в WAV

sox source.mp3 -c 1 -t wav -r 8k finish.wav remix -

Воспроизведение

В папке с sox.exe необходимо выполнить команду
copy sox.exe play.exe
Затем использовать play.exe в качестве консольного проигрывателя


Оригинал:
http://wiki.yola.ru/sound:sox:ast_conv



Или:Сначала переводим mp3'шку в wav'ку:

lame --decode file.mp3

Получаем файл file.mp3.wav, который по своим характеристикам еще не подходит для *. Теперь перекодируем его в Asterisk-совместимую "вавку" (8000 Hz, 16 bit, mono WAV):

sox -v 0.5 file.mp3.wav -t wav -2 -r 8000 -c 1 file.wav

Все, полученный file.wav "скармливаем" астеру.

P.S.: lame --decode file.mp3 - | sox -v 0.5 -t wav - -t wav -2 -r 8000 -c 1 file.wav
Оригинал:
http://morfair.livejournal.com/6180.html

Комментариев нет:

Отправить комментарий