Como gerar números aleatórios com um arquivo .wav?

5

Eu quero gerar números aleatórios dentro de um determinado intervalo (1 a 26) usando um arquivo .wav com apenas ruído estático.

Os resultados precisam ser repetíveis.

Existe algum serviço / programa / método para realizar isso no Windows 7?

    
por zeldarulez 31.07.2012 / 23:25

3 respostas

6

Tente o módulo scipy do Python,

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

Os dados agora são um vetor e podem ser salvos ou usados para processamento posterior etc.

Se, por exemplo, você quiser apenas salvar a saída como um arquivo csv (valores separados por vírgula), você poderia então usar

import csv
fout = open('output.csv', 'w')
wrt = csv.writer(fout)
wrt.writerow(data)
fout.close()
    
por 31.07.2012 / 23:39
0

Se o arquivo for codificado por PCM, você pode usar o módulo wave do Python para ler as amostras em o arquivo e, em seguida, dobre os valores no intervalo.

    
por 31.07.2012 / 23:38
0

Eu criei um arquivo de número aleatório verdadeiro usando ondas de rádio AM ou o que é popular chamado ruído branco. Eu fiz isso no linux, então se você quiser, siga estes passos. 1. use seu rádio que tenha AM. 2. colocar freqüência em algum lugar entre os canais de rádio - você deve obter ruído branco de ondas de rádio e outras interferências magnéticas ... 3. use o linux distro (baseado no debian / redhat) - Eu usei o Ubuntu. 4. Instale o aplicativo "sox" (pacote), que tem um pequeno aplicativo chamado "rec" que você usará 5. depois de instalar o sox, coloque o microfone nos alto-falantes para que eles possam gravar "ruído branco" e use o comando:

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

em suma: -c 1 (você está usando um canal) -r 8000 (amostragem de 8000 Hz) -t wav (arquivo de formato como wav) -e signed-integer (e lê 16 bits ao mesmo tempo) randomWAVfile - (nome do arquivo - por sua preferência pessoal)

Você terá um arquivo com ruído aleatório que é "formatado" como arquivo wav (ele contém um cabeçalho wav de 14bits - se não me engano)

para desmontar o cabeçalho e "remover" duplicatas em potencial, use este programa escrito em C por Rick Van Reinn

Não é um grande problema, mas esteja ciente de que os castings neste programa não estão corretos e seu gcc começará a reclamar

Link do código-fonte: Código-fonte do Openfortress

e empurrando para baixo o arquivo através do programa:

cat randomWAVfile | ./noise-filter > randomBits

Você receberá o arquivo TRNG.

Eu inclinei isso usando este link. a única coisa que o cara que criou o tutorial original estava usando versões antigas do linux que operavam com o OSS (open sound sys) e não o alsa.

postagem original: Link original do Openfortress

Felicidades

    
por 22.02.2016 / 19:58