Você está na página 1de 3

Convertendo arquivos WAV

Asterisk 1.4
No asterisco 1.4 � um aplicativo de convers�o incorporado, o conversor de arquivo
Asterisk.
O comando converte entre diferentes formatos de c�digo.

arquivo converter <file_in.format> <file_out.format>

Um exemplo de script de shell:


#! / bin / bash
# Converte um arquivo de �udio de alaw para uma lei
rasterisk -x "arquivo converter /tmp/file_in.alaw /tmp/file_out.ulaw"

Converta arquivos da CLI


Voc� acabou de gravar um fabuloso arquivo de �udio para usar como seu menu de voz
principal. Ent�o voc� percebe que o Asterisk n�o usa �udio no formato WAV para os
aplicativos Playback ou Background. Ent�o, o que voc� faz? Como voc� pode converter
seus arquivos WAV em arquivos GSM que ainda possuem boa qualidade de som? (Isso �
parcialmente falso, o Asterisk pode reproduzir qualquer coisa com formato e codec,
incluindo alguns arquivos wav. Veja abaixo.)

Observe as diferen�as!

gsm: codifica��o raw gsm, bom para VoIP


wav: formato MS wav, 16 bit linear
WAV: formato MS wav, gsm codificado (wav49)

Voc� tamb�m pode colocar um script bash em / usr / bin e nome�-lo wav-gsm-convert.
O conte�do pode ser assim
#! / Bin / bash
Wav_file = $ 1
Gsm_file = $ {1 / .wav / .gsm}
Se [$ # -ne 1]; ent�o
Echo "Uso: $ 0 filename.wav"
Sa�da
Fi
E se [ ! -f $ wav_file]; ent�o
Echo "arquivo WAV est� faltando"
Sa�da 1
Fi
Se [-f $ gsm_file]; ent�o
Echo -en "O arquivo de destino $ gsm_file est� existente \ nVoc� deseja remov�-
lo (S / N):"
Leia
Se [["$ ans" = ~ / Yy /]]; ent�o
Rm -f $ gsm_file
Fi
Fi
Sox -t wav $ wav_file -r 8000 -c1 -t gsm $ gsm_file resample -ql

Em seguida, mova o seu novo arquivo foo.gsm para o diret�rio: / var / lib /
asterisk / sons

Agora voc� pode usar facilmente as aplica��es de Reprodu��o e Fundo em seu arquivo
extensions.conf para reproduzir o seu fabuloso menu de voz principal. Por exemplo:
Exten => s, 1, Background (foo)
ou
Exten => s, 1, fundo (menu principal-voz)
ou
Exten => s, 1, Playback (foo)
ou
Exten => s, 1, Playback (menu principal-voz)

Reproduzindo arquivos .sln a partir da linha de comando


Voc� pode jogar arquivos sln usando sox a partir da linha de comando (play � parte
do sox):
Play -t raw -r 8000 -s -w -c 1 file.sln

Usando arquivos WAV


Asterisk possui codecs para wav (pcm), gsm, g729, g726 e wav49, todos os quais
podem ser usados ??para reprodu��o e fundo. No entanto, o Asterisk n�o entende os
arquivos ADPCM WAV. Para converter seus arquivos WAV em um formato que o Asterisk
possa entender, use o seguinte comando:

Sox foo-in.wav -r 8000 -c 1 -s -w foo-out.wav resample -ql

Observe que o sox v14.3.0 e acima (instalado no Ubuntu 9.10), a resmagra��o n�o �
mais usada, o remix � usado ou deixa-o como:

Sox foo-in.wav -r 8k -c 1 -s -w foo-out.wav

Tudo, portanto, se voc� estiver usando o sox v14.3.foo acima e voc� est� recebendo
erros check_header com a reprodu��o, tente isso:

Sox foo-in.wav -r 8k -c 1 -e gsm foo-out.wav

Isso tamb�m funciona convertendo mp3, apenas certifique-se de ter o libsox-fmt-mp3


instalado.

Normaliza��o do volume e redu��o das fluxua��es de volume


Usando o filtro "compand" do comando sox, voc� pode reduzir ou eliminar flutters no
n�vel de volume e voc� pode normalizar o volume de seus arquivos de som. Isso �
chamado de compress�o de faixa din�mica. O efeito � desej�vel para um sistema PBX
onde as mudan�as no volume, ou as vozes que s�o muito silenciosas para entender,
seriam consideradas n�o-profissionais. � importante realizar o efeito compade ANTES
de o reescrever para preservar a maior qualidade poss�vel.

Um exemplo de comando para executar a compacta��o e a normaliza��o do intervalo


din�mico apropriado � mostrado abaixo:

Sox "foo-in.wav" -r 8000 -c1 "foo-out.gsm" lowpass 4000 compand 0,02,0.05 -60,
-60, -30, -10, -20, -8, -5, -8, -2, -8 -8 -7 0

Next, move your new foo.gsm file to the directory: /var/lib/asterisk/sounds

Now you can easily use the applications Playback and Background in your
extensions.conf file to play your fabulous main voice menu. For example:
exten => s,1,Background(foo)
or
exten => s,1,Background(main-voice-menu)
or
exten => s,1,Playback(foo)
or
exten => s,1,Playback(main-voice-menu)

Playing .sln files from the command line


You can play sln files using sox from the command line (play is part of sox):
play -t raw -r 8000 -s -w -c 1 file.sln

Using WAV files


Asterisk has codecs for wav (pcm), gsm, g729, g726, and wav49, all of which can be
used for Playback and Background. However, Asterisk does not understand ADPCM WAV
files. To convert your WAV files to a format which Asterisk can understand, use the
following command:

sox foo-in.wav -r 8000 -c 1 -s -w foo-out.wav resample -ql

Note that sox v14.3.0 and above (installed in Ubuntu 9.10), resample is no longer
used, remix is used or leave it as:

sox foo-in.wav -r 8k -c 1 -s -w foo-out.wav

All so if your using sox v14.3.foo and above and you are getting check_header
errors with play back try this:

sox foo-in.wav -r 8k -c 1 -e gsm foo-out.wav

This also works converting mp3, just make sure you have libsox-fmt-mp3 installed.

Normalizing volume and reducing volume fluxuations


Using the sox command's "compand" filter, you can reduce or eliminate flutters in
volume level, and you can normalize the volume of your sound files. This is called
dynamic range compression. The effect is desirable for a PBX system where changes
in volume, or voices that are too quiet to understand would be considered
unprofessional. It is important to perform the compand effect BEFORE you resample
it as to preserve as much quality as possible.

An example command to perform some appropriate dynamic range compression and


normalization is shown below:

sox "foo-in.wav" -r 8000 -c1 "foo-out.gsm" lowpass 4000 compand 0.02,0.05 -60,-
60,-30,-10,-20,-8,-5,-8,-2,-8 -8 -7 0

Você também pode gostar