2013-05-17 4 views
-1

Étant donné un tableau d'octets audio données en python comme sidétection écrêtage numérique dans le signal audio

inp = alsaaudio.PCM(alsaaudio.PCM_CAPTURE, alsaaudio.PCM_NONBLOCK, card) 

# Set attributes: Mono, 48000 Hz, 16 bit little endian samples 
inp.setchannels(1) 
inp.setrate(48000) 
inp.setformat(alsaaudio.PCM_FORMAT_S16_LE) 
l, data = inp.read() 

Comment détecter écrêtage numérique, dont la valeur ne données doivent dépasser pour être sûr qu'il était numérisé numériquement?

+2

Qu'entendez-vous par overdrive? Coupure numérique? Les données doivent être égales aux valeurs maximales ou minimales pour un entier signé de 16 bits, pour plus de deux ou trois échantillons, pour qu'il y ait un écrêtage. –

+0

Lorsque vous écoutez un son saturé, il est déformé lorsque des personnes touchent un microphone ou que le circuit est court-circuité ou crie trop fort. Je présume que cela s'appelle le découpage numérique alors. –

+0

@RobertHarvey Donc, fondamentalement entre -32.768 et 32.767? Donc si j'utilise si audioop.max (data, 2)> = 32767 || si audioop.max (data, 2) <= -32767 je devrais avoir un écrêtage? –

Répondre

1

Overdrive est fondamentalement distorsion de gain. Il augmente la tension au point que le conducteur coupe juste le haut et déforme ainsi le signal. Si vous avez besoin de tester cela dans un sens numérique, ce serait un écrêtage dur. Vous devrez donc rechercher les valeurs qui dépassent le seuil maximal. Avec les fichiers audio 16 bits, le clip va être 0db par la nature de celui-ci. Parce que s'il n'y a plus de bits à sauvegarder, le logiciel le coupe automatiquement au maximum d'un entier de 16 bits. Malheureusement, si la piste avait été déformée auparavant et que le volume avait été abaissé afin de mieux se fondre dans le mixage, vous ne le trouverez probablement pas. Si ce n'est pas le cas, ce que vous examinez est la seule source sonore sur la piste, dans ce cas trouvez simplement le maximum pour la piste et définissez cela comme votre seuil. Je peux dire cependant que le découpage dur se présente sous la forme d'une onde carrée, de sorte que vous pouvez rechercher des valeurs consécutives identiques pendant une période de temps plus longue qu'une onde audible commune (pour ignorer les tonalités légitimes d'onde carrée). C'est le meilleur que je puisse faire pour vous.