4

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

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

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

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

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

3 ответа3

3

В этой командной строке слишком много выходов:

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

Для командного конвейера единственным выводом должен быть - в конце. Команда rec интерпретирует параметр noise.wav как дополнительный вход, который завершится ошибкой или выдаст фиктивный вывод. Попробуйте удалить лишнее имя файла (и другие ненужные / несовместимые параметры):

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

согласно учебнику, на который вы ссылались (я тоже следую этому!) И справочная страница SoX последней версии (по состоянию на 9 ноября 2014 года), полная исправленная команда, которая работала для меня, была:

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

ent вернул эти значения для файла размером 49 152 байта:

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

Это довольно хорошее качество случайных данных!

0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .