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
.oerecordings 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
58150f903c8c4dca7c971d2d739c259d960d5c2396bde6ec8642ca4ae9d91fd5
|
|
| MD5 |
addb67f73efbae0b308952247376c473
|
|
| BLAKE2b-256 |
66128e2f6acf06beb34b8ae585450f9e70f2fae32f7d38d343e8584575d5ad5d
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
open_earable_python-0.0.1.tar.gz -
Subject digest:
58150f903c8c4dca7c971d2d739c259d960d5c2396bde6ec8642ca4ae9d91fd5 - Sigstore transparency entry: 954519429
- Sigstore integration time:
-
Permalink:
OpenEarable/open-earable-python@6e089c5918933b09591d462a2ec6cdabae72cbfd -
Branch / Tag:
refs/tags/v0.0.1 - Owner: https://github.com/OpenEarable
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@6e089c5918933b09591d462a2ec6cdabae72cbfd -
Trigger Event:
push
-
Statement type:
File details
Details for the file open_earable_python-0.0.1-py3-none-any.whl.
File metadata
- Download URL: open_earable_python-0.0.1-py3-none-any.whl
- Upload date:
- Size: 12.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c14778c284ecdfe495b5212cdcce377fb5a6da532b59086fe2477d5438caf16e
|
|
| MD5 |
3eb88c8df2a57484691aa1582d732f5e
|
|
| BLAKE2b-256 |
f49e391ffe1f6409b7ce0a86066073bdf1a17d6fa59345bdfd36f1c67f31aa88
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
open_earable_python-0.0.1-py3-none-any.whl -
Subject digest:
c14778c284ecdfe495b5212cdcce377fb5a6da532b59086fe2477d5438caf16e - Sigstore transparency entry: 954519432
- Sigstore integration time:
-
Permalink:
OpenEarable/open-earable-python@6e089c5918933b09591d462a2ec6cdabae72cbfd -
Branch / Tag:
refs/tags/v0.0.1 - Owner: https://github.com/OpenEarable
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@6e089c5918933b09591d462a2ec6cdabae72cbfd -
Trigger Event:
push
-
Statement type: