как записать микрофонный ввод и передать вывод в другую программу

5149
acrs

Привет всем, я пытаюсь следовать учебнику по генерации действительно случайных битов

Как генерировать действительно случайные биты

Это команда из учебника, но она не работает

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

Я знаю, что могу записать свой микрофонный вход, используя

rec -c 1 no.wav 

это команда, которую я пытался использовать

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

но я получаю

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 

Я выполнил шумовой фильтр

фильтр шума

Я думаю, что учебник использует старую версию SOX и REC, который я использую

sox: SoX v14.3.2 on Ubuntu 12.04 server 

Может кто-нибудь, пожалуйста, помогите мне?

4

3 ответа на вопрос

3
Bradd Szonye

This command line has too many outputs listed:

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

For a command pipeline, the only output should be the - at the end. The rec command interprets the noise.wav parameter as an additional input, which will fail or produce bogus output. Try removing the extra filename (and other unnecessary/incompatible options):

rec -c 1 -t wav - | ./noise-filter > bits 
2
CousinIT

per the tutorial you referenced (I'm following that one, too!) AND the latest-version SoX manpage (as of 9 Nov 2014), the complete, corrected command that worked for me was:

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

ent returned these values for a 49,152-byte file:

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). 

This is pretty good quality random data!

0
Alex Hofsteede

Похоже, что у вашего noise.wav нет частоты дискретизации, которую может записывать sox, и sox требует, чтобы оба файла имели одинаковую частоту дискретизации. Вам, вероятно, придется регенерировать noise.wav с более высокой частотой дискретизации.

Похожие вопросы