Kom igångKom igång gratis

Hitta tidsstämplarna

Vi vet att samplingsfrekvensen för vår ljudvåg är 48 kHz, men tänk om vi inte visste det? Vi skulle kunna ta reda på det genom att dividera längden på vår ljudvågsarray med ljudets varaktighet. Pythons wave-modul har dock ett bättre sätt. Om du anropar getframerate() på ett ljudvågsobjekt får du samplingsfrekvensen för det objektet.

Vi kan sedan använda NumPys metod linspace() för att hitta tidsstämpeln för varje heltal i vår ljudvågsarray. Det hjälper oss att visualisera ljudvågen längre fram.

Metoden linspace() tar parametrarna start, stop och num och returnerar num jämnt fördelade värden mellan start och stop.

I vårt fall är start noll, stop är längden på vår ljudvågsarray delat med samplingsfrekvensen (det vill säga ljudfilens varaktighet) och num är längden på vår ljudvågsarray.

Den här övningen är en del av kursen

Taligenkänning i Python

Visa kurs

Övningsinstruktioner

  • Konvertera ljudvågens bytes till heltal.
  • Hämta samplingsfrekvensen för filen med "god morgon"-ljudet med getframerate().
  • Sätt stop till längden på soundwave_gm delat med samplingsfrekvensen.
  • Sätt num till längden på soundwave_gm.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# Read in sound wave and convert from bytes to integers
good_morning = wave.open('good_morning.wav', 'r')
signal_gm = good_morning.readframes(-1)
soundwave_gm = np.frombuffer(____, dtype='int16')

# Get the sound wave frame rate
framerate_gm = good_morning.____

# Find the sound wave timestamps
time_gm = np.linspace(start=0,
                      stop=____/____,
					  num=____)

# Print the first 10 timestamps
print(time_gm[:10])
Redigera och kör kod