Generate sine sweep with 20 to 20000Hz and -3 dbfs in python

Viewed 309

The following code creates "audio.wav" file but peak is -25.5 dBfs.

import numpy as np
import pyaudio
from scipy.io import wavfile

samplerate = 48000
#Duration of file
length = 10
chirplength = 8

#Start frequency
f0 = 50
# End Frequency
f1 = 20000

signal = np.arange(chirplength*samplerate)/(chirplength*samplerate)
signal = np.interp(signal, [0, 1], [f0, f1])
signal = np.append(signal, np.repeat(f1, (length-chirplength)*samplerate))
signal = np.sin(signal.cumsum() * 2 * np.pi / samplerate)
signal = np.float32(signal)
#Write to file
wavfile.write("audio.wav", samplerate, signal)

How to create audio.wav file with -3 dBfs without any clipping?

0 Answers
Related