Infra - Linux

Linux: Gerando em tempo real efeito de voz robotizada

O software ecamegapedal permite a execução de feitos em tempo real do audio oriundo da entrada de sua placa de som. Neste tutorial apresentarei conceitos básicos, porém o suficiente para exploração dos recursos deste pacote.

por Alessandro de Oliveira Faria



Já imaginou falar próximo ao microfone e modificar em tempo real a sua voz? E com tal recurso torná-la semelhante a de Darth Vader em Guerra nas Estrelas!

Introdução:

O software ecamegapedal permite a execução de feitos em tempo real do audio oriundo da entrada de sua placa de som. Neste tutorial apresentarei conceitos básicos, porém o suficiente para exploração dos recursos deste pacote.

Para efeito de exemplo do potencial deste software, segue abaixo 2 links no formate wave. O primeiro contém a frase “Viva o Linux” gerada com um simples microfone no programa record em modo consola. O segundo é o resultado do arquivo submetido aos efeitos do software ecamegapedal.

Antes: http://www.linhadecodigo.com.br/artigos/downloads/alessandro_faria/record000.wav

Depois: http://www.linhadecodigo.com.br/artigos/downloads/alessandro_faria/vivaolinux.wav

Download e instalação:

Apontarei o download para a versão presente na distribuição Suse 9.1 Professional. Mas ressalto que existe versões mais recentes disponível para download.

Para efetuar o download e instalação, basta seguir o exemplo dos comandos abaixo:

cabelo@linux:~/Temp> wget
http://mirrors.xtria.com/suse/i386/9.1/suse/i586/ecamegapedal-0.4.3-180.i586.rpm

cabelo@linux:~/Temp> rpm -ivh ecamegapedal-0.4.3-180.i586.rpm

ATENÇÃO: Este tutorial parte da premissa que sua placa devida mente instalada e configurada em /dev/dsp!

Gerando áudio em disco:

Primeiramente vamos criar um arquivo wave em disco e aplicar os efeitos de Phaser (efeito para robotizar o som) e Amplify (ajuste de volume).

Gravaremos o áudio gerado na entrada de microfone da sua placa de som. Particularmente usei o programa record no modo console. Vale a pena mencionar que não será gerado nenhum impacto neste tutorial se outro software de sua preferência for utilizado para criação do arquivo. Wav.

Para entrar em modo de captura do áudio, utilize o comando abaixo:

cabelo@linux:~/Temp> record

A tela adquirida será semelhante a ilustração abaixo:

Não entrarei em detalhes de funcionamento deste utilitário. Basta pressionar a barra de espaço para iniciar e parar a gravação do audio em disco (arquivo wave). Finalizando, basta pressionar a tecla Q para voltar ao shell.

Se a operação foi completada com sucesso, o arquivo record000.wav estará presente o diretório corrente. Para reproduzir o arquivo, execute o comando abaixo:

cabelo@linux:~/Temp> playsound record000.wav
Now playing [record000.wav]...
cabelo@linux:~/Temp>

Aplicando efeitos:

Agora vamos incorporar os efeitos sonoros no arquivo .wav. Em primeiro lugar, devemos executar o ecamegapedal informando o dipositivo/arquivo de entrada e saída. Para tal ação, basta executar o comando abaixo:

cabelo@linux:~/Temp> ecamegapedal record000.wav teste-1.wav

JACK compiled with POSIX SHM support

A tela será semelhante a ilustração seguinte:

Na aba Chain operators, selecione o item Phaser e ajuste os parametros conforme a imagem acima ou a tabela abaixo:

delay-time-msec : 6
variance-time-samples : 0
feedback-% : 95
ifo-freq : 0

Reparem que o arquivo de entrada deve estar apontando para record000.wav e o arquivo de saída deverá ser teste-1.wav.

Para aplicar o efeito e gerar um novo arquivo, pressione o botão begin, start, stop e quit confome a ilustração abaixo:

Pressionado o botão quit voltaremo ao shell, assim podendo reproduzir o novo arquivo gerado. Para isto, siga o exemplo abaixo:

cabelo@linux:~/Temp> playsound teste-1.wav
Now playing [teste-1.wav]...

No meu caso o efeito foi gerado com sucesso, porém o volume estava muito baixo comparado ao arquivo original. Para normalizar o volume, segui os procedimento abaixo:

cabelo@linux:~/Temp> ecamegapedal teste-1.wav vivaolinux.wav

Agora selecione na aba Chain operators o item Amplify e com os valores conforme a ilustração abaixo:

Repita as seqüências de pressionamento dos botões begin, start, stop e quit para gerar um novo arquivo de wave com o volume amplificado.

Após as operações acima, vamos reproduzir o resultado:

cabelo@linux:~/Temp> playsound vivaolinux.wav
Now playing [vivaolinux.wav]...
cabelo@linux:~/Temp>

Aplicando efeitos em tempo real:

Todos os ítens da aba Chain operators podem ser executados em tempo real interagindo com o audio de entrada da sua placa de som (em nosso caso o microfone). Para ral façanha, basta executar o comando abaixo:

cabelo@linux:~/Temp> ecamegapedal /dev/dsp /dev/dsp

Neste momento bastar ajustar o efeito e configurar os respectivos parâmetros. Pois como o dispositivo de entrada e saída é o placa de som ( /dev/dsp ), todo áudio de entrada será processado com o efeito selecionado e reproduzido na saída da placa se com especificada.

Bom divertimento.

Alessandro de Oliveira Faria

Alessandro de Oliveira Faria - Sócio-proprietário da empresa NETi TECNOLOGIA fundada em Junho de 1996 (http://www.netitec.com.br), empresa especializada em desenvolvimento de software e soluções biométricas, Consultor Biométrico na tecnologia de reconhecimento facial, atuando na área de tecnologia desde 1986 assim propiciando ao mercado soluções em software nas mais diversas linguagens e plataforma, levando o Linux a sério desde 1998 com desenvolvimento de soluções open-source, membro colaborador da comunidade Viva O Linux, mantenedor da biblioteca open-source de vídeo captura entre outros projetos.