Skip to main content

A library for recording and plotting spectrograms from audio data.

Project description

Spectrogram Recorder Library

A Python library for recording audio, generating spectrograms, and managing session data.

Features

  • Record audio from your default input device (sounddevice).
  • Plot and save spectrograms (matplotlib).
  • Create numbered session folders (session_1, session_2, ...).
  • Delete the latest session and inspect folder sizes.
  • Cross-platform default save location based on the current user's home directory.

Installation

pip install py-spectrogram-tools

Or from source:

git clone https://github.com/Ampter/py-spectrogram-tools
cd py-spectrogram-tools
pip install .

Dependencies

  • numpy
  • sounddevice
  • matplotlib

Import

import pyspectools as pst

API

pst.get_default_directory()

Returns the default directory for spectrogram sessions:

  • Windows: C:\Users\<username>\SOUNDS\spectrograms
  • macOS: /Users/<username>/SOUNDS/spectrograms
  • Linux: /home/<username>/SOUNDS/spectrograms

pst.create_session_folder(directory=None)

Creates a new folder such as session_5 and returns its path.

pst.get_latest_session_folder(directory=None)

Returns the highest numbered session folder path, or None.

pst.record_audio(duration=3, rate=44100, channels=1)

Records audio and returns a flattened NumPy array.

pst.plot_spectrogram(audio_data, rate=44100)

Returns (fig, ax) for the generated spectrogram.

pst.save_spectrogram(fig, session_folder)

Saves a PNG in the target session folder and returns the output file path.

pst.delete_latest_session_folder(directory=None)

Deletes the latest session folder.

pst.get_folder_size(directory=None)

Returns folder size in bytes.

pst.print_folder_size(directory=None)

Prints the total size of the latest session folder.

Usage Example

import pyspectools as pst

session_folder = pst.create_session_folder()
audio_data = pst.record_audio(duration=5)
fig, _ = pst.plot_spectrogram(audio_data)
output_file = pst.save_spectrogram(fig, session_folder)

print(f"Saved spectrogram: {output_file}")

Contributing

Contributions are welcome.

License

This project is licensed under the MIT License. See LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyspectools2-1.0.0-py3-none-any.whl (5.0 kB view details)

Uploaded Python 3

File details

Details for the file pyspectools2-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: pyspectools2-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 5.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for pyspectools2-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5d2f0ab4e9c9f748d378a32cd798b8aa6c8892c2492f575a8c4bafff919892bc
MD5 6c5773653b2f1046734abe7fe4806d7a
BLAKE2b-256 0cc553ba85ec23fd9b94a994bdf490afc098140f2c8f37bb5fd0967a7f1d8922

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page