Eu configurei um bom utilitário para registrar e gravar o tráfego de rádio do scanner e depois remover o silêncio usando o SOX. Para gravar continuamente, continuo chamando SOX com detecção de silêncio:
function dosox() {
/usr/bin/sox -t alsa -D "plughw:2,0" $DATE.wav silence 1 0.1 2% 1 1.0 2%
dosox
}
dosox
Isso funciona muito bem para dispositivos de som ALSA. No entanto, agora gostaria de obter o fluxo de um URL. Eu uso a fonte de URL como:
function dosox() {
/usr/bin/sox -t mp3 $CHAN_URL $DATE.wav silence 1 1.0 2% 1 2.0 2%
dosox
}
dosox
Com o fluxo, o SOX parece gerar muitos arquivos de saída de áudio rapidamente. Muitos desses arquivos estão quase duplicados. (Eles contêm a mesma transmissão). Eu acho que o SOX está rodando o cache do stream e considerando isso no final do arquivo, então terminando. Então quando o SOX é chamado na próxima vez que ele pega o mesmo fluxo que aparentemente pode ser de áudio que já foi transmitido. / p>
Assumindo que isso é o que está acontecendo, estou procurando uma maneira fácil de sair do SOX no silêncio real no fluxo, mas espere um pouco quando achar que chegou ao fim do fluxo para obter mais áudio. Coisas que eu tentei:
-Usou o mplayer para transmitir para um fifo e ler isso com SOX.
-Tentei ajustar as configurações de silêncio do efeito de silêncio SOX.