Я хочу генерировать случайные числа в определенном диапазоне (от 1 до 26), используя файл .wav только со статическим шумом.
Результаты должны быть повторяемыми.
Есть ли какая-либо служба / программа / метод для достижения этой цели в Windows 7?
Я хочу генерировать случайные числа в определенном диапазоне (от 1 до 26), используя файл .wav только со статическим шумом.
Результаты должны быть повторяемыми.
Есть ли какая-либо служба / программа / метод для достижения этой цели в Windows 7?
Попробуйте модуль 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()
Если файл закодирован в формате PCM, вы можете использовать wave
модуль Python для считывания сэмплов в файле, а затем сложить значения в диапазон.
Я создал настоящий файл случайных чисел, используя радиоволны AM или то, что обычно называется белым шумом. Я сделал это в Linux, поэтому, если вы хотите, выполните следующие действия. 1. Используйте свое радио, которое имеет AM. 2. поместите частоту где-нибудь между радиоканалами - вы должны получить белый шум от радиоволн и других магнитных помех ... 3. использовать дистрибутив Linux (на основе 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
ура