Как генерировать случайные числа с помощью файла.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
Модуль для чтения образцов в файле, а затем сложите значения в диапазон.