Skip to main content

Overview

The Synheart Emotion Python SDK provides emotion inference from biosignals for research, backend services, and data analysis applications.

Installation

pip install synheart-emotion

Requirements

  • Python >= 3.8

Quick Start

Basic Usage

from datetime import datetime
from synheart_emotion import EmotionEngine, EmotionConfig

# Initialize engine
config = EmotionConfig()
engine = EmotionEngine.from_pretrained(config)

# Push biosignal data
engine.push(
    hr=72.0,
    rr_intervals_ms=[850.0, 820.0, 830.0, 845.0, 825.0],
    timestamp=datetime.now()
)

# Get inference results
results = engine.consume_ready()
for result in results:
    print(f"Emotion: {result.emotion} ({result.confidence:.1%})")

Configuration

config = EmotionConfig(
    window_duration=60.0,  # 60 seconds
    step_duration=5.0,     # 5 seconds
)

engine = EmotionEngine.from_pretrained(config)

Real-Time Processing

import time

engine = EmotionEngine.from_pretrained()

while True:
    # Get biosignal from your data source
    biosignal = get_latest_biosignal()

    # Push to engine
    engine.push(
        hr=biosignal.hr,
        rr_intervals_ms=biosignal.rr_intervals,
        timestamp=datetime.now()
    )

    # Consume results
    results = engine.consume_ready()
    for result in results:
        print(f"[{result.timestamp}] {result.emotion}: {result.confidence:.1%}")

    time.sleep(1)

API Reference

EmotionEngine

Main engine for emotion inference. Methods:
MethodDescriptionReturns
from_pretrained(config)Load pretrained modelEmotionEngine
push(hr, rr_intervals_ms, timestamp)Push biosignal dataNone
consume_ready()Get ready resultsList[EmotionResult]

EmotionConfig

Configuration for the engine. Parameters:
ParameterTypeDefaultDescription
window_durationfloat60.0Window size (seconds)
step_durationfloat5.0Step size (seconds)

EmotionResult

Emotion inference result. Attributes:
AttributeTypeDescription
emotionEmotionDetected emotion
confidencefloatConfidence score (0-1)
timestampdatetimeWhen inferred

Resources

For comprehensive documentation, see the full README on GitHub.
Author: Israel Goytom