Skip to main content
Not yet available. This extractor is a design/roadmap page — it is not in the platform’s extractor registry today, and referencing it in a collection returns a validation error. For working alternatives see the extractor catalog.
Configuring collections by built-in extractor name is a deprecated path — collections are now created by picking features. This extractor does not yet have a direct feature-key replacement; existing feature_extractor configs keep working. See the migration guide.

Browse the extractor catalog on GitHub

Runnable reference for every built-in Mixpeek extractor — inputs, parameters, output fields, embedding models, and copy-paste examples. Auto-generated from the live registry, so it always matches production.
Audio sentiment extractor pipeline showing speaker diarization, parallel FinBERT and prosodic feature extraction, and output alpha signals
The audio sentiment extractor processes earnings call recordings, analyst day presentations, Fed press conferences, and financial podcasts to produce two parallel signal streams: FinBERT financial-domain text sentiment (768D) from Whisper transcription, and a 5-feature prosodic vector (128D) capturing vocal stress, hesitation, and deception markers. Speaker diarization separates management from analysts for role-attributed sentiment. This extractor addresses the gap identified in SEC 8-K forward guidance NLP studies: text-only sentiment models generate crowded alpha (in-sample IC ~+0.12 but poor walk-forward generalization). The five prosodic features — pitch variability, speech rate, vocal energy, pause ratio, and audio-text alignment — are largely uncorrelated with published text signals and untested at scale, representing a structural alternative data opportunity.
View extractor details at api.mixpeek.com/v1/collections/features/extractors/audio_sentiment_extractor_v1 or fetch programmatically with GET /v1/collections/features/extractors/{feature_extractor_id}.

Pipeline Steps

  1. Filter Dataset (if collection_id provided)
    • Filter to specified collection
  2. Apply Input Mappings
    • Resolve audio/video field from source (e.g., payload.audio_url, payload.webcast_url)
  3. Audio Extraction (conditional: if video input)
    • FFmpeg strips audio track from MP4/MOV; supports AAC, MP3, FLAC output
  4. Voice Activity Detection + Segmentation
    • split_method: time — fixed-length windows (default 30s)
    • split_method: silence — split at natural speech pauses (VAD threshold configurable)
    • split_method: speaker — one segment per speaker turn (requires run_diarization=true)
  5. Speaker Diarization (conditional: if run_diarization=true)
    • pyannote.audio 3.x pipeline separates speakers (CEO, CFO, Analyst_1, etc.)
    • Assigns speaker_id and optionally maps to speaker_role via role manifest
  6. Transcription (conditional: if run_transcription=true)
    • Whisper large-v3-turbo speech-to-text with financial vocabulary prompt
    • Per-segment timestamps aligned to diarization boundaries
  7. FinBERT Text Sentiment (conditional: if run_finbert=true)
    • ProsusAI/FinBERT financial-domain sentiment classifier
    • Outputs sentiment_label (positive/negative/neutral), sentiment_score (-1 to +1), confidence
    • Generates 768D FinBERT CLS embedding for semantic search
  8. Prosodic Feature Extraction (conditional: if run_prosodics=true)
    • LibROSA + Parselmouth extract 5 features per segment:
      • Pitch variability (F0 standard deviation, Hz) — hesitation and stress indicator
      • Speech rate (words per minute) — confidence and urgency signal
      • Vocal energy (RMS dB) — assertiveness and emotional weight
      • Pause ratio (fraction of silence) — cognitive load and evasiveness marker
      • Vocal tremor (jitter + shimmer) — anxiety and deception indicator
    • Normalized into a 128D prosodic embedding for similarity search
  9. Audio-Text Alignment Score (conditional: if run_alignment=true)
    • Cosine similarity between FinBERT sentiment direction and prosodic valence
    • Low alignment = voice contradicts words (high-value deception/stress signal)
  10. LLM Structured Enrichment (conditional: if run_llm_enrichment=true or response_shape set)
    • Gemini/GPT-4o processes transcription with custom prompt
    • Extracts structured signals: guidance confidence, topic classification, hedging language
  11. Output
    • Per-segment documents with both embedding types, raw prosodic features, sentiment scores, speaker metadata, and computed alpha signals

When to Use

When NOT to Use

Supported Input Types

Supported audio formats: MP3, WAV, FLAC, M4A, OGG, OPUS Supported video formats (audio extracted): MP4, MOV, MKV, AVI, WebM

Input Schema

Provide one of the following inputs:

Output Schema

Each audio segment produces one document:

Parameters

Audio Segmentation

Fixed-interval splitting — equal-duration segments regardless of speech content.Best for: Batch processing, predictable segment counts, initial exploration

Feature Extraction Parameters

Speaker Role Manifest

Map diarized speaker IDs to roles (CEO, CFO, Analyst, etc.) using a manifest:
When speaker_role_manifest is not provided, roles are labeled SPEAKER_00, SPEAKER_01, etc.

LLM Structured Extraction

Natural Language Mode:
JSON Schema Mode for Quant Signals:

Configuration Examples

Performance & Costs

Processing Speed

Cost Estimates (per hour of audio)

Batch processing: Processing 1,000 S&P 500 earnings calls (avg 60 min) at full configuration ≈ $250

Vector Indexes

Text Embedding (FinBERT)

Prosodic Embedding

Alpha Signal Guide

This section describes the five core prosodic features and their interpretation as quantitative signals.
What it measures: Standard deviation of the fundamental frequency (F0) in Hz across the segment.Signal interpretation:
  • High variability (> 50 Hz): Elevated emotional engagement; can indicate stress or enthusiasm
  • Low variability (< 15 Hz): Monotone delivery; associated with rehearsed/scripted language or disengagement
  • Baseline deviation: Compare against the speaker’s historical mean F0 std dev for true anomaly detection
Quant application: Track CEO pitch variability during forward guidance vs. historical questions. Anomalous drops on guidance segments may precede earnings misses.
What it measures: Words per minute derived from Whisper word-level timestamps.Signal interpretation:
  • High rate (> 180 wpm): Urgency, anxiety, or over-rehearsed scripted answers
  • Low rate (< 100 wpm): Deliberate, careful language; common when discussing negative surprises
  • Rate deceleration mid-answer: Suggests real-time reasoning, less scripted — higher authenticity signal
Quant application: Significant speech rate slowdown during Q&A relative to prepared remarks may signal management is processing unexpected analyst questions.
What it measures: Root mean square energy of the audio signal in decibels.Signal interpretation:
  • High energy: Assertiveness and confidence; common in positive guidance delivery
  • Energy drop mid-sentence: Hedging or trailing off; linguistic uncertainty
  • Segment-relative drop: Cross-call energy tracking shows conviction level
Quant application: Energy drop on forward EPS guidance sentences (identifiable via LLM topic tagging) is a stress-linked signal distinct from text sentiment.
What it measures: Fraction of segment duration classified as silence (VAD threshold -40 dB).Signal interpretation:
  • High pause ratio (> 0.35): Cognitive load; speaker is reasoning in real time rather than reciting
  • Low pause ratio (< 0.10): Scripted, rehearsed delivery — less information content
  • Q&A vs. prepared remarks delta: A large increase in pause ratio during Q&A is a well-documented stress marker
Quant application: Pause ratio on Q&A segments answering analyst questions about inventory / margin / guidance has shown predictive value for negative guidance revisions in academic literature.
What it measures: Cosine similarity between the FinBERT sentiment direction (text) and prosodic valence (audio). Range: -1.0 to +1.0.Signal interpretation:
  • High alignment (> 0.6): Voice and words agree — higher conviction, less masking
  • Low alignment (0.1–0.4): Moderate divergence — common in hedged language
  • Negative alignment (< 0): Voice contradicts words — strongest stress/deception marker; e.g., “We feel very good about guidance” delivered with high pitch variability, low energy, and high pauses
Quant application: This is the most novel of the five features. Text NLP cannot capture it. Segments with positive text sentiment but negative alignment are the primary alpha generation target.

Composite Stress Index

The stress_index field (0.0–1.0) is a normalized composite of all five prosodic features:
Where _z values are Z-scores computed against the speaker’s rolling 4-quarter baseline when speaker_id is consistent across calls.

Limitations

  • Speaker diarization accuracy: pyannote achieves ~90% DER on clean 2-speaker recordings; accuracy degrades with > 8 speakers or poor audio quality
  • Non-English: Whisper transcription supports 99 languages; FinBERT is English-only — for non-English calls, disable run_finbert and use multilingual sentiment models
  • Audio quality: Prosodic features require 16kHz+ audio; compressed phone audio (8kHz) reduces pitch extraction accuracy by ~30%
  • Baseline dependency: stress_index Z-score normalization requires at least 4 prior segments from the same speaker_id to be meaningful
  • Segment length: Prosodic features are unreliable for segments < 5 seconds; short interjections are best excluded
  • LLM enrichment latency: run_llm_enrichment=true adds 1–2s per segment; disable for batch throughput