0
   TypeError                                 Traceback (most recent call last)
d:\website\SpeechProcessForMachineLearning-master\SpeechProcessForMachineLearning-master\speech_process.ipynb Cell 15' in <cell line: 1>()

     -->1 plot_freq(signal, sample_rate)
d:\website\SpeechProcessForMachineLearning-master\SpeechProcessForMachineLearning-master\speech_process.ipynb Cell 10' in plot_freq(signal, sample_rate, fft_size)

        2 def plot_freq(signal, sample_rate, fft_size=512):
          3     xf = np.fft.rfft(signal, fft_size) / fft_size
    ----> 4     freq = np.linspace(0, sample_rate/2, fft_size/2 + 1)
          5     xfp = 20 * np.log10(np.clip(np.abs(xf), 1e-20, 1e100))
          6     plt.figure(figsize=(20, 5))

File <__array_function__ internals>:5, in linspace(*args, **kwargs)

File ~\AppData\Local\Programs\Python\Python39\lib\site-packages\numpy\core\function_base.py:120, in linspace(start, stop, num, endpoint, retstep, dtype, axis)

     23 @array_function_dispatch(_linspace_dispatcher)
         24 def linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None,
         25              axis=0):
         26     """
         27     Return evenly spaced numbers over a specified interval.
         28 
       (...)
        118 
        119     """
    --> 120     num = operator.index(num)
        121     if num < 0:
        122         raise ValueError("Number of samples, %s, must be non-negative." % num)
    
    TypeError: 'float' object cannot be interpreted as an integer

What solution about this problem?

hpaulj
  • 221,503
  • 14
  • 230
  • 353
  • The fhird argument to `linspace` is the number of values it's supposed to return, and has to be an integer, a number. `fft_size/2 + 1` is a float. Even if `fft_size` is an even integer. It's hard to tell which is your code, `fft_size//2 + 1` or `int(fft_size/2 + 1)`, might solve the issue. – hpaulj May 07 '22 at 06:41

0 Answers0