como gravar a entrada de microfone e canalizar a saída para outro programa

4

Olá a todos Estou tentando seguir um tutorial sobre como gerar bits verdadeiramente aleatórios

Como gerar bits verdadeiramente aleatórios

Este é o comando do tutorial, mas não funciona

rec -c 1 -d /dev/dsp -r 8000 -t wav -s w  - | ./noise-filter >bits

Eu sei que posso gravar minha entrada de microfone usando

rec -c 1 no.wav

este é o comando que eu tentei usar

rec -c 1 -r 8000 -t wav -s noise.wav | ./noise-filter >bits

mas eu recebo

root@xxc:~/cc# rec -c 1 -r 8000 -t wav -s noise.wav  - | ./noise-filter >bits
rec WARN formats: can't set sample rate 8000; using 48000
rec FAIL sox: Input files must have the same sample-rate

Eu cumpri o filtro de ruído

filtro de ruído

Acho que o tutorial está usando uma versão mais antiga do SOX e do REC que estou usando

sox: SoX v14.3.2 on Ubuntu 12.04 server

Alguém por favor pode me ajudar?

    
por acrs 22.10.2012 / 16:39

3 respostas

3

Esta linha de comando tem muitas saídas listadas:

rec -c 1 -r 8000 -t wav -s noise.wav - | ./noise-filter >bits
                           ^file     ^standard output

Para um pipeline de comando, a única saída deve ser - no final. O comando rec interpreta o parâmetro noise.wav como uma entrada adicional, que falhará ou produzirá uma saída falsa. Tente remover o nome do arquivo extra (e outras opções desnecessárias / incompatíveis):

rec -c 1 -t wav - | ./noise-filter > bits
    
por 17.04.2013 / 00:14
2

de acordo com o tutorial que você mencionou (também estou acompanhando esse tutorial!) E a última versão do manual do SoX (em 9 de novembro de 2014), o comando completo e corrigido que funcionou para mim foi:

rec -c 1 -r 8000 -t raw -e signed-integer -2 - | ./noise-filter > bits

ent retornou esses valores para um arquivo de 49.152 bytes:

Entropy = 7.996356 bits per byte.

Optimum compression would reduce the size
of this 49152 byte file by 0 percent.

Chi square distribution for 49152 samples is 247.53, and randomly
would exceed this value 50.00 percent of the times.

Arithmetic mean value of data bytes is 127.5771 (127.5 = random).
Monte Carlo value for Pi is 3.147949219 (error 0.20 percent).
Serial correlation coefficient is -0.002336 (totally uncorrelated = 0.0).

Esta é uma boa qualidade de dados aleatórios!

    
por 09.11.2014 / 07:51
0

Parece que o seu noise.wav não está em uma taxa de amostragem que o sox pode registrar, e o sox requer que os dois arquivos tenham a mesma taxa de amostragem. Você provavelmente terá que regenerar noise.wav a uma taxa de amostragem maior.

    
por 15.04.2013 / 20:26