Skip to main content

Reader and utilities for multi-sensor OpenEarable recordings.

Project description

Open Earable Python

A Python toolkit for parsing and analyzing multi-sensor recordings from an OpenEarable device. The library provides pandas-friendly accessors for IMU, barometer, PPG, bone accelerometer, optical temperature, and microphone data, along with audio utilities.

Features

  • Load .oe recordings into a single time-aligned pandas DataFrame.
  • Convenient attribute and key-based accessors for grouped sensors and individual channels.
  • Play or export microphone audio directly from notebooks.
  • Export combined sensor data to CSV for downstream analysis.

Installation

The package targets Python 3.9+.

Once published to PyPI:

pip install open-earable-python

From source (for development):

git clone https://github.com/OpenEarable/open-earable-python.git
cd open-earable-python
python -m venv .venv
source .venv/bin/activate
pip install -e .

Quickstart

Load a recording and explore the combined DataFrame:

from open_earable_python import SensorDataset

# Load a single .oe file
recording = SensorDataset("my_recording.oe")

# Time-indexed dataframe containing all available sensors
full_df = recording.get_dataframe()
print(full_df.head())

# Export to CSV
recording.save_csv("my_recording.csv")

Sensor access patterns

Each sensor has an accessor exposing both grouped views and individual channels using attribute or key syntax. For IMU data:

imu = recording.imu

# Full IMU dataframe (original column names retained)
imu.df          # or imu.to_dataframe()
imu["acc.x"]   # Column-style access

# Accelerometer
imu.acc         # Accelerometer dataframe
imu.acc["x"]   # Accelerometer X channel
imu.acc["y"]
imu.acc["z"]

# Gyroscope
imu.gyro        # Gyroscope dataframe
imu.gyro["x"]
imu.gyro["y"]
imu.gyro["z"]

# Magnetometer
imu.mag          # Magnetometer dataframe
imu.mag["x"]
imu.mag["y"]
imu.mag["z"]

PPG channels follow the same pattern:

ppg = recording.ppg
ppg.df           # Full PPG dataframe
ppg["ppg.red"]  # Column-style access
ppg["red"]      # Channel shortcut
ppg.ir
ppg.green
ppg.ambient

Working with multiple recordings

Load several files at once and iterate over them:

from open_earable_python.dataset import load_recordings

paths = ["session1.oe", "session2.oe"]
recordings = load_recordings(paths)

# Access a specific recording
first = recordings[0]
print(first.list_sensors())

Audio utilities

  • play_audio(sampling_rate=48000): play stereo microphone data in a Jupyter environment.
  • save_audio(path, sampling_rate=48000): export microphone audio to WAV.

Project details


Download files

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

Source Distribution

open_earable_python-0.0.1.tar.gz (16.6 kB view details)

Uploaded Source

Built Distribution

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

open_earable_python-0.0.1-py3-none-any.whl (12.5 kB view details)

Uploaded Python 3

File details

Details for the file open_earable_python-0.0.1.tar.gz.

File metadata

  • Download URL: open_earable_python-0.0.1.tar.gz
  • Upload date:
  • Size: 16.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for open_earable_python-0.0.1.tar.gz
Algorithm Hash digest
SHA256 58150f903c8c4dca7c971d2d739c259d960d5c2396bde6ec8642ca4ae9d91fd5
MD5 addb67f73efbae0b308952247376c473
BLAKE2b-256 66128e2f6acf06beb34b8ae585450f9e70f2fae32f7d38d343e8584575d5ad5d

See more details on using hashes here.

Provenance

The following attestation bundles were made for open_earable_python-0.0.1.tar.gz:

Publisher: publish-pypi.yml on OpenEarable/open-earable-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file open_earable_python-0.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for open_earable_python-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c14778c284ecdfe495b5212cdcce377fb5a6da532b59086fe2477d5438caf16e
MD5 3eb88c8df2a57484691aa1582d732f5e
BLAKE2b-256 f49e391ffe1f6409b7ce0a86066073bdf1a17d6fa59345bdfd36f1c67f31aa88

See more details on using hashes here.

Provenance

The following attestation bundles were made for open_earable_python-0.0.1-py3-none-any.whl:

Publisher: publish-pypi.yml on OpenEarable/open-earable-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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