Alimentando o áudio do microfone ao vivo em python

1

Bem, então eu estava lendo sobre este tutorial sobre framboesa pi que faz você reproduzir arquivos de áudio de pi framboesa e transmiti-los em um sinal de FM e algo me deixou curioso. Você pode transmitir arquivos .wav, o que é ok, mas há um comando que faz o stream de áudio ao vivo do microfone.

Estou curioso sobre como isso funciona. Este é o comando:

arecord -d0 -c2 -f S16_LE -r 22050 -twav -D copy | sudo ./pifm -

Bem, estou curioso sobre como isso funciona. Eu pesquisei e entendi que o arecord é um programa que grava áudio do seu microfone. Tem uma opção onde você pode escrever o nome do arquivo e ele salvará o arquivo gravado para você. Mas neste exemplo, algo está acontecendo: parece que o áudio está indo diretamente para python, ao vivo. Quero dizer, como isso é possível? O arecord do programa está alimentando python com dados de som?

Eu só vi esta sintaxe neste comando, por exemplo:

cat file.txt | grep 'test'

que é uma maneira de ler o arquivo 'file.txt', mas apenas exibe as linhas com 'test' escritas nele. Então, o que, em geral, o símbolo | significa no linux? O que está acontecendo quando ele faz | sudo ./pifm depois de algum programa?

Eu realmente gostei dessa possibilidade no linux, é algo que eu nunca vi antes. Estou certo sobre minhas suposições? Além disso, como o Python recebe esses dados? Existe uma biblioteca para isso?

    
por Faby 24.04.2015 / 01:01

1 resposta

2

O símbolo de pipe | conecta a saída do processo à sua esquerda à entrada do processo à sua direita. É uma parte fundamental do ecossistema Unix / Linux, pois permite que você construa operações complexas usando ferramentas relativamente simples (e especializadas).

No caso de lhe dar um ponto de referência, isso é semelhante para os sistemas Windows, seja Powershell ou DOS.

    
por 24.04.2015 / 01:25