Як генерувати випадкові числа з файлом .wav?


5

Я хочу генерувати випадкові числа в межах певного діапазону (від 1 до 26), використовуючи.

Результати повинні бути повторюваними.

Чи існує служба / програма / спосіб виконання цього в Windows 7?


1
Що ви хочете зробити з випадковими числами? Відповідь на це питання впливає на те, який метод буде найкращим для цього.
jmetz

Перш за все, чи знаєте ви якісь мови програмування? Я припускаю не, але це не змінює того факту, що випадкові згенеровані числа, які повторюються, не випадкові. Тим не менш, ви можете розглядати хешування файлу з MD5 і використовувати хеш як затравку. Це гарантує, що насіння є унікальним для того, щоб звукові фрагменти могли відтворювати передбачувану послідовність чисел. Однак це НЕ випадкове.
anber

@anber Так, у мене є досвід роботи з кількома мовами програмування. З того, що ви написали, я пам'ятаю це. Дякую! ;)
zeldarulez

Відповіді:


6

Спробуйте 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()

я, на жаль, не програмую / знаю пітон. Як я можу використовувати цей фрагмент коду?
zeldarulez

3
@zeldarulez: До тих пір, поки ви можете мислити логічно, Python є одним з найпростіших мов програмування для вивчення.
Ignacio Vazquez-Abrams

@zeldarulez - що ви хочете зробити з випадковими числами?
jmetz

Я хотів би використовувати використання випадкових чисел, щоб створити ключ одноразової панелі. Я знаю random.org , але я хочу використовувати метод, щоб створити його сам
zeldarulez

@ IgnacioVazquez-Abrams вивчати нову мову буде добре;)
zeldarulez

0

Якщо файл закодований за допомогою PCM, ви можете використовувати Python wave модуль для зчитування зразків у файлі, а потім згортання значень у діапазон.


4
The wave Модуль читає дані як рядок - я б рекомендував використовувати scipy.io.wavfile замість того, як я написав у своїй відповіді - це робить дані набагато більш керованими для подальшого масштабування.
jmetz

0

Я створив справжній файл випадкових чисел, використовуючи радіохвилі AM або те, що популярно називається білим шумом. Я зробив це в linux, так що якщо ви хочете, виконайте такі дії. 1. використовуйте радіо, яке має AM. 2. Покладіть частоту десь між радіоканалами - ви повинні отримати білий шум від радіохвиль та інших магнітних перешкод ... 3. використовуйте linux distro (debian / redhat based) - я використовував Ubuntu. 4. Встановіть програму "sox" (bundle), яка має невелике додаток під назвою "rec", яке ви будете використовувати 5. після того, як ви встановили sox, помістіть мікрофон на динаміки, щоб вони могли записувати "білий шум" і використовувати команду:

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

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

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

щоб зняти заголовок і "видалити" потенційні дублікати, скористайтеся цією програмою, написаною на C Rick Van Reinn

Це не є великою проблемою, але пам'ятайте, що кастинг у цій програмі не є правильним, і ваш gcc почне скаржитися

Посилання на вихідний код: Вихідний код Openfortress

і шляхом натискання вниз файлу через програму:

cat randomWAVfile | ./noise-filter > randomBits

Ви отримаєте файл TRNG.

Я дізнався про це за допомогою цього посилання. Єдине, що створив оригінальний підручник, використовував старі версії linux, які працювали з OSS (open sound sys), а не alsa.

Оригінальна публікація: Відкрита фортеця оригінального посилання

Привітання


Будь ласка, уважно прочитайте запитання. Ваша відповідь ні відповісти на оригінальне запитання. OP сказав: "Результати повинні бути повторюваними".
DavidPostill

Вибачте, Девід, я переглядав щось і не мав чіткого питання. Мої вибачення.
dovla091
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.