Skip to main content

Overview

The Synheart Emotion Dart/Flutter SDK provides real-time emotion inference from biosignals for cross-platform mobile applications.

Installation

Add to pubspec.yaml:
dependencies:
  synheart_emotion: ^0.2.1
Install:
flutter pub get

Requirements

  • Flutter >= 3.10.0
  • Dart >= 3.0.0

Quick Start

Basic Usage

import 'package:synheart_emotion/synheart_emotion.dart';

final engine = EmotionEngine.fromPretrained(
  const EmotionConfig(
    window: Duration(seconds: 60),
    step: Duration(seconds: 5),
  ),
);

engine.push(
  hr: 72.0,
  rrIntervalsMs: [850.0, 820.0, 830.0, 845.0, 825.0],
  timestamp: DateTime.now(),
);

final results = engine.consumeReady();
for (final result in results) {
  print('Emotion: ${result.emotion} (${result.confidence})');
}

Real-Time Integration

import 'package:synheart_wear/synheart_wear.dart';
import 'package:synheart_emotion/synheart_emotion.dart';

final wearSDK = SynheartWear(...);
final emotionEngine = EmotionEngine.fromPretrained();

// Stream from wearable
wearSDK.streamHRV(windowSize: Duration(seconds: 60))
  .listen((metrics) {
    emotionEngine.push(
      hr: metrics.getMetric(MetricType.hr)!,
      rrIntervalsMs: metrics.rrIntervals,
      timestamp: DateTime.now(),
    );

    final results = emotionEngine.consumeReady();
    if (results.isNotEmpty) {
      print('Current emotion: ${results.first.emotion}');
    }
  });

API Reference

EmotionEngine

Methods:
MethodDescriptionReturns
fromPretrained(config)Load pretrained modelEmotionEngine
push({hr, rrIntervalsMs, timestamp})Push biosignal datavoid
consumeReady()Get ready resultsList<EmotionResult>

EmotionConfig

Parameters:
ParameterTypeDefault
windowDuration60 seconds
stepDuration5 seconds

EmotionResult

Properties:
PropertyTypeDescription
emotionEmotionDetected emotion
confidencedoubleConfidence (0-1)
timestampDateTimeWhen inferred

Resources

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