Admirável Mundo Novo: Tudo Sobre Asterisk, OpenSER, Linux e Tecnologias de Voz sobre IP: 2008




Muito Bem Vindo

Prezado Leitor, a proposta desse Blog é compartilhar conhecimento com as pessoas que trabalham com Linux, Asterisk, OpenSER, e com tecnologia de voz sobre a rede IP em geral, através de tutoriais, dicas, howto, notícias entre outros assuntos.

Atente para termo de uso do conteúdo do blog no rodapé da página.

quarta-feira, 31 de dezembro de 2008

Documentação do Manual do SOX - SOund eXchange





Nome
SOX - SOund eXchange: Tradutor universal de amostragem de som.



Sinopse

sox infile1 [ infile2 ... ] outfile
sox [ general options ] [ format options ] infile1
[ [ format options ] infile2 ... ] [ format options ] outfile
[ effect [ effect options ] ... ]

soxmix infile1 infile2 [ infile3 ... ] outfile
soxmix [ general options ] [ format options ] infile1
[ format options ] infile2
[ [ format options ] infile3 ... ]
[ format options ] outfile
[ effect [ effect options ] ... ]



Opções Gerais:

[ -h ] [ -p ] [ -q ] [ -S ] [ -V ]



Opções de Formato:

[ -t filetype ] [ -r rate ] [ -s/-u/-U/-A/-a/-i/-g/-f ]
[ -b/-w/-l/-d ] [ -v volume ]
[ -c channels ] [ -x ] [ -e ]



Efeitos:

avg [ -l | -r | -f | -b | -1 | -2 | -3 | -4 | n,n,...,n ]

band [ -n ] center [ width ]

bandpass frequency bandwidth

bandreject frequency bandwidth

chorus gain-in gain out delay decay speed depth

-s | -t [ delay decay speed depth -s | -t ]

compand attack1,decay1[,attack2,decay2...]
in-dB1,out-dB1[,in-dB2,out-dB2...]
[ gain [ initial-volume [ delay ] ] ]

copy

dcshift shift [ limitergain ]

deemph

earwax

echo gain-in gain-out delay decay [ delay decay ... ]

echos gain-in gain-out delay decay [ delay decay ... ]

fade [ type ] fade-in-length [ stop-time [ fade-out-length ] ]

filter [ low ]-[ high ] [ window-len [ beta ]]

flanger gain-in gain-out delay decay speed < -s | -t >

highp frequency

highpass frequency

lowp
frequency

lowpass frequency

mask

mcompand "attack1,decay1[,attack2,decay2...]
in-dB1,out-dB1[,in-dB2,out-dB2...]
[ gain [ initial-volume [ delay ] ] ]" xover_freq

noiseprof [profile-file]

noisered profile-file [threshold]

pan direction

phaser
gain-in gain-out delay decay speed < -s | -t >

pick [ -1 | -2 | -3 | -4 | -l | -r | -f | -b ]

pitch shift [ width interpole fade ]

polyphase [ -w < nut / ham > ]
[ -width < long / short / # > ]
[ -cutoff # ]

rate

repeat count

resample [ -qs | -q | -ql ] [ rolloff [ beta ] ]

reverb gain-out reverb-time delay [ delay ... ]

reverse

silence above_periods [ duration threshold[ d | % ]
[ below_periods duration threshold[ d | % ]]

speed [ -c ] factor

stat [ -s n ] [ -rms ] [ -v ] [ -d ]

stretch
[ factor [ window fade shift fading ]

swap [ 1 2 | 1 2 3 4 ]

synth [ length ] type mix [ freq [ -freq2 ]
[ off ] [ ph ] [ p1 ] [ p2 ] [ p3 ]

trim start [ length ]

vibro speed [ depth ]

vol gain [ type [ limitergain ] ]







... Retorna                  Prossegue ...











Descrição do SOX





Descrição

O SoX é um programa executado no prompt da linha de comando que pode converter muitos arquivos de áudio populares para outros formatos de arquivos de áudio igualmente bastante populares. Ele pode opcionalmente mudar o tipo de dados da amostra do áudio e aplicar um ou mais efeitos de som para o arquivo durante essa tradução.

Se mais do que um arquivo de entrada for especificado então eles serão concatenados no arquivo de saída. Neste caso, existe uma restrição de que todos os arquivos de entrada precisam ter o mesmo tipo de dados e mesma taxa de amostragem.

O programa soxmix é funcionalmente igual ao programa de linha de comando sox exceto que ele toma dois ou mais arquivos como entrada e mistura juntos os seus áudios para produzir um único arquivo como saída. Ele possui a restrição de que todos os arquivos de entrada precisam ser do mesmo tipo de dados e mesma taxa de amostragem.

Existem dois tipos de formatos de arquivo de áudio com os quais o SoX pode funcionar. O primeiro são os formatos de arquivos que se descrevem. Esses contêm um cabeçalho que descreve completamente as características dos dados do áudio que o acompanha.

O segundo tipo são os arquivos sem cabeçalho, ou, às vezes, chamados arquivos com dados brutos (raw) de áudio. Um usuário precisa passar a informação necessária ao SoX na linha de comando de sorte que o SOX saiba qual o tipo de dados o arquivo contem.

Os dados do Áudio podem ser normalmente descritos por quatro características fundamentais:

rate A taxa de amostragem está em número de amostras por segundo. Por exemplo, as taxas de amostragem de CD são da ordem de 44100 Hz.

data size A precisão dos dados contido no arquivo. Muito popular são bytes de 8 bits ou palavras de 16 bits.

data encoding O tipo de dados usado na codificação. São exemplos u-law, ADPCM ou codificação linear dos dados com sinal.

channels Quantidade de canais contidos nos dados de áudio. Mono e Estéreo são os dois canais mais comuns.

Favor consulte a página manual do soxexam(1) para um descrição mais completa com exemplos de como usar o SoX com os vários tipos de formatos de arquivos.









... Volta                   Prossegue ...















Alguns Exemplos e Opções Gerais





Opções

A opção de sintaxe é um pouco tosco, mas em essência é:

sox file.au file.wav

Traduz um arquivo de som no formato ‘.AU’ do Sparc SUN em um arquivo ‘.WAV’ da Microsoft, enquanto que:

sox -v 0.5 file.au -r 12000 file.wav mask

Faz a mesma tradução de formato, mas também diminui a amplitude por 1/2, altera a taxa de amostragem para 12000 Hertz, e aplica o efeito sonoro mask aos dados de áudio.

A seguir mistura dois arquivos de som juntamente para produzir um único arquivo de som.

soxmix music.wav voice.wav mixed.wav



Nomes de arquivos:

O SoX pode ser usado como parte de uma operação pipe usando o filenames de "-" especial. Se especificado como um nome de entrada, ele vai lê dado a partir da stdin. Se especificado como nome de saída, vai enviar dados ao stdout.



Opções Gerais:

-h
Imprime número de versão e informação de uso.

-p
Roda no modo preview e roda rápido. Essa opção será um tanto mais rápida SoX quando o formato de saída possui um número diferente de canais e uma taxa diferente daquela do arquivo de entrada. Atualmente, essa padroniza para usar o efeito rate em vez do efeito resample para mudanças da taxa de amostragem.

-q
Roda no modo quite quando o SoX contrariamente não fará isso. É o inverso da opção -S.

-S
Imprime o status enquanto está processando os dados de áudio. Informa quanto dos dados de áudio foram processados em termos de tempo de reprodução do áudio em vez de amostras.

-V
Imprime uma descrição das fases do processamento. Útil para compreender exatamente como o SoX está manipulando suas amostras de som.






... Volta                  Prossegue ...










Opções de Formato





Opções de Formato:

Opções de formato afeta os arquivos de entrada ou de saída aos quais elas precedem imediatamente.

Os arquivos de entrada que se descrevem podem fornecer todas as informações de formato diretamente do cabeçalho e assim geralmente não precisa de opções de formato. Arquivos de entrada sem cabeçalho faltando dessa informação e, portanto das opções de formato precisam ser usados para informar ao SoX do tipo de dados do arquivo, taxa de amostragem, e número de canais.

Por padrão, o SoX tenta escreve os dados de áudio usando o mesmo tipo de dados, taxa de amostragem, e quantidade de canais que os dados do arquivo de entrada. Se o usuário desejar que o arquivo de saída seja de um formato diferente então as opções de formato podem ser usadas para especificar as diferenças.

Se um formato do arquivo de saída não suportar os mesmos tipos de dados, taxa de amostragem, o número de canais que do formato do arquivo de entrada, então o SoX vai auto selecionar valores mais próximos que ele dá suporte de sorte que os usuários não tenham que especificar aquelas alterações de opções de formatos manualmente.


-t filetype

Fornece o tipo do arquivo de som a ser amostrado. Útil quando a extensão do arquivo não for padrão ou não consegue ser determinado pela verificação do cabeçalho do arquivo.


-r rate

Fornece a taxa de amostragem em Hertz do arquivo. Para produzir o arquivo de saída é preciso se ter uma taxa de amostragem diferente daquela taxa do arquivo de entrada, inclua essa opção como parte das opções do formato de saída. Se os arquivos de entrada e de saída tiverem taxas diferentes então à taxa de amostragem vai alterar o efeito que precisa ser executado. Já que o SoX possui múltiplas efeitos de mudança de taxas, o usuário pode especificar qual efeito usar. Se nenhum efeito for especificado pela alteração da taxa de amostragem então um padrão será escolhido.


-v volume

Altera a amplitude (ponto flutuante); diminui menos de 1.0, aumenta mais de 1.0. Pode usar um número negativo para inverter a fase dos dados de áudio. É interessante observar que nós percebemos o volume de forma logarítmica, mas essa opção ajusta a amplitude linearmente. Como outras opções de formato, a opção de volume afeta o arquivo com o qual está especificado. Isso é útil quando processando arquivos de entrada onde o ajuste do volume de entrada possa ser especificado para cada arquivo de entrada ou simplesmente ajustando um único arquivo de saída. Isso pode ser comparado a um misturador de áudio onde você pode controlar o volume de cada entrada bem como um volume master (lado de saída).

O programa soxmix padroniza o valor da opção -v para cada arquivo de entrada para um valor 1/quantidade_de_arquivos_de_entrada. Isso significa que se você estiver misturando juntos dois arquivos então o volume de cada arquivo de entrada é ajustado para 0.5. Isso é feito para evitar clipagem dos dados do áudio durante a operação de mistura. Usuários muito provavelmente não ficariam felizes com um grande ajuste de volume e pode especificar a opção -v para sobrescrever esse valor padrão.

Obs.: Para o caso de não mistura, veja o efeito stat para informação sobre a busca do ajuste do volume máximo que pode ser conseguido com essa opção sem causar aos dados de áudio ser clipado.


-s/-u/-U/-A/-a/-i/-g/-f

A codificação das amostras de dados é linear com sinal (complemento de 2), linear sem sinal, u-law (logarítmico), A-law (logarítmico), ADPCM, IMA_ADPCM, GSM, ou ponto flutuante. O formato U-law (realmente a contração para mu-law) e A-law é padrão dos U.S. e internacional para compressão de som telefônico logarítmico. Quando não comprimido u-law possui aproximadamente a precisão de áudio PCM de 14-bits e A-law possui aproximadamente a precisão de áudio PCM de 13-bits.

Os dados no formato A-law e u-law são às vezes codificado usando uma ordem de bit reverso (ou seja, MSB torna-se LSB). Internamente, o SoX entende como trabalhar com essa codificação, mas atualmente não existe nenhuma opção de linha de comando para especificá-lo. Se você precisar desse suporte então você pode usar os tipos de pseudo arquivos de ‘.la’ e ‘.lu’ para informar ao SOX da codificação. Veja os tipos de arquivos suportados para mais informação.

O formato ADPCM é uma forma de compressão de som que possui um bom compromisso entre a boa qualidade de som e tempo rápido de codificação/decodificação. É usado para compressão de áudio para telefonia e lugares onde fidelidade total do áudio não seja algo tão importante. Quanto ao formato não comprimido possui aproximadamente a precisão de áudio PCM de 16 bits. Versões populares do ADPCM incluem o G.726, ADPCM MS e o ADPCM IMA. O flag -a possui diferentes significados para diferentes manipuladores de arquivos. Em arquivos ‘.wav’, ele representa arquivos MS ADPCM, em todos os outros ele significa G.726 ADPCM. O formato ADPCM IMA é uma forma específica da compressão ADPCM, ligeiramente mais simples e com fidelidade ligeiramente inferior ao do formato da Microsoft flavor do ADPCM. O codec ADPCM IMA é também chamado de ADPCM DVI.

O Codec GSM é um padrão usado para compressão de áudio para telefonia em países europeus e está ganhando popularidade por causa da sua qualidade. Ele normalmente consome bastante CPU para funcionar com dados de áudio GSM.

-b/-w/-l/-d

O tamanho da amostra de dados está em bytes, em palavras de 16 bits, em palavras longas de 32 bits ou palavras duplamente longas de 64 bits (o tipo long long).

-x

Os dados amostrados estão no formato XINU; os dados vêm de uma máquina com a ordem de palavra oposta ao que os seus dados estão e precisa ser invertido de acordo com o tamanho da palavra dado acima. Somente dados inteiros de 16 e de 32 bits podem ser invertidos. Dados de ponto flutuante em formato de máquina que não são portáveis.


-c channels

O número de canais de som no arquivo de dados. Isso pode ser 1, 2, ou 4; para mono, estéreo, ou quad para dados de som. Para fazer o arquivo de saída ter número de canais diferentes daquele número do arquivo de entrada, inclua essa opção com as opções do arquivo de saída. Se os arquivos de entrada e de saída tiverem um número de canais diferente então o efeito avg precisa ser usado. Se o efeito não for especificado na linha de comando ele será invocado internamente com parâmetros padrões.


-e

Quando especificado após o último nome de arquivo de entrada (de sorte que ele aplica ao arquivo de saída) ele permite a você evitar dar um nome ao arquivo de saída e não vai produzir um arquivo de saída. Ele aplicará quaisquer efeitos ao arquivo de entrada. Isso é principalmente útil com o efeito stat, mas que pode ser usado.








... Voltar                  Prossegue ...















Tipos de Arquivo





Tipos de Arquivo

O SoX tenta determinar o tipo de arquivo dos arquivos de entradas automaticamente analisando o cabeçalho do arquivo de áudio. Quando ele conseguir detectar o tipo de arquivo ou se for um arquivo de saída então ele o usa a extensão de arquivo para determinar qual o tipo de manipulador de formato de arquivo ele deve usar.

Os arquivos de entrada e de saída podem ser lidos da entrada e da saída padrão. Isso é feito especificando ‘-‘ como o nome de arquivo.

Os formatos de arquivos que possuem cabeçalhos são verificados, se esse cabeçalho não parecer correto, o programa sai com uma mensagem apropriada.

Os formatos de arquivo seguintes são suportados:

.8svx
Formato de descrição de música instrumental 8SVX da Amiga.

.aiff
Arquivos AIFF usados nos Apple IIc/IIgs e SGI. Obs.: O formato AIFF suporta somente um chunk SSND. Ele não suporta múltiplos chunks de som, ou o formato de descrição de instrumento musical 8SVX. Arquivos AIFF são arquivos compactados multimídia e podem ter múltiplos áudio e chunks de figura. Você pode precisar de um arquivador separado para funcionar com ele.

.alsa
Driver de dispositivo ALSA /dev/snd/pcmCxDxp. Esse é um tipo de pseudo-arquivo e pode ser opcionalmente compilado dentro do SoX. Execute sox -h pra ver se você tem suporte para esse tipo de arquivo. Quando esse driver for usado ele permite você abrir o arquivo ALSA /dev/snd/pcmCxDxp e configure-o para usar o mesmo formato de dados que o passado ao SoX. Ele funciona tanto tocando quanto gravando amostras de som. Quando estiver tocando arquivos de som ele tenta ativar o driver ALSA para usar o mesmo formato que o arquivo de entrada. Sugere-se sobrescrever sempre os valores de saída para usar as amostras de mais alta qualidade que a sua placa de som pode tratar. Exemplo: sox infile -t alsa -w -s /dev/snd/pcmC0D0p.

.au
Arquivos AU SUN Microsystems. Existem aparentemente muitos tipos de arquivos ‘.au’; a DEC inventou o seu próprio com um número mágico e ordem de palavra diferentes. O tratador ‘.au’ pode ler esses arquivos mas não os escreverá. Alguns arquivos ‘.au’ possuem cabeçalhos AU validos e outros não. Os últimos são provavelmente amostras originais u-law 8000 Hz da SUN. Eles podem ser tratados usando o formato ‘.ul’ (veja abaixo).

.avr
Audio Visual Research. O formato AVR é produzido por inúmeros pacotes comerciais no Mac.

.cdr
CD-R. Os arquivos CD-R são usados em masterização de música nos Compact Disks. Os dados de áudio em um disco CD-R é um arquivo de áudio bruto com um formato estéreo com as amostras sinalizadas de 16-bits a um taxa de amostragem de 44 Khz. Existe um blocking/padding esquisito especial no final do arquivo de áudio e é o porquê ele precisa de seu próprio manipulador.

.cvs
Continuously Variable Slope Delta modulation. Usado para comprimir o áudio de fala para aplicações como voicemail.

.dat
Text Data files. Esses arquivos contem uma representação textual dos dados amostrados. Existe uma linha no começo que contem a taxa de amostragem. As linhas subseqüentes contem dois itens de dados numéricos: o tempo desde o começo da primeira amostra e o valor da amostra. Os valores são normalizados de sorte que o máximo e mínimo sejam 1.00 e -1.00. Esse formato de arquivo pode ser usado para criar arquivos de dados para programas externos como os analisadores FFT ou rotinas gráficas. O SoX pode também converter de volta um arquivo desse formato em um dos outros formatos de arquivos.

.gsm
GSM 06.10 Compressão da Fala com Minimização de Perdas nas Propriedades da Fala. Um padrão para compressão de fala que é usado no Global Standard for Mobil telecommunications (GSM). Ele é bom em sua finalidade, encolher o tamanho dos dados de áudio, mas ele introduzirá muito ruído quando uma dada amostra de som for codificada e decodificada múltiplas vezes. Esse formato é usado por algumas aplicações de voicemail. Ele é especialmente intensivo no uso de CPU. O GSM no SoX é opcional e requer acesso a uma biblioteca GSM externa. Para ver se existe suporte ao gsm execute sox -h e verifique o sob a lista de formatos de arquivos suportados.

.hcom
Arquivos HCOM da Macintosh. Esses são (aparentemente) arquivos FSSD da Mac com algumas variantes de compressão Huffman. A Macintosh possui formatos de arquivo estranhos e esse manipulador de formato aparentemente não trata todos aqueles que devem. Usuários Mac precisarão de seu arsenal usual de conversores de arquivos para tratar um arquivo HCOM sob UNIX ou DOS.

.maud
Um formato Amiga. Um tipo de arquivo de som em conformidade com a IFF, registrado pela MS MacroSystem Computer GmbH, publicado junto com a placa de som "Toccata" no Amiga. Permite o codec linear 8-bits, o codec linear 16-bits, A-Law, u-law em mono e em estéreo.

.mp3
Áudio comprimido em MP3. Arquivos de áudio MP3 vindo dos padrões MPEG para compressão de áudio e vídeo. Eles são uns formatos de compressão que remove informação não significativa dos dados para gerar arquivo compactado a uma taxa boa de compressão com a mínima perda das propriedades e qualidade do som. Também veja Ogg Vorbis para um formato similar. O suporte MP3 no SoX é opcional e requer acesso a uma das duas ou a ambas as bibliotecas externas libmad e libmp3lame. Pra ver se existe suporte para Mp3 execute o comando sox -h e repare-o sob a lista de formatos de arquivos suportados como "mp3".

.nul
Manipulador de arquivo Nulo. Esse é um falso manipulador de arquivo que age como se ele estivesse lendo uma stream de 0's a partir de um instante ou fazendo uma escrita falsa em um arquivo. Esse não é um manipulador de arquivo muito útil em muitos casos. Ele pode ser útil em alguns scripts onde você não deseja ler ou escrever a partir de um arquivo real, mas gastaria de especificar um nome de arquivo por consistência.

.ogg
Áudio Comprimido Ogg Vorbis. Ogg Vorbis é um CODEC aberto, livre de patente projetado para fazer compressão de música e streaming áudio. Ele é similar ao MP3, VQF, AAC, e outros formatos com compressão. O SoX pode decodificar todos os tipos de arquivos Ogg Vorbis, mas somente pode codificar a 128 kbps. O processo de decodificação é um tanto intensivo de CPU e codificação é muito intensivo de CPU. O codec Ogg Vorbis no SoX é opcional e requer acesso a bibliotecas Ogg Vorbis externas. Par ver se existe suporte para o Ogg Vorbis execute o comando sox -h e repare-o sob a lista de formatos de arquivos suportados aparece "vorbis".

ossdsp
Driver de dispositivo OSS /dev/dsp. Esse é um tipo de pseudo-arquivo e pode ser opcionalmente compilado dentro no SoX. Execute o comando sox -h pra ver se você tem suporte para esse tipo de arquivo. Quando esse driver for usado ele permite você abrir o arquivo OSS /dev/dsp e configurá-lo para usar o mesmo formato de dados que o passado ao SoX. Ele funciona tanto tocando quanto gravando amostras de som. Quando tocando arquivos de som ele tenta ativar o driver OSS para usar o mesmo formato que do arquivo de entrada. Sugere-se sempre sobrescrever os valores de saída para usar amostras de mais alta qualidade que sua placa de som pode tratar. Exemplo: sox infile -t ossdsp -w -s /dev/dsp.

.prc
Psion record.app. Usado em alguns dispositivos Psion para alarmes de Sistema. Esse formato é mais novo que o formato ‘.wve’ que é usado em alguns dispositivos Psion.

.sf
Arquivos de Som IRCAM. Arquivos de Som são usados pelo academic music software como o pacote CSound, e o editor de amostras de som MixView.

.sph
O SPHERE (SPeech HEader Resources) é um formato de arquivo definido pelo NIST (National Institute of Standards and Technology) e é usado com áudio de fala. O SoX pode ler esses arquivos quando eles contiverem dados u-law e PCM. Ele vai ignorar qualquer informação de cabeçalho que diz que os dados estão comprimidos usando compressão shorten e vai tratar os dados tanto como u-law ou PCM. Isso permitirá o SoX e o programa da linha de comando shorten ser executados conjuntamente usando pipes para descomprimir os dados e depois passar o resultado ao SoX para processamento.

.smp
Arquivos SampleVision Turtle Beach. Arquivos SMP são uso com o pacote SampleVision para PC-DOS da Turtle Beach Softworks. Esse pacote é para comunicação a vários amostradores MIDI. Todas as taxas de amostragem são suportadas pelo pacote, embora nem todas sejam suportadas pelos amostradores em si. Atualmente pontos de loop são ignorados.

.snd
Rodando sob o DOS, esse formato de arquivo é o mesmo que o formato ‘.sndt’. Rodando sob as demais plataformas ele é o mesmo que o formato ‘.au’.

.sndt
Arquivos SoundTool. Esse é um antigo formato de arquivo do DOS.

sunau
Driver de dispositivo /dev/audio da Sun. Esse é um tipo de pseudo-arquivo e pode ser compilado opcionalmente dentro do SoX. Execute o comando sox -h pra ver se você tem suporte para esse tipo de arquivo. Quando esse driver é usado ele permite você abrir um arquivo /dev/audio da Sun e configure-o para usar o mesmo tipo de dados que o passado ao SoX. Ele funciona tanto tocando quanto escrevendo amostras de som. Quando tocando arquivos de som ele tenta ativar o driver de áudio para usar o mesmo formato que o arquivo de entrada. É sugerido sempre sobrescrever os valores de saída para usar as amostras com qualidade mais alta que o seu hardware pode tratar. Exemplo: sox infile -t sunau -w -s /dev/audio ou sox infile -t sunau -U -c 1 /dev/audio para equipamentos sun antigos.

.txw
Amostrador TX-16W da Yamaha. Um formato de arquivo de um teclado de amostragem da Yamaha que escrevia no formato de disquetes 3.5 polegadas do PC IBM. Trata leitura de arquivos que não possuem o campo de taxa de amostragem definido para alguns dos valores esperados fazendo o exame de alguns outros bytes nos campos de tamanho attack/loop, e padroniza em 33 kHz se a taxa de amostragem ainda ficar desconhecido.

.vms
Mais informação está pra chegar. Usado para comprimir áudio de fala para aplicações como voicemail.

.voc
Arquivos VOC da Sound Blaster. Os arquivos VOC são multi-parte e contem partes de silêncio, looping, e diferentes taxas de amostragem para diferentes pedaços. Na entrada, as partes de silêncio são preenchidas, loops são rejeitados, e dados de amostras com uma nova taxa de amostragem é rejeitado. O Silêncio com uma taxa de amostragem diferente é gerada apropriadamente. Na saída, o silêncio não é detectado, e nem são impossíveis taxas de amostragem. Observe que, essa versão agora suporta tocar arquivos VOC com múltiplos blocos e suporta tocar arquivos contendo amostras u-law e A-law.

vorbis
Veja o formato ‘.ogg’.

.vox
Um arquivo sem cabeçalho com dados de áudio ADPCM da Dialogic/OKI normalmente vem com a extensão ‘.vox’. Esse dados ADPCM possuem precisão de 12 bits comprimido em somente 4 bits.

.wav
Arquivos RIFF ‘.WAV’ Microsoft. Esses formatos aparecem ser muito similares aos formatos dos arquivos IFF, mas não são iguais. Eles estão no formato nativo de arquivos de som do Windows. (Obviamente, o Windows se tornou incrivelmente de tal importância para a indústria computacional que ele naturalmente precisou ter seu próprio formato de arquivo de som). Normalmente, arquivos ‘.wav‘ possuem toda informação de formatação em seus cabeçalhos, e assim não precisam de quaisquer opções de formatos especificados para um arquivo de entrada. Se algum estiver, elas sobrescreverão o cabeçalho do arquivo, e você será avisado sobre esse efeito. Você deve saber o que você está fazendo! As opções de formato de saída farão uma conversão de formato, e o ‘.wav‘ escreverá apropriadamente. O SoX atualmente pode ler PCM, ULAW, ALAW, MS ADPCM, e IMA (ou DVI) ADPCM. Ele pode escrever tudo desses formatos incluindo a codificação ADPCM. Versões Big endian de arquivos RIFF, chamados RIFX, podem ser lidos e escritos também. Para escrever um arquivo RIFX, use a opção -x com as opções do arquivo de saída.

.wve
Psion 8-bits A-law. Estes são arquivos de som de 8 bits A-law 8khz usados no computador portátil tipo palmtop da Psion.

.raw
Arquivos Raw (sem cabeçalho). A taxa de amostragem, tamanho (byte, word, etc), e codificação (sinalizada, não sinalizada, etc.) do arquivo amostrado precisa ser fornecido. O número de canais é padronizado em 1.

.ub, .sb, .uw, .sw, .ul, .al, .lu, .la, .sl
Estes são vários sufixos que servem como um atalho para arquivos raw com um dado tamanho e codificação. Portanto, ub, sb, uw, sw, ul, al, lu, la e sl correspondem a "unsigned byte", "signed byte", "unsigned word", "signed word", "u-law" (byte), "A-law" (byte), ordem dos bits de "u-law" inversa, ordem dos bits de "A-law" inversa, e "signed long", respectivamente. A taxa de amostragem é padronizada em 8000 Hz se não for definido explicitamente, e o número de canais padronizado em 1. Existem bastante amostragens de ponto flutuante Sparc baseado no formato u-law sem cabeçalho e taxa de amostragem fixa de 8000 Hz. (Certos softwares de gerenciamento de som ignoram sem a menor preocupação os cabeçalhos). De modo similar, muitos arquivos de som Mac estão em formato byte não sinalizado com uma taxa de amostragem de 11025 ou 22050 Hz.

.auto
Esse é um ''meta-type'' e é o tipo de arquivo padrão se o usuário não especificar algum. Esse tipo de arquivo tenta imaginar o tipo verdadeiro buscando palavras mágicas no cabeçalho. Se o tipo não puder ser imaginado, o programa sai com uma mensagem de erro. A entrada precisa estar em um arquivo plano, e não um pipe. Esse tipo não pode ser usado para arquivos de saída.









... Voltar                  Prossegue ...










Opções do SOX que Geram Efeitos no Áudio





Efeitos

Múltiplos efeitos podem ser aplicados aos dados de áudio quando os especificando um após um outro ao final de cada linha de comando.


avg [ -l | -r | -f | -b | -1 | -2 | -3 | -4 | n,n,...,n ]

Reduz o número de canais calculando as amostras, ou canais duplicados para aumentar o número de canais. Esse efeito é usado automaticamente quando o número de canais de entrada diferir do número de canais de saída. Quando reduzindo o número de canais é possível especificar manualmente o efeito avg e usar as opções -l, -r, -f, -b, -1, -2, -3, -4, para selecionar somente os canais esquerdo, direito, frontal, traseiro ou o canal específico para a saída em vez da média dos canais. As opções -l, e -r executarão o cálculo da média em arquivos de quatro canais de modo a selecionar o canal exato para evitar isso.

O efeito avg pode ser também invocado com até 16 números de precisão dupla, separado por vírgulas, que especifica a proporção (0.0 = 0% e 1.0 = 100%) de cada canal de entrada que será misturado em cada canal de saída. No modo dois canais, 4 números são dados: l->l, l->r, r->l, e r->r, respectivamente. No modo quatro canais, os primeiros 4 números dão as proporções para o canal de saída esquerda/frontal, como segue aqui: lf->lf, rf->lf, lb->lf, e rb->rf. Os próximos 4 números dão a saída direita/frontal na mesma ordem, depois esquerda/traseira e direita/traseira.

É também possível usar 16 números para expandir ou reduzir a quantidade de canais; justamente especifica 0 para canais não usados.

Finalmente, certas combinações reduzidas de números podem ser especificadas para certas combinações de canais de entrada/saída.

In Ch Out Ch Num Mappings
_____ ______ ___ _____________________________
2 1 2 l->l, r->l

2 2 1 adjust balance

4 1 4 lf->l, rf->l, lb->l, rb-l

4 2 2 lf->l&rf->r, lb->l&rb->r

4 4 1 adjust balance

4 4 2 front balance, back balance

band [ -n ] center [ width ]

Aplica um filtro passa faixa. A resposta de freqüência decresce logaritmicamente em torno da freqüência center. O parâmetro width fornece a declividade da queda. As freqüências center+width e center–width terão a metade de suas amplitudes originais. O parâmetro band estabelece como padrão um modo orientado aos tipos de sinais qualificados (pitched), ou seja, voz, canto ou música instrumental. A opção –n (para ruído) usa o modo alternado para sinais não pitched. Aviso: -n introduz um ganho de potência em torno de 11 dB no filtro, portanto tenha ciência da clipagem na saída. O parâmetro band introduz ruído na figura do filtro, ou seja, chegando ao máximo na freqüência center e estabelecendo-se em torno dela. Veja o parâmetro filter para ver o efeito passa faixa com a declividade acentuada dos lados do trapezóide.


bandpass frequency bandwidth

Filtro passa faixa de Butterworth. A descrição em futuro próximo!


bandreject frequency bandwidth

Filtro rejeita faixa de Butterworth. A descrição em futuro próximo!


chorus gain-in gain-out delay decay speed depth
-s | -t [ delay decay speed depth -s | -t ... ]

Adiciona o efeito coro a uma amostragem de som. Cada quadtupla atraso/decaimento/velocidade/profundidade fornece o atraso em mili-segundos e o decaimento (relativo ao ganho de entrada) com uma velocidade de modulação em Hz usando a profundidade em mili-segundos. A modulação pode ser tanto senoidal (-s) quanto triangular (-t). O ganho de saída é o volume da saída.


compand attack1,decay1[,attack2,decay2...]
in-dB1,out-dB1[,in-dB2,out-dB2...]
[gain [initial-volume [delay ] ] ]

Compand (comprime ou expande) a faixa dinâmica de uma amostragem. O tempo de attack e decaimento especifica o tempo de integração sobre o qual o valor absoluto do sinal de entrada é integrado para determinar seu volume; attacks se refere a aumentar em volume e decaimentos se refere a diminuir. Onde mais de um par de parâmetros attack/decaimento é especificado, cada canal é tratado separadamente e o número de pares precisa estar de acordo com o número de canais de entrada. O segundo parâmetro é uma lista de pontos na função de transferência do compander especificado em dB relativo à amplitude máxima possível do sinal. Os valores de entrada precisam estar em uma ordem estritamente crescente, mas a função de transferência não precisa ser mono tonicamente crescente. O valor especial -inf precisa ser usado para indicar que o volume de entrada deve ser associado ao volume de saída. Os pontos -inf,-inf e 0,0 são assumidos; o segundo precisa ser sobrescrito, mas o primeiro não precisa.

O terceiro (opcional) parâmetro é um ganho de pós-processamento em dB que é aplicado após a compressão tenha acontecido; o quarto (opcional) parâmetro é um volume inicial a ser assumido para cada canal quando o efeito começa. Isso permite ao usuário fornecer um nível nominal inicialmente, de sorte que, por exemplo, um ganho mais largo não seja aplicado aos níveis de sinais iniciais antes da ação companding tenha começado a tomar efeito: é completamente provável que em tal evento, a saída seja severamente clipada enquanto o compander ajusta o ganho apropriadamente si mesmo.

O quinto parâmetro (opcional) é um atraso em segundos. O sinal de entrada é analisado imediatamente para controlar o compander, mas é atrasado antes de ser alimentado ao ajustador de volume. Especificar um atraso aproximado igual aos tempos de attack/decaimento permite ao compander operar efetivamente em um modo “preditivo” em vez de um modo “reativo”.


copy

Copia o arquivo de entrada para o arquivo de saída. Esse é o efeito padrão se ambos os arquivos tiverem a mesma taxa de amostragem.


dcshift shift [ limitergain ]

Deslocamento da componente DC dos dados de áudio, com a fórmula básica da amplitude linear. Isso é frequentemente útil se os seus dados de áudio tendem a não estar centralizado em torno do valor 0. Deslocando o de volta permitirá você conseguir mais ajustes de volume sem clipagem dos dados de áudio. A primeira opção é o valor dcshift. Ele é um número de ponto flutuante que indica a quantidade a deslocar. Um valor para a opção limtergain pode ser especificado também. Ele deve ser um valor bem menor que 1.0 e é usado somente nos picos para evitar clipagem.


deemph

Aplica uma atenuação no filtro de redução tripla para amostrar o áudio no formato CD. A resposta de freqüência da gravação é retificada com pré-ênfase. A filtragem é definida no documento do padrão ISO 908.


earwax

Torna o som mais fácil de escutar em fones de cabeça. Acrescenta trilhas de áudio para amostrar em formato de áudio CD de sorte que quando escutado em fones de cabeça a imagem estéreo é movida do lado de dentro da sua cabeça (padrão para fones de cabeça) para fora e na fronte do ouvinte (para alto-falantes). Veja em www.geocities.com/beinges para uma explicação completa.


echo gain-in gain-out delay decay [ delay decay ... ]

Adiciona o efeito eco para uma amostra de som. Cada parte atraso-decaimento dá o atraso em mili-segundos e o decaimento (relativo ao ganho de entrada) desse eco. Ganho de saída é o volume da saída.


echos gain-in gain-out delay decay [ delay decay ... ]

Adiciona uma seqüência de ecos a uma amostra de som. Cada parte atraso-decaimento dá o atraso em mili-segundos e o decaimento (relativo ao ganho de entrada) desse eco. Ganho de saída é o volume da saída.


fade [ type ] fade-in-length
[ stop-time [ fade-out-length ] ]

Adiciona um efeito fade ao começo, fim, ou a ambos dos dados de áudio.
Para os fade-ins, isso começa a partir da primeira amostra e aumenta o volume do áudio a partir de 0 para volume completo além de fade-in-length segundos. Especifica 0 segundo se nenhum fade de entrada for desejado.

Para os fades de saída, os dados de áudio serão truncados no stop-time e o volume será declinado a partir do volume cheio até 0 começando de fade-out-length segundos antes do stop-time. Se o fade-out-length não for especificado, ele padroniza ao mesmo valor que o de fade-in-length. Nenhum fade de saída será executado se o stop-time não for especificado. Em todas às vezes podem ser especificadas tanto em períodos de tempo quanto em quantidade de amostras. Para especificar períodos de tempo use o formato hh:mm:ss.frac. Para especificar usando quantidades de amostras, especifique o número de amostras e anexe a letra 's' à quantidade de amostra (por exemplo, 8000s). Um type opcional pode ser especificado para alterar o tipo de envelope. As escolhas são: q para um quarto de uma onda senoidal; h para metade de uma onda senoidal; t para declividade linear; l para logarítmica, e p para parábola invertida. O padrão é uma declividade linear.


filter [ low ]-[ high ] [ window-len [ beta ] ]

Aplica um filtro passa-baixa, passa-alta ou passa-faixa janelado com Sinc de dado tamanho de janela ao sinal. O parâmetro low se refere à freqüência do canto inferior 6 dB do filtro. O parâmetro high se refere à freqüência do canto superior 6 dB do filtro.

Um filtro lowpass é obtido deixando low sem ser especificado, ou 0. Um filtro highpass é obtido deixando high não especificado, ou 0, ou maior ou igual à freqüência de Nyquist.

A window-len, se não for especificada, é padronizada como 128. Janela mais longa gera uma freqüência de corte acentuada, janela mais curta gera uma freqüência de corte mais gradual.
O parâmetro beta, se não for especificado, é padronizado como 16. Ele seleciona uma janela Kaiser. Você pode selecionar uma janela Nuttall especificando qualquer coisa <= 2.0 aqui. Para mais discussão sobre beta, estude mais sob o efeito gerado pela opção resample.

flanger gain-in gain-out delay decay speed < -s | -t >

Adicione um flanger para uma amostra de som. Cada tripla atraso/decaimento/velocidade dá o atraso em mili-segundos e o decaimento (relativo ao ganho de entrada) com uma velocidade de modulação em Hz. A modulação é será tanto senoidal (-s) ou triangular (-t). O ganho de saída é o volume da saída.


highp frequency

Aplica um filtro passa alta de um único pólo recursivo. A resposta de freqüência cai logaritmicamente com a freqüência no meio da descida. A declividade do filtro é totalmente moderada. Veja o parâmetro filter para o efeito de um filtro passa alta com acentuada freqüência de corte.


highpass frequency

Filtro passa - alta de Butterworth. A descrição em futuro próximo!


lowp frequency

Aplica um filtro passa baixa com um único pólo recursivo. A resposta de freqüência decai logaritmicamente com a frequency no meio da queda. A declividade do filtro é completamente moderada. Veja o parâmetro filter para ver o efeito passa baixa com acentuada freqüência de corte.


lowpass frequency

Filtro passa - baixa de Butterworth. A descrição em futuro próximo!


mask

Adiciona "máscara de ruído" ao sinal. Esse efeito adiciona deliberadamente ruído Branco a um som a fim de mascarar os efeitos da quantização, criado pelo processo para tocar um som digitalmente. Ele tende a mascarar vozes zoadentas, por exemplo. Ele adiciona 1/2 bit de ruído ao arquivo de som na profundidade do bit de saída.


mcompand "attack1,decay1[,attack2,decay2...]
in-dB1,out-dB1[,in-dB2,out-dB2...]
[gain [initial-volume [delay ] ] ]" xover_freq

O compander de múltiplas bandas é similar ao compander de banda única, mas o arquivo de áudio é primeiro dividido em bandas e depois o compander é executado sobre cada banda. Veja o efeito compand para definição de suas opções. Opções de Compand são especificados entre aspas duplas e a freqüência crossover para essa banda é especificada separadamente com xover_fre. Isso pode ser repetido múltiplas vezes para criar múltiplas bandas.


noiseprof [profile-file]
noisered profile-file [threshold]

Filtro de redução de ruído com especificação de perfil. Esse filtro é moderadamente efetivo na remoção consistente do ruído de fundo como hiss ou hum. Para usá-lo, primeiro execute o efeito noiseprof em uma seção de silêncio (isto é, uma seção que contem nada, mas ruído). O efeito noiseprof imprimirá um perfil de ruído em profile-file, ou em stdout se nenhum profile-file for especificado. Se existir saída de som em stdout, em vez disso, então o perfil será direcionado para stderr.

Para remover realmente o ruído, execute o SoX novamente com o filtro noisered. O filtro precisa de um argumento, profile-file, que contem o perfil de ruído a partir de noiseprof. O parâmetro threshold especifica quanto de ruído deve ser removido, e pode estar entre 0 e 1 sendo o valor 0,5 o padrão. Valores mais altos removerá mais ruído mas apresenta uma grande possibilidade de distorção do sinal de áudio. Experimente valores de limiares diferentes para descobrir um valor ótimo para o seu exemplo.


pan direction

Pan o som de um arquivo de áudio de um canal para um outro. Isso é feito alterando o volume dos canais de entrada de modo que ele executa a saída de fade em um canal e executa a entrada de fade em um outro. Se o número de canais de entrada for diferente do número de canais de saída então esse efeito tenta tratar isso inteligentemente. Por exemplo, se a entrada contiver 1 canal e a saida contiver 2 canais, então ele criará o canal faltante por conta própria. O parâmetro direction é um valor de -1.0 a 1.0. O valor -1.0 representa mais a esquerda e 1.0 representa o valor mais direita. Números de entrada entre iniciará o efeito pan sem totalmente deixar mudo o canal oposto.


phaser gain-in gain-out delay decay speed < -s | -t >

Adiciona um programador de fase a uma amostra de som. Cada tripla atraso/decaimento/velocidade dá o atraso em mili-segundos e o decaimento (relativo ao ganho de entrada) com uma velocidade de modulação em Hz. A modulação tanto será senoidal (-s) como triangular (-t). O decaimento deve ser menor que 0.5 para evitar realimentação. O ganho de saída será o volume da saída.


pick [ -1 | -2 | -3 | -4 | -l | -r | -f | -b ]

Escolhe um subconjunto de canais a ser copiados no arquivo de saída. Esse efeito é justamente um apelido do efeito "avg", mas foi deixado aqui por razões históricas.


pitch shift [ width interpole fade ]

Altera o pitch do arquivo sem afetar sua duração pela cross-fading shifted samples. O parâmetro shift é dado em percentual. Use um valor positivo para deslocar para agudo, valor negativo para deslocar para grave. O shift padrão é 0. A largura width da janela está em ms. A largura width padrão é 20ms. Tente 30ms para baixar o pitch, e 10ms para aumentar o pitch. A opção interpole, pode ser "cubic" ou "linear". O padrão é "cubic". A opção fade, pode ser "cos", "hamming", "linear" ou "trapezoid". O padrão é "cos".


polyphase [ -w < nut | ham > ]
[ -width < long | short | # > ]
[ -cutoff # ]

Traduz a taxa de amostragem de entrada para taxa de amostragem de saída via interpolação de polifase, um algoritmo DSP. Esse método é lento e usa um bocado de RAM, mas dá resultados bem melhores do que rate.

-w < nut | ham > : seleciona tanto uma janela Nuttal (banda de corte ~90 dB) como uma janela Hamming (banda de corte ~43 dB). O padrão é nut.

-width long | short | # : especifica a largura width (aproximada) do filtro. O parâmetro long é de 1024 amostras; o parâmetro short é de 128 amostras. Alternativamente, um número exato pode ser usado. O padrão é long. A opção short não é recomendada, porque ela produz resultados de baixa qualidade.

-cutoff # : especifica a freqüência de corte do filtro em termos de fração da freqüência da largura de banda, também conhecido como a freqüência de Nyquist. Favor veja o efeito resample para mais informações a cerca da freqüência de Nyquist. Se upsampling, então essa é a fração do sinal original que deve passar. Se downsampling, essa é a fração do sinal excluído depois a downsampling. O padrão é 0.95. Lembre-se que isso é um flutuante.


rate

Traduz a taxa de amostragem de entrada para taxa de amostragem de saída via interpolação linear pelo Menor Múltiplo Comum das duas taxas de amostragem. Esse é o efeito padrão se os dois arquivos tiverem taxas de amostragem diferentes e se as opções prévias foram especificadas. Essa é rápida, mas gera ruído: o espectro do som original será deslocado pra cima e duplicado levemente quando fazendo a translação pra frente por um múltiplo.

Lerp-ing é aceitável para hardware barato de som de 8 bits, mas para som com qualidade de CD você deve em vez disso usar ou a opção resample ou a opção polyphase. Se você estiver curioso sobre quais efeitos de alteração de taxa usar, você vai querer ler uma análise detalhada de tudo a respeito disso em http://leute.server.de/wilde/resample.html.


repeat count

Repete os dados de áudio count vezes. Requer espaço de disco para armazenar os dados a serem repetidos.


resample [ -qs | -q | -ql ] [ rolloff [ beta ] ]

Faz a translação da taxa de amostragem do arquivo de entrada para taxa de amostragem do arquivo de saída via filtragem analógica simulada. Esse método é mais lento que a opção rate, mas produz resultados bem melhores.

Por padrão, a interpolação linear é usada, com uma largura de janela em torno de 45 amostras com o menor valor das duas taxas. Isso produz uma precisão em torno de 16 bits, mas banda de rejeição insuficiente no caso em que você desejar ter rolloff maior do que em torno de 0.80 da freqüência de Nyquist.

As opções -q* vão alterar os valores padrão para rolloff e beta bem como usar interpolação quadrática dos coeficientes do filtro, resultando em precisão em torno de 24 bits. As opções -qs, -q, ou -ql especificam precisão aumentada ao custo de velocidade de execução mais baixa. É opcional especificar os parâmetros rolloff e beta quando usando as opções -q*.

A seguir está uma tabela razoável com valores padrões que estão embutidos no SoX:


Option Window rolloff beta interpolation
------ ------ ------- ---- -------------
(none) 45 0.80 16 linear

-qs 45 0.80 16 quadratic

-q 75 0.875 16 quadratic

-ql 149 0.94 16 quadratic
------ ------ ------- ---- -------------

-qs, -q, ou -ql usam tamanhos de janela de 45, 75 ou 149 amostras, respectivamente, com a menos taxa de amostragem dos dois arquivos. Isso significa rejeição progressivamente aguda na banda de rejeição, proporcionalmente em menores tempos de execução.

rolloff se refere à freqüência de corte do filtro passa baixa e é dado em termos da freqüência de Nyquist para a taxa de amostragem mais baixa. rolloff consequentemente deve ser algo entre 0.0 e 1.0, na prática 0.8-0.95. Os valores padrões são indicados acima.

A freqüência de Nyquist é igual a (taxa de amostragem / 2). Logicamente, isso é devido ao conversor A/D precisar de pelo menos 2 amostras para detectar 1 ciclo na freqüência de Nyquist. Freqüências mais altas que a freqüência de Nyquist realmente vai aparecer como freqüências mais baixas ao conversor A/D e é chamado aliasing. Normalmente, os conversores A/D primeiro executam o sinal através de um filtro passa alta para evitar esses problemas.

Problemas similares vão acontecer em software quando reduzindo a taxa de amostragem de um arquivo de áudio (freqüências acima da nova freqüência de Nyquist podem ser aliased para freqüências mais baixa). Portanto, um bom efeito de re-amostragem vai remover toda a informação de freqüência acima da nova freqüência de Nyquist.

O rolloff se refere o quanto esse corte for próximo da freqüência de Nyquist, quanto tão próximo for melhor. Quando aumentando a taxa de amostragem de um arquivo de áudio você não deve esperar ter a existência de quaisquer freqüências que seja passado à freqüência de Nyquist original. Por causa das propriedades da re-amostragem, é comum ter a produção de alias nos dados criados que está acima da freqüência antiga de Nyquist. Neste caso o rolloff se refere à quão próxima for da freqüência de Nyquist original para usar um filtro passa alta para remover esses dados falsos, da mesma forma quanto mais próxima for melhor.

O parâmetro beta determina o tipo de janela de filtro usado. Um valor maior que 2.0 é o valor de beta para uma janela Kaiser. Beta <= 2.0 seleciona uma janela Nuttall. Se não for especificado, o padrão é uma janela Kaiser com beta igual a 16.

No caso da janela Kaiser (beta > 2.0), valores de beta menores produzem transição um tanto mais rápida do passa faixa para o rejeita faixa, ao custo de artefatos observáveis. O valor de beta igual a 16 é o padrão, o valor de beta menor que 10 não seja recomendado. Se você quiser um corte mais acentuado, não use valores de beta baixos, use uma janela de amostragem mais longa. Uma janela Nuttall é selecionada especificando qualquer valor de 'beta' <= 2, e a janela Nuttall possui corte um tanto mais excessivo que a janela Kaiser padrão. Você provavelmente não precisará usar o parâmetro beta de modo algum, a não ser que você esteja realmente curioso a respeito da comparação dos efeitos das janelas de Nuttall versus Kaiser.

Esse é o efeito padrão se dois arquivos tiverem diferentes taxas de amostragem. Parâmetros padrões são, como indicado acima, tamanho da janela Kaiser 45, rolloff 0.80, beta 16 e interpolação linear.

OBS1.: -qs é somente ligeiramente inferior, porém mais preciso para 16-bits ou para precisão superior.

OBS2.: Em muitos casos de up-sampling, nenhuma interpolação é preciso, como os coeficientes exato do filtro podem ser computados em uma quantidade de espaço razoável. Para ser preciso, isso é feito quando:

input_rate < output_rate

&&

output_rate/gcd(input_rate,output_rate) <= 511


reverb gain-out reverbe-time delay [ delay ... ]

Adiciona reverberação a uma amostra de som. Cada atraso é dado em milisegundos e seu feedback é dependente do tempo de reverberação em milisegundos. Cada atraso deve estar na faixa da metade a um quarto do tempo de reverberação para se ter uma reverberação realística. O ganho de saída é o volume da saída.


reverse

Inverte a amostra de som completamente. Incluído descobrir subliminares Satânicos.


silence above_periods [ duration threshold[ d | % ]
[ below_periods duration threshold[ d | % ]]

Remove o silêncio do começo, meio, ou do fim de um arquivo de som. Silêncio é qualquer coisa abaixo de um limiar especificado.

O valor above_periods é usado para indicar se o som deve ser removido desde o começo do arquivo de áudio. Um valor zero indica que não deve ser removido nenhum silêncio desde o começo. Quando for especificado um valor diferente de zero para above_periods, ele remove o áudio até que ele encontre a não existência de nenhum silêncio. Normalmente, quando removendo o silêncio do áudio desde o começo do arquivo o parâmetro above_periods será 1, mas pode ser aumentado para valores mais altos para remover todos os dados até uma contagem específica de períodos sem silêncio. Por exemplo, se você tinha um arquivo de áudio com duas canções com cada uma contendo 2 segundos de silêncio antes da canção, você pode especificar um above_period de 2 para remover ambos os períodos de silêncio e a primeira canção.

Quando above_periods não for zero, você precisa também especificar uma duration e threshold. O parâmetro duration indica a quantia de tempo que nenhum silêncio precisa ser detectado antes de parar a remoção de dados. Aumentando a duração, rajadas de ruído podem ser tratadas como silêncio e removidos.

O parâmetro threshold é usado para indicar qual valor de amostra você deve tratar como silêncio. Para áudio digital, o valor 0 pode ser bom mas para áudio gravado a partir do analógico, você pode desejar aumentar esse valor para considerar o ruído de fundo.

Opcionalmente quando removendo o silêncio a partir do fim de um arquivo de som, você especifica uma quantia below_periods. Nesse caso, below_period significa remover todos os dados de áudio após o silêncio ser detectado. Normalmente, esse valor será 1, mas ele pode ser aumentado para cair depois dos períodos de silêncio que seja desejado. Por exemplo, se você tiver uma canção com 2 segundos de silêncio no meio e 2 segundos no final, você pode definir below_period com um valor de 2 para ir além do silêncio no meio do arquivo de áudio.

Para below_periods, o parâmetro duration especifica um período de silêncio que precisa existir antes que os dados não sejam copiados por ninguém mais. Especificando uma duração maior, silêncio que é desejado pode ser deixado no áudio. Por exemplo, se você tiver uma canção com um 1 segundo esperado de silêncio no meio e 2 segundos de silêncio no final, e duração de 2 segundos pode ser usado para ir além do meio do silêncio.

Infelizmente, você precisa saber o tamanho do silêncio no final do seu arquivo de áudio para remover o silêncio de forma confiável. Um atalho é usar o efeito silence em combinação com o efeito reverse. Invertendo o áudio primeiro, você pode usar o parâmetro above_periods para remover todo o áudio com confiabilidade a partir do qual parece à frente do arquivo. Depois inverte novamente o arquivo para voltar ao normal.

Para remover silêncio do meio de um arquivo, especificar um below_periods que seja negativo. Esse valor é então tratado como um valor positivo e é também usado para indicar o efeito que deve restartar processamento quando especificado pelo parâmetro above_periods, tornando-o ajustável pela remoção dos períodos de silêncio no meio do arquivo de som.

As contagens period estão em unidades de amostras. As contagens duration podem estar no formato de hh:mm:ss.frac, ou a contagem exata de amostras. Aos números threshold podem ser colocados sufixos com d, ou % para indicar o valor que está em decibéis ou uma percentagem de valor máximo do valor da amostra (0% especifica silêncio digital puro).


speed [ -c ] factor

Aumenta ou diminui a velocidade do som, como uma fita magnética com um controle de velocidade. Essa opção afeta tanto o pitch como tempo. Um fator 1.0 significa nenhuma alteração, e é o valor padrão. 2.0 dobra a velocidade, conseqüentemente a duração de tempo é cortada pela metade e pitch é um oitavo maior. O valor 0.5 divide por dois a velocidade consequentemente dobra a duração de tempo e o pitch é um oitavo inferior. Se o parâmetro -c opcional for usado então o fator é especificado em "cents".


stat [ -s n ] [-rms ] [ -v ] [ -d ]

Faz uma verificação estatística no arquivo de entrada, e imprime os resultados no arquivo de erro padrão. Os dados do Áudio são passados sem serem modificados do arquivo de entrada para o arquivo de saída a não ser que usado em conjunto com a opção -e.

O campo "Volume Adjustment:" nas estatísticas fornecem a você o argumento ao -v number que tornará a amostra tão ruidosa quanto possível sem clipagem.

A opção -v imprimirá na saída somente o valor do campo "Volume Adjustment:" e retorna. Isso pode ser útil em scripts para auto converter o volume.

A opção -s n é usada para escalar os dados de entrada por fator dado. O valor padrão de n é o valor máximo de uma variável long sinalizada (0x7fffffff). Efeitos internos sempre funcionam com dados PCM long sinalizado e assim o valor deve estar relacionado com esse fato.

A opção ‘-rms’ converterá todos os valores médios de saída para o formato root mean square.

Existe também um parâmetro opcional -d que imprimirá na saída um hex dump do arquivo de som no buffer interno que está em dados PCM 32 bits sinalizado. Isso é principalmente somente de uso em rastreamento de problemas down endian que se arrastam no SoX em versões para várias plataformas.


stretch factor [window fade shift fading]

Alongamento do tempo de arquivo por um dado fator. Altera a duração sem afetar o pitch. O parâmetro factor de alongamento: >1.0 para alongar a duração, <1.0 para encurtar a duração. O tamanho window está em ms. O padrão é 20ms. A opção fade, pode ser "lin". A taxa shift, em [0.0 1.0]. O padrão depende do fator de stretch. O valor 1.0 para encurtar, o valor 0.8 para alongar. A taxa fading, em [0.0 0.5]. A quantidade de um padrão de fade depende do factor e shift.


swap [ 1 2 | 1 2 3 4 ]

Troca canais em arquivos de som multi-canais. Opcionalmente, você pode especificar a ordem do canal que você gostaria a saída entrada. Isso padroniza a saída do canal 2 e depois 1 para estéreo e 2, 1, 4, 3 para quad-canais. Uma funcionalidade interessante é que você pode duplicar um dado canal sobrescrevendo um outro. Isso é feito repetindo um canal de saída na linha de comando. Por exemplo, swap 2 2 vai sobrescrever o canal 1 com os dados do canal 2; criando um arquivo estéreo com ambos os canais que contem os mesmos dados de áudio.


synth [ length ] type mix [ freq [ -freq2 ]
[ off ] [ ph ] [ p1 ] [ p2 ] [ p3 ]

O efeito synth vai gerar vários tipos de dados de áudio. Embora esse efeito seja usado para gerar dados de áudio, um arquivo de entrada precisa ser especificado. O tamanho do arquivo de áudio de entrada determina o tamanho do arquivo de áudio de saída.

tamanho em seg ou hh:mm:ss.frac, 0=inputlength, padrão=0
é seno, quadrado, triangular, dente de serra, trapezoidal, exponencial, ruído branco, ruído rosa, ruído marrom, padrão=seno
é create, mix, amod, padrão=create
freqüência no começo em Hz, não usado para ruído..
freqüência no final em Hz, não usado para ruído.. pode ser dado como %%n, onde 'n' é o número da metade de notas em respeito a A (440Hz)
Bias (DC-offset) de sinal em percentagem, padrão=0
phase shift 0..100 shift phase 0..2*Pi, não usado para ruído..
square: Ton/Toff, triangle+trapetz: rising slope time (0..100)
trapetz: ON time (0..100)
trapetz: falling slope position (0..100)


trim start [ length ]

A opção trim pode remover dados de áudio não desejados do começo e do final do arquivo de áudio. As amostras de áudio não são enviadas ao fluxo de saída até que a posição start seja alcançada. O parâmetro opcional length informa o número de amostras para a saída após a amostra start e é usada para remover a parte posterior dos dados de áudio. Usando um valor 0 para o parâmetro start permitirá remover a parte posterior somente. Ambas as opções podem ser especificadas usando tanto uma quantidade de tempo como uma contagem exata de amostras. O formato para especificar comprimentos em tempo é hh:mm:ss.frac. Um valor 1:30.5 para start não iniciará até que 1 minuto e trinta segundos e ½ nos dados de áudio. O formato para especificar quantidades de amostras é o número de amostras com a letra ‘s’ anexada a ela. Um valor de 8000s aguardará até que 8000 amostras sejam lidas antes de começar a processar os dados de áudio.


vibro speed [ depth ]

Adiciona o efeito sonoro famoso mundialmente Fender Vibro-Champ a uma amostra de som usando uma onda senóide igual ao volume knob. O parâmetro speed fornece o valor em Hertz da onda. Esse precisa ser inferior a 30. O parâmetro depth fornece a quantia do volume que é cortada dentro pela onda senóide, faixa 0.0 a 1.0 e padronizando em 0.5.


vol gain [ type [ limitergain ] ]

O efeito vol é muito parecido com a opção de linha de comando –v. Ele permite você ajustar o volume de um arquivo de entrada e permite você especificar o ajuste em relação à amplitude, a potência ou em dB. Se type não for especificado então ele padroniza para amplitude. Quando type for amplitude então uma alteração linear da amplitude é executada baseada no ganho. Consequentemente, um valor 1.0 manterá o volume igual, um valor entre 0.0 a <1.0 fará o volume diminuir e valores > 1.0 fará o volume aumentar. Tomar cuidado com a clipagem dos dados de áudio quando o ganho for maior que 1.0. Um valor negativo executa o mesmo ajuste porquanto alterando também a fase. Quando type for power então um valor de 1.0 também significa nenhuma alteração no volume. Quando type for dB a amplitude é alterada logaritmicamente. O valor 0.0 é constante enquanto +6 dobra a amplitude. Um valor opcional limitergain pode ser especificado e deve ser um valor bem menor que 1.0 (ou seja, 0.05 ou 0.02) e é usado somente nos picos para evitar clipagem. A não especificação desse parâmetro fará que nenhum limitador seja usado. No modo verbose, esse efeito exibirá a percentagem dos dados de áudio que precisaram ser limitados.



Bugs

A sintaxe é horrível. Mas, isso são as coisas acontecem quando se tenta manipular todas as coisas a partir da linha de comando.

Favor reporte quaisquer bugs encontrado nessa versão do SoX ao Chris Bagwell (cbagwell@users.sourceforge.net).



Arquivos



Veja Também
play(1), rec(1), soxexam(1)



Observações


A versão do SoX que acompanha esse página manual é suportada pelo Chris Bagwell (cbagwell@users.sourceforge.net). Favor consulte quaisquer questões relativas ao SoX nesse endereço. Você pode obter a versão mais recente no website: http://sox.sourceforge.net/.



Autor

Chris Bagwell (cbagwell@users.sourceforge.net).



Updates by Anonymous



REFERENCIADO POR

bchunk(1), cdrdao(1), graveman(1), lav2wav(1), mpg123(1), twolame(1), vboxplay(1)















... Voltar                  ... Voltar ao Início















domingo, 5 de outubro de 2008

Skype Busca Parcerias para Entrar no Mercado Corporativo




Skype Alavanca Parcerias para Penetrar no Mercado Corporativo

Fonte Original da Informação:
Michael Morisy, Repórter de Notícias
02 de Out de 2008 | SearchUnifiedCommunications.com
http://go.techtarget.com/r/4656569/5714441


Skype, a conhecida companhia de Voz e Vídeo sobre IP, está fazendo a sua incursão mais incisiva na direção do mercado corporativo, e não somente como uma ferramenta de comunicações unificadas (UC) fácil de usar, mas também como uma forma barata para estabelecer ligações internacionais.

"É apenas uma grande ferramenta bastante versátil", disse Zeus Kerravala, o vice-presidente sênior da empresa Yankee Group Research em Boston. "A qualidade do som é excelente; ele é fantástico para pessoas que viajam pelo mundo. Eu penso que é uma ferramenta que todo funcionário corporativo precisa ter".

Há vários anos que o Skype vem se infiltrando sorrateiramente nas empresas, normalmente instalado por usuários finais que conhece o seu uso, ao mesmo tempo em que os departamentos de TI desencorajavam passivamente o seu uso ou quando não faziam vistas grossas à ele.

Com a ferramenta, o medo das empresas que residia no fato de uma possivel abertura de brechas na segurança se o deixasse sem gerenciamento. Porque os empregados poderiam usá-lo para furar restrições da política de segurança corporativa no modo como os arquivos seriam compartilhados e protegidos.

Mas agora o Skype é oferecido com um nível de gerenciamento feito internamente que antes não estava disponível, permitindo que mais e mais companhias o usassem maciçamente.

A Digium, sediada em Huntsville, Alabama, criador e mantenedor do conhecido IPABX open source Asterisk, recentemente anunciou o “Skype For Asterisk”, um novo módulo beta que conecta o acesso Skype diretamente no seu IPABX.

As empresas podem se beneficiar da realização de ligações internacionais, por exemplo, através dos servidores Skype e pagam uma fração do que elas pagariam normalmente por minuto. No entanto, as ligações ainda passariam pelo processamento de chamada, voicemail e funcionalidades de policiamento do IPABX Asterisk.

Como a rede de telefonia pública comutada (RTPC) tradicional ainda permanece operando para a maioria das ligações residenciais com esse tipo de solução, o risco de tentar o Skype é minimizado. Porque ainda que o Skype sofra algum tipo de interrupção de serviço, os usuários ainda podem fazer ligações internacionais sobre a rede legada.

“Sua história básica é que nós podemos fazer isso porque, se pior realmente vir acontecer, nós podemos discar direto”, disse Tom Nolle, presidente da consultoria de telecomunicações CIMI Corp. em Vorhees, New Jersey. “Não existe nenhum custo extraordinário para manter um backup se aqueles experimentarem não funcionamento”.

Os benefícios também retornam de duas formas distintas: uma é simplesmente a economia de custo oferecida pelo Skype. Ligações são grátis entre usuários, e relativamente barata tanto para ligações internacionais quanto domésticas.

“Eu já vi o Skype ser usado principalmente como uma ferramenta UC barata”, disse Kerravala. “Ele deve ser uma das várias ferramentas de comunicações unificadas que nós devemos ter”. O software inclui Chat, transferência de arquivos, vídeo chat e canal de voz para dois usuários Skype bem como para linhas telefônicas convencionais.

Mas mesmo sem a aplicação Skype instalada nos desktop´s, fornecedores como a Digium e a Sunnyvale, e a VoSKY sediada na Califórnia estão permitindo as companhias irem de encontro às baixas tarifas, para fazer roteamento de todas ligações internacionais pela rede do Skype em detrimento da rede pública convencional. O roteamento é feito diretamente do IPABX, significando que os velhos telefones de uma companhia e outra infra-estrutura ainda funcionem perfeitamente.

As companhias que estão tentando o entroncamento com o Skype ou usando a aplicação Skype deve educar os seus empregados a respeito de como usá-lo adequadamente.

“Eu acredito que a política de fechá-lo e de não usá-lo é incorreta, certamente”, disse Kerravala. “Mas você precisa fazer o treinamento para conseguir que as pessoas compreendam os riscos”.

Segurança tem sido uma questão constante para o Skype, ao mesmo tempo em que Kerravala disse que esforços têm sido feitos, mas ainda existem preocupações. Por exemplo, o governo da Bavária foi acusado recentemente de grampear ligações Skype através de uma empresa terceirizada.

“Você precisa entender o que você está adquirindo”, disse Kerravala. “É uma ferramenta pública; não significa que o Skype vai substituir o seu sistema de telefonia corporativo”. Comunicações mais sensíveis provavelmente devem passar por meios mais tradicionais ou mais seguros pelo menos.

Qualidade da ligação é também uma preocupação. Há tempos que o Skype vem trabalhando fortemente para melhorar a qualidade de sua chamada, a natura de par-a-par da rede significa ocorrência de ligações ruim ocasionalmente.

Nolle disse que ligações de alto valor, como uma demonstração de venda ou suporte para um cliente importante, não valem a pena fazer economia, não importa quanto barata consiga ser as ligações. Ligações de rotinas internas, contudo, serão perfeitamente adequadas as economias fornecidas pelo Skype.

Finalmente, o gerenciamento do Skype é criticamente importante a respeito de como tão bem ele é implementado. Muitas das ofertas mais recentes do Skype empresas, particularmente aquelas ligações "tronco" a distância sobre a rede do Skype, exclui muitas das características mais inovadoras, embora cause receios, como multimídia e transferência de arquivo.

Tendo uma idéia clara sobre qual política sua corporação permite ou não ajudará assegurar que você está fazendo a aquisição correta.



Notícias relacionadas:
Colaboração Digium e Skype pra Levar o Skype aos Sistemas de Telefonia Empresariais
British Telecom Adota o Asterisk







sexta-feira, 26 de setembro de 2008

Digium e Skype Se Unem Pra Levar o Skype aos Sistemas Clientes Empresarial




Colaboração Digium e Skype pra Levar o Skype aos Sistemas de Telefonia Empresariais


Programa beta Skype For Asterisk inicia hoje, adicionando funcionalidades Skype a soluções baseadas no Asterisk



Fonte da informação o "Press Releases" da Digium em:
http://www.digium.com/en/mediacenter/viewpress/Digium-and-Skype-Collaborate-to-Bring-Skype-to-Business-Phone-Systems



GLENDALE, Arizona (AstriCon 2008) — Setembro 25, 2008— A Digium®, e Skype™, a companhia líder das comunicações pela Internet Global, anunciaram hoje o lançamento da versão Beta do Skype para o Asterisk, que permitirá a integração das funcionalidades do Skype no Asterisk da Digium e que capacitará aos clientes fazer, receber e transferir ligações Skype a partir dos sistemas de telefonia Asterisk.


“A história individual de cada um de nós, Skype e Asterisk, foi fazer ruptura completamente com os métodos tradicionais de comunicações através de soluções inovadoras e com custo benefício”, disse Stefan Öberg, vice-presidente e gestor geral da Skype Telecom e Skype para Empresas. “Nós estamos excitados em trabalhar junto com a Digium no sentido de oferecer as pequenas e médias empresas uma solução de comunicações de fato muito poderosa para atingir o mercado empresarial de âmbito mundial”.


Especificamente, a versão beta do “Skype For Asterisk” é um módulo de driver de canal acrescentável para integrar chamadas Skype pela Internet aos produtos de telefonia baseados no Asterisk. O “Skype For Asterisk” também complementa os serviços existentes dos usuários de pequenas e médias empresas fornecendo baixa tarifa para ligações fixas e móveis ao redor do mundo.


“Trabalhando junto com a Skype, nosso objetivo é ajudar a impulsionar a produtividade das empresas e ganhar o prêmio de software de telefonia rico de funcionalidades, e dessa forma economizando uma quantidade substancial de dinheiro”, disse Danny Windham, CEO da Digium, a empresa criadora e patrocinadora do Asterisk. “O software Beta ‘Skype For Asterisk’ é o primeiro passo na direção de poder adicionar as funcionalidades do Skype aos sistemas de telefonia baseados no Asterisk e possibilitá-los atingir mais de 338 milhões de usuários Skype”.


A versão Beta do “Skype For Asterisk” capacitará os usuários empresariais a:

• Fazer, receber e transferir ligações Skype a partir dos sistemas de telefonia Asterisk, usando o hardware existente.;

• Complementar os serviços existentes com baixas tarifas Skype globais (tão baixo quanto 2.1US¢ por minuto para mais de 35 paises de variadas parte do mundo);

• Economizar dinheiro com soluções de ligações entrantes tal como o liberar “click-to-call’ de um website, bem como ligações entrantes da rede pública de telefonia tradicional (RTPC) através de números Skype que ficam online;

• Gerenciar ligações Skype usando aplicações Asterisk tais como: roteamento de chamada, estabelecimento de conferência, menus telefônicos e voicemail.


Depois de passado o período Beta quando o produto já estiver liberado, o ‘Skype For Asterisk’ será vendido e distribuído pela Digium e pela sua rede mundial de revendedores.


Ao Vivo na AstriCon
Stefan Öberg fará a primeira demonstração pública do ‘Skype For Asterisk’ durante sua palestra agendada pra hoje na AstriCon, a conferência anual de usuários e desenvolvedores do Asterisk. As atendentes da AstriCon também serão convidadas a experimentarem e fazer uma demonstração do ‘Skype For Asterisk’ no stand Skype no piso da exposição.


Programa Beta “Skype For Asterisk”
O programa Beta do ‘Skype For Asterisk’ começa hoje; usuários Asterisk, administradores de sistemas e desenvolvedores estão convidados a visitar o site: http://www.astricon.net/skype. A versão beta inicial está limitada a um número selecionado de usuários, desenvolvedores e integradores.










quarta-feira, 24 de setembro de 2008

Como Conectar Dois Servidores Asterisk




Conectando Dois Servidores Asterisk



Visão Geral

Claro que você pode também usar o SIP ou H.323 (mas não o MGCP) para interligar dois servidores Asterisk, contudo o IAX é a abordagem mais comum de interligação. A fim de distribuir um dialplan, você pode:

• Inteligentemente projetar o dialplan em cada servidor de sorte que isso se torne instantaneamente transparente quando uma extensão em outro servidor é discada, por exemplo, use 3XXX para o servidor A, 4XXX para o servidor B e 5XXX para as extensões no servidor C;

• Use a declaração “switch” para fazer o servidor A olhar no servidor B extensões desconhecidas localmente (ambas as caixas precisam estar permanentemente online, se este não for o caso você vai experimentar atraso sensível quando discando!);

• use DUNDi: Distributed Universal Number Directory (DUNDi);

• Use EnumLookup (E.164).



Métodos SIP

Diferentemente do IAX não existe uma distinção clara entre type=peer e type=user quando isso vem do sip.conf. Você pode partir com o parâmetro type=friend em ambos os lados, e se você conseguir que funcione você vai desejar provavelmente dividir as entradas dentro do sip.conf em um peer e um user. Também preste atenção nos parâmetros “insecure=very” e talvez “autocreatepeer=yes” do sip.conf.

• Servidor A com o endereço IP estático, o servidor B com endereço IP dinâmico: Registre o servidor B com o servidor A no sip.conf;

• Ambos os servidores com o endereço IP estático: Não precisa registrar nada;

• Ambos servidores com o endereço IP dinâmico: Isso dá uma boa dor de cabeça, você necessitará recorrer a um serviço como do dyndns.org para ser capaz de registrar os servidores entre si; em qualquer caso, isso não é uma boa configuração porque durante a mudança do endereço IP, a conectividade será perdida até a atualização tenha se propagado através do dyndns;

• Ambos os servidores atrás de seus NAT próprios: Não use o SIP, em vez disso volte-se para IAX2.



Detalhes da Configuração do IAX

Uma conexão IAX entre dois servidores Asterisk é configurado nos passos seguintes:

• Configure os servidores Asterisk em ambas as pontas no arquivo iax.conf, um como peer e o outro como user;

• Defina o dialplan do user no arquivo extensions.conf de forma que chamadas podem ser feitas do user para o peer;

• Opcionalmente, registre o peer com o user (para quando o endereço IP do peer for dinâmico e assim desconhecido pelo user);

• Repita os passos anteriores na ordem inversa (inverta peer por user) se você quer ser capaz de fazer chamadas em ambas as direções.


Declaração do user no IAX2

Um peer recebe chamadas. A parte seguinte seria necessário no arquivo iax.conf da máquina peer para verificar (autenticar) a identidade do user antes de dá permissão a chamadas deste user.

[username]
type=user
auth=md5
secret=secretword
context=iax2users


O parâmetro “context" é importante porque ele define o contexto local no qual colocar quaisquer chamadas entrantes deste user (veja o extensions.conf).

Esta configuração permite o user remoto registra-se ao seu sistema a partir de qualquer host. Se você quer restringir algum endereço IP ou hostname do user remoto de se conectar, acrescente os parâmetros permit ou deny quando descrevendo no arquivo iax.conf do peer.



Declaração do peer IAX2

Um user faz chamadas. O pedaço seguinte seria necessário no arquivo iax.conf da máquina user para se identificar (autenticar) ao peer antes que o peer vá fazer a chamada.


[peername]
type=peer
host=hostname.domain.tld (or "dynamic" which would then require a "register" command by the peer.)
auth=md5
secret=secretword ; redundant when already embedded in Dial string
username=username-at-the-peer ; redundant when already embedded in Dial string


Favor observe que:
• Um type=user é para autenticar uma chamada entrante;
• Um type=peer é para quem você envia uma chamada;
• type=friend, claro, é para ambos.


Usando type=friend torna as coisas mais fáceis, mas isso é tratado como um atalho. Se você acrescentar ambos os parâmetros type=friend e host=hostname.domain.ext você limita os hosts a partir do seu peer que podem fazer chamadas, o que pode ser o que você não deseja.

Para instruções sobre o uso do parâmetro auth=rsa, veja a página do wiki Asterisk IAX RSA authentication.

Agora que nós temos completado os passos 1 e 2, a única coisa que resta é planejar o dialplan. Leia os exemplos abaixo de como fazer isso.



Conectando os Planos de Discagem


Exemplo 1
extensions.conf:
exten => _7XXX,1,Dial(IAX2/myserver:passwordA@IAXserverA/${EXTEN:1},30,r)
exten => _7XXX,2,Dial(SIP/myserver:passwordA@SIPserverA/${EXTEN:1},30,r)
exten => _7XXX,3,Congestion

exten => _8XXX,1,Dial(IAX2/myserver:passwordB@IAXserverB/${EXTEN:1},30,r)
exten => _8XXX,2,Dial(SIP/myserver:passwordB@SIPserverB/${EXTEN:1},30,r)
exten => _8XXX,3,Congestion


Claro que nós necessitaremos fazer batimento com entradas como [IAXserverA] etc. no arquivo iax.conf e no arquivo sip.conf na ordem acima para que funcione como esperado. O exemplo usa o SIP como um fallback no caso quando nós temos problemas com a sua conexão IAX.

Observe que nesta abordagem o username e a password serão mostrados nos registros do CDR (você pode querer usar o segundo exemplo ou verificar o uso de chaves em vez de uma combinação (username/ password)!



Exemplo 2
Este exemplo não mostra os parâmetros username e secret no CDR.
Note que se for a versão 1.0.9 este atalho ainda não é parte do Braço Estável do Asterisk, portanto ainda requer o user e a password como parte da string de discagem no arquivo extensions.conf. Por exemplo,


exten => _7XXX,1,Dial(IAX2/username:pass@serverB/${EXTEN:1},30,r)


(serverA)
iax.conf
[general]
register => :@

[serverB]
type=friend
user=
secret=
host=

extensions.conf
exten => _7XXX,1,Dial(IAX2/serverB/${EXTEN:1},30,r)
exten => _7XXX,2,Congestion


(serverB)
iax.conf
[serverA]
type=friend
user=
secret=
host= |

extensions.conf
exten => _8XXX,1,Dial(IAX2/serverA/${EXTEN:1},30,r)
exten => _8XXX,2,Congestion


Em alguns casos o serverA e o serverB, serão os usernames dos servidores.



Exemplo 3
Com o objeto Switch no arquivo extensions.conf você pode conectar dois servidores Asterisk e o plano de discagem de outros servidores. Neste caso, nosso próprio “servidor C” se conectará tanto ao "servidor A" quanto ao "servidor B":


[default]
exten => _801XXX,1,Goto,srvA|${EXTEN}|1
exten => _802XXX,1,Goto,srvB|${EXTEN}|1

[srvA]
exten => _801XXX,1,StripMSD,3
exten => _XXX,2,Goto,1
switch => IAX/serverA

[srvB]
exten => _802XXX,1,StripMSD,3
exten => _XXX,2,Goto,1
switch => IAX/serverB



Observações: Você pode não estabelecer links circulares fazendo o chaveamento do serverA para o serverB e do serverB para o serverA! Também verifique no (novo) parâmetro do iax.conf, "autokill=" para evitar um travamento mais logo quando o servidor remoto estiver fora do ar ou desconectado.




Exemplo 4
No arquivo extensions.conf: (no master)


[outbound]
switch => IAX2/master:secret@iax-gw1.company.net/outbound



No arquivo iax.conf (no master):

[slave]
type=user
auth=plaintext
context=outbound
context=outbound2 ; (can have multiple if you want)
secret=secret
host=dynamic
callerid="slave"
trunk=yes
notransfer=yes

[slave]
type=peer
auth=plaintext
context=outbound-nuphone
secret=secret
host=dynamic
trunk=yes
notransfer=yes




No arquivo extensions.conf (escravo):


[assigned-dids]
; uncomment a dial mechanism, first one goes to specific extension
; other one goes to dial parameter s.

;exten => 7046446999,1,Dial,IAX2/master@slave/${EXTEN}
;exten => 7046446999,1,Dial,IAX2/master@slave




No arquivo iax.conf (escravo):

register => slave:secret@iax-gw1.company.net

[master]
type=peer
host=iax-gw1.company.net
secret=secret
context=outbound
trunk=yes
canreinvite=no


[master]
type=user
secret=secret
context=acontext
trunk=yes
canreinvite=no




Método do Comando Switch

A instrução SWITCH permite a um servidor compartilhar/distribuir o seu dialplan com outro servidor. Use com cuidado instruções switch Recíprocas. Não é permitido (por exemplo: como em, A -> B e B -> A), no processo de comutação os servidores necessitam estar online ou, do contrário, a discagem pode sofrer severamente com atraso.

Switch:
Uma instrução switch declarada no plano de discagem permite a um servidor Asterisk buscar por extensões fora do seu dialplan local. O único uso implementado até agora é o comando switch sobre o protocolo IAX, embora o uso dessa funcionalidade esteja planejada para os outros protocolos. O switch IAX usa o protocolo IAX para buscar por extensões em outro dialplan remoto e conecta-se a elas.

Se um chamador disca uma extensão que não consta no dialplan local, e caso uma declaração switch estiver presente no contexto atual dos usuários chamadores, a extensão será feita à verificação de existência da mesma contra os servidores remotos ou servidores especificados. A declaração switch inclui como argumento um contexto, que será o contexto onde será verificado ou buscado no dialplan remoto.


Exemplos
Buscando uma extensão usando o protocolo IAX no servidor remota:

switch => IAX/username:password@server/context


Alternativamente, se a chave RSA estiver ativada (veja iax.conf) você pode substituir a password por uma keyname, a qual seria a chave enviada ao servidor remoto.


switch => IAX/username:[password]@server/context


O comando witch basicamente consulta os seus pares para ver a possibilidade de poder completar uma chamada a partir do contexto que recepcionou o pedido de ligação no qual o comando switch está declarado. No contexto que você compartilha a instrução switch, você coloca todas as combinações de testes possíveis, e/ou uma aplicação AGI que execute as combinações de testes possíveis.

O uso normal da instrução switch é rotear a chamada através da máquina a qual você requisitou para comutar seu pedido de chamada. O truque aqui é que o IAX é realmente bom para ser capaz de fazer o handoff da chamada e sair do caminho do tráfego de media. Portanto, tão logo o switch tenha feito à discagem, ele será capaz de sair do caminho se assim você desejar.

A intenção por trás do comando switch é que todo servidor saiba o que ele pode alcançar localmente a extensão discada. E então fazer a 'comutação' para os servidores remotos se o número chamado não pôde ser achado localmente.

Se você deseja manter este dados em um DB e consultá-los a partir de um script AGI, você pode testar todas combinações, e então decidir para onde fazer a requisição. E mais, você pode usar qualquer uma das suas ferramentas favorita de replicação de DB que você desejar.


[iaxprovider]
switch => IAX2/user:[key]@myserver/mycontext




O Comando register

Quando o endereço IP do peer for desconhecido, um user não tem como colocar uma chamada (por exemplo, quando um office/user chama um teleworker/peer em casa, onde o teleworker tem somente um endereço IP dinâmico ou estiver atrás de NAT). Para compensar isso, o teleworker/peer ativamente se registra com o office/user fornecedendo sua identidade e seu endereço IP para localização.

No peer, na seção [general] do arquivo iax.conf, deve-se acrescentar uma linha para registro:


register => user:password@hostname.domain.ext


Atualiza continuamente o user de forma que ele sempre saberá como alcançar o peer mesmo se o endereço IP do peer mude.

A declaração "register" somente funciona se você deseja se vincular a um servidor com um endereço IP dinâmico a um servidor com um endereço IP estático (publico) IP, ou seja, no lado do user você precisa acrescentar "host=dynamic" no arquivo iax.conf para aquele peer. Se ambos os servidores são conhecidos, os endereços IP’s estáticos então não existe necessidade para uma declaração register porque você usaria host=hostname em ambos as pontas.




Referência: http://www.voip-info.org/wiki/view/Asterisk+-+dual+servers, acessado em janeiro de 2007.










Creative Commons License
Admirável Mundo Novo: Tudo Sobre Asterisk, OpenSER, Linux e Tecnologias de Voz sobre IP
by Cléviton Mendes de Araújo is licensed under a Creative Commons Atribuição 2.5 Brasil License.