Skip to main content

Voice AI safety monitoring through multimodal biomarker analysis

Project description

Thymia Sentinel

Voice AI safety monitoring through multimodal biomarker analysis.

Sentinel streams voice conversations to Thymia's Lyra server for real-time extraction of clinical speech biomarkers, combined with policy-based safety reasoning to detect mental health concerns that text-only systems miss.

Why Multimodal?

Text-only safety moderation has two fundamental failure modes:

  1. False negatives (minimization): Users experiencing mental health crises frequently downplay their distress verbally. "I'm fine, just tired" may be spoken with voice biomarkers indicating severe depression.

  2. False positives (alarm fatigue): Phrases like "I'm dying of embarrassment" trigger crisis pathways despite no clinical concern, leading to desensitization and wasted resources.

Both failures stem from the same limitation: reliance on semantic content without physiological ground truth. Sentinel addresses this by combining speech biomarkers with conversation analysis through explicit concordance checking.

Installation

pip install thymia-sentinel

Quick Start

from thymia_sentinel import SentinelClient

async def handle_result(result):
    policy = result["policy"]
    if policy == "safety":
        classification = result["result"]["classification"]
        level = classification["level"]  # 0-3
        alert = classification["alert"]  # none, monitor, professional_referral, crisis

        if level >= 2:
            print(f"Risk level {level}: {alert}")
            print(f"Recommended: {result['result']['recommended_actions']['for_agent']}")

sentinel = SentinelClient(
    user_label="user-123",
    policies=["safety"],
    biomarkers=["helios", "apollo"],
    on_policy_result=handle_result,
)

await sentinel.connect()

# In your voice AI audio loop:
await sentinel.send_user_audio(user_audio_bytes)      # PCM16 @ 16kHz
await sentinel.send_agent_audio(agent_audio_bytes)
await sentinel.send_user_transcript("I've been feeling okay lately")
await sentinel.send_agent_transcript("That's good to hear. How has your sleep been?")

# When done:
await sentinel.close()

Configuration

Parameter Type Default Description
user_label str None Unique user identifier
date_of_birth str None YYYY-MM-DD format (improves accuracy, imputed from voice if omitted)
birth_sex str None "MALE" or "FEMALE" (improves accuracy, imputed from voice if omitted)
language str "en-GB" Language code
policies list[str] ["passthrough"] Policies to execute
biomarkers list[str] ["helios"] Biomarkers to extract
sample_rate int 16000 Audio sample rate in Hz
on_policy_result callable None Callback for policy results
on_progress_result callable None Callback for progress updates
api_key str env THYMIA_API_KEY Your Thymia API key

Policies

  • passthrough: Returns raw biomarker values without interpretation
  • safety: Full safety analysis with 4-level risk classification and recommended actions

Biomarkers

  • helios: Wellness indicators (distress, stress, burnout, fatigue, low self-esteem)
  • apollo: Clinical disorder probabilities (depression, anxiety) and symptom-level severities
  • psyche: Real-time affect detection (happy, sad, angry, fearful, etc.)

Risk Classification

The safety policy returns a 4-level classification:

Level Alert Description
0 none No concern detected
1 monitor Mild indicators, continue monitoring
2 professional_referral Moderate concern, consider referral
3 crisis Crisis level, immediate intervention

Framework Integrations

For framework-specific examples, see the examples directory:

  • LiveKit Agents - Automatic audio capture from LiveKit rooms
  • Pipecat - Integration with Pipecat pipelines
  • VAPI - WebSocket integration for VAPI
  • Gemini Live - Google Gemini Live API integration

License

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 Distribution

thymia_sentinel-1.0.0.tar.gz (9.6 kB view details)

Uploaded Source

Built Distribution

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

thymia_sentinel-1.0.0-py3-none-any.whl (11.4 kB view details)

Uploaded Python 3

File details

Details for the file thymia_sentinel-1.0.0.tar.gz.

File metadata

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

File hashes

Hashes for thymia_sentinel-1.0.0.tar.gz
Algorithm Hash digest
SHA256 80366c307ae3a51faf81de66c8914cb3c88306696f25551d19f6f059bfb71f06
MD5 5ac2833dee4a66d3d8aeeb049f6b8c49
BLAKE2b-256 258e8756d632166c3895eb8c0447105cda2636c7d82405e6d638679549d135d0

See more details on using hashes here.

Provenance

The following attestation bundles were made for thymia_sentinel-1.0.0.tar.gz:

Publisher: publish.yml on thymia-ai/thymia-sentinel-integrations

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

File details

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

File metadata

File hashes

Hashes for thymia_sentinel-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 df46d21bce618ddc4c59fcb7fb1aabdbefeae23294cabc195d4a3619b1612c0e
MD5 abb35735f967d688e74e08ea4558195f
BLAKE2b-256 5e0a577bb64761aab010cb5bb2124fe4a2090d4acb8bd3d7558b983d1ce9d8e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for thymia_sentinel-1.0.0-py3-none-any.whl:

Publisher: publish.yml on thymia-ai/thymia-sentinel-integrations

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