Как генерировать случайные числа с помощью файла.wav?

Я хочу генерировать случайные числа в определенном диапазоне (от 1 до 26), используя файл.wav только со статическим шумом.

Результаты должны быть повторяемыми.

Есть ли какая-либо служба / программа / метод для достижения этой цели в Windows 7?

3 ответа

Решение

Попробуйте Python scipy модуль,

import scipy.io.wavfile as sio

data = sio.read(FILENAME)
data = data[1].astype('float')
data -= data.min()
data *= 25.0*data.max()
data += 1

Данные теперь являются векторными и могут быть сохранены или использованы для дальнейшей обработки и т. Д.

Например, если вы просто хотите сохранить выходные данные в виде файла csv (значения, разделенные запятыми), вы можете использовать

import csv
fout = open('output.csv', 'w')
wrt = csv.writer(fout)
wrt.writerow(data)
fout.close()

Я создал настоящий файл случайных чисел, используя радиоволны AM или то, что обычно называется белым шумом. Я сделал это в Linux, поэтому, если вы хотите, выполните следующие действия. 1. Используйте свое радио, которое имеет AM. 2. поместить частоту где-то между радиоканалами - вы должны получить белый шум от радиоволн и других магнитных помех... 3. использовать linux distro (на основе debian/redhat) - я использовал Ubuntu. 4. Установите приложение "sox" (связка), в котором есть небольшое приложение "rec", которое вы будете использовать 5. после установки sox поместите микрофон на динамики, чтобы они могли записывать "белый шум", и используйте команду:

rec -c 1 -r 8000 -t wav -e signed-integer randomWAVfile

вкратце: -c 1 (вы используете один канал) -r 8000 (сэмплирование 8000 Гц) -t wav (форматировать файл как wav) -e знаковое-целое число (и читает 16 бит одновременно) randomWAVfile - (файл имя - по вашим личным предпочтениям)

У вас будет файл со случайным шумом, который "форматируется" как wav-файл (он содержит wav-заголовок из 14 битов - если я не ошибаюсь)

чтобы вырезать заголовок и "удалить" потенциальные дубликаты, используйте эту программу, написанную на C Риком Ван Рейнном

Это не большая проблема, но имейте в виду, что кастинги в этой программе неправильные и ваш gcc начнет жаловаться

Ссылка на исходный код: исходный код Openfortress

и нажав файл вниз через программу:

cat randomWAVfile | ./noise-filter > randomBits

Вы получите файл TRNG.

Я опирался на эту ссылку. единственное, что парень, создавший оригинальное руководство, использовал древние версии linux, работающие с OSS (open sound sys), а не alsa.

Исходное сообщение: Оригинальная ссылка Openfortress

ура

Если файл закодирован в формате PCM, вы можете использовать Python wave Модуль для чтения образцов в файле, а затем сложите значения в диапазон.

Другие вопросы по тегам