Technology Report 2026

Laia Voice AI Platform

Research-Driven Adaptive Voice Intelligence

0
Research Papers
0%
Gender Detection
0
Languages
<0ms
Latency

Services & Capabilities

Production-ready and upcoming voice AI services for your business. Integrate directly via our API or request custom deployments.

PRODUCTION READY

Gender Detection

Detect caller gender in real-time with 98.89% accuracy. Fine-tuned Wav2Vec 2.0 on LibriSpeech. Sub-120ms inference.

98.89% Accuracy Real-time API Ready
PRODUCTION READY

Voice Cloning

Zero-shot voice cloning with Coqui XTTS-v2. Clone any voice from a 10-second sample across 128 languages including Spanish, Catalan, Basque, and Galician.

128 Languages 10s Reference XTTS-v2
COMING SOON

Age Detection

Classify caller age into 5 groups (18-25, 26-35, 36-45, 46-55, 56+) using CNN + Transformer architecture. Tailor your service experience by demographics.

5 Age Groups Real-time Architecture Ready
COMING SOON

Accent Detection

Identify 8 Spanish regional accents (Castellano, Andaluz, Catalan, Gallego, Vasco, Canario, Murciano, Valenciano). Route callers to region-matched agents.

8 Regions First of its Kind Architecture Ready
PRODUCTION READY

Privacy-Preserving Voice AI

Differential privacy (DP-SGD) with formal guarantees. Disentangled LoRA keeps voice identity on-device while sharing only style parameters. GDPR-compliant by design.

ε = 1.0 Privacy GDPR 97.2% Bandwidth Savings
PRODUCTION READY

Adaptive Voice Personalization

Dynamically match your AI voice to caller demographics. Increase trust, engagement, and conversion rates by adapting pitch, rate, warmth, and formality in real-time.

<500ms Latency 10 Voice Profiles Multi-Provider TTS

Developer API Integration

RESTful endpoints for all production-ready services

POST /api/v1/analyze

Upload audio, receive gender classification with confidence scores

POST /api/v1/clone

Clone a voice from a reference sample in ES, CA, EU, GL

GET /api/v1/health

Model status, memory usage, GPU availability

Research Papers Overview

Four peer-targeted research papers form the scientific backbone of the Laia platform.

1

Private Voice

Privacy-preserving distributed voice learning using disentangled LoRA adapters and differential privacy (DP-SGD) to keep voice identities on-device while sharing only style knowledge.

LoRA DisentanglementDP-SGDFederated Learning
2

ZeroVoice

Zero-shot cross-lingual voice cloning leveraging XLS-R encoder across 128 languages. Achieves high-fidelity cloning from just a 10-second reference audio sample.

XLS-R 128-LanguageZero-Shot10s Reference
3

Gender Detection

State-of-the-art 98.89% gender classification accuracy using fine-tuned Wav2Vec 2.0 representations. Production-ready pipeline with sub-100ms inference.

98.89% SOTAWav2Vec 2.0Production-Ready
4

Laia Framework

Adaptive voice personalization combining multi-task learning architecture with real-time inference. Unified pipeline from feature extraction to synthesis.

Multi-TaskAdaptiveReal-Time

Verified Capabilities

Empirically validated performance benchmarks from published research and real implementations.

Gender Detection Accuracy Comparison

Pitch-Based 85.2% MFCC + GMM 88.7% CNN 93.1% Wav2Vec 2.0 94.2% Ours (Laia) 98.89%

Voice Cloning

Real Coqui XTTS-v2 implementation with zero-shot capability across 128 languages.

XTTS-v2

Differential Privacy

Privacy-preserving training framework with formal privacy guarantees.

ε = 1.0

Communication Efficiency

97.2% reduction via LoRA adapters: 360 MB full model compressed to 6 MB transfer.

360 MB → 6 MB

Core Innovations

Key technical contributions spanning privacy, multilingual voice processing, and real-time synthesis.

Disentangled LoRA

ID-LoRA keeps private voice identity on-device; Style-LoRA shares speaking style across the network. True privacy by architecture.

XLS-R 128-Language Encoding

Language-agnostic speaker embeddings via XLS-R enable cross-lingual voice cloning without language-specific training.

VQ-VAE Disentanglement

Content and timbre are cleanly separated through vector-quantized variational autoencoders for precise voice control.

10-Second Zero-Shot Cloning

High-fidelity voice cloning from just a 10-second reference sample with no fine-tuning required.

8 Spanish Regional Accents

First-of-its-kind accent detection system covering 8 distinct Spanish regional varieties.

Sub-500ms Real-Time Pipeline

End-to-end inference under 500 milliseconds, enabling natural real-time conversation flow.

Architecture Diagram

Six-module pipeline from audio input to personalized synthesis output.

MODULE 1 Feature Extraction Wav2Vec 2.0 / XLS-R MODULE 2 Classification & Detection Gender / Accent / Age MODULE 3 Speaker Encoding VQ-VAE Disentangle MODULE 4 Personalization & Adaptation LoRA Adapters MODULE 5 & 6 Synthesis & Output XTTS-v2 / Vocoder Audio Input Personalized Audio
Latency Budget < 500ms total
Extraction ~100ms Classification ~50ms Encoding ~75ms Personalization ~75ms Synthesis ~175ms Output ~25ms

Datasets & Methodology

Rigorously curated multilingual speech corpora spanning multiple languages and speaker demographics.

LibriSpeech

Speakers251
Hours100h
LanguageEnglish
UseGender detection baseline

Common Voice — Spanish

Speakers1,850+
Hours320h
Regions8 Spanish regions
UseAccent detection

Common Voice — Iberian

Catalan45h
Basque12h
Galician18h
UseCross-lingual evaluation

VCTK

Speakers110
Hours44h
LanguageEnglish (multi-accent)
UseVoice cloning training

Technology Stack

Production-grade infrastructure built on proven open-source foundations.

Backend

  • FastAPI
  • PyTorch 2.0+
  • Wav2Vec 2.0
  • Coqui XTTS-v2

Frontend

  • Next.js
  • TypeScript
  • Tailwind CSS
  • React

Models

  • Hugging Face Transformers
  • XLS-R (128 languages)
  • VQ-VAE
  • LoRA Adapters

Privacy

  • DP-SGD
  • Secure Aggregation
  • Federated Learning
  • On-Device Identity

Coming Soon

Capabilities under active development. Contact us to discuss early access or custom deployment timelines.

In Progress

Age Detection Model

Architecture designed, training pipeline prepared. Model training underway.

In Progress

Accent Detection Training

8 Spanish regional accents. Dataset curated, model architecture finalized.

Planned

A/B Testing Validation

2,000+ call study planned to validate real-world voice personalization impact.

Planned

MOS Human Evaluation

Mean Opinion Score campaigns for rigorous perceptual quality assessment.

Planned

Cross-Cultural Validation

Expanding evaluation to Mandarin, Hindi, and Arabic language groups.

Project Structure

Complete codebase organization with paths to every key component.

Backend — FastAPI

backend/
├── main.py                  # App entry — port 8081
├── requirements.txt         # Python deps
├── start.sh                 # Startup script
└── app/
    ├── core/
    │   ├── config.py        # Settings (pydantic)
    │   └── audio.py         # Audio load/preprocess
    ├── models/
    │   ├── model_manager.py # Lazy model loader
    │   ├── gender_model.py  # Wav2Vec 2.0
    │   ├── age_model.py     # CNN+Transformer
    │   ├── accent_model.py  # XLSR-53
    │   ├── emotion_detector.py # Wav2Vec base
    │   └── schemas.py       # Pydantic models
    └── api/
        ├── routes/
        │   ├── analyze.py   # POST /analyze
        │   ├── voice_clone.py # POST /clone
        │   ├── health.py    # GET /health
        │   └── dev.py       # Developer tools
        └── caller/
            ├── intelligence.py # VAPI integration
            └── models.py    # Caller schemas

Frontend — Next.js

frontend/
├── package.json             # Node deps
├── next.config.ts           # Next.js config
├── public/
│   ├── papers/              # 5 research PDFs
│   └── laia-technology-report.html
└── src/
    ├── app/
    │   ├── page.tsx         # Main landing page
    │   ├── dashboard/       # Developer dashboard
    │   └── api/proxy/       # Backend proxy routes
    ├── components/
    │   ├── ui/              # Shadcn components
    │   ├── audio/           # Recording UI
    │   └── analysis/        # Results display
    ├── lib/
    │   ├── api.ts           # API client
    │   ├── types.ts         # TypeScript types
    │   └── server/
    │       └── backendProxy.ts # Proxy util
    ├── store/
    │   └── analysisStore.ts # Zustand state
    └── hooks/               # Custom React hooks

Research & Training

src/
├── models/                  # Model architectures
├── training/
│   ├── trainer.py           # Training loop
│   ├── utils.py             # Checkpoints, seeds
│   └── callbacks.py         # Early stop, TB
├── data/
│   ├── datasets/            # Dataset classes
│   ├── loaders/             # DataLoader wrappers
│   └── preprocessing/       # Audio processing
└── voice_synthesis/         # XTTS-v2 cloning

config/
├── training_config.yaml     # Hyperparameters
└── ab_testing.yaml          # A/B test design

scripts/
├── train/                   # Training scripts
├── evaluation/              # Eval & benchmarks
└── download/                # Dataset download

reproducibility/docker/
├── docker-compose.yml       # Multi-service
├── docker-compose-gpu.yml   # GPU version
└── Dockerfile.research      # Research env

REST API Endpoints

Complete API reference for integrating Laia Voice AI into your applications. Base URL: http://localhost:8081

POST /api/v1/analyze Rate limit: 10/min

Upload audio and receive gender, age, accent, and emotion classification with confidence scores.

Request

Content-Type: multipart/form-data

file: <audio_file>  # WAV, MP3, FLAC, OGG, WebM
                     # Max 10MB, 1-30s duration
                     # Resampled to 16kHz mono

Response

{
  "gender": {
    "prediction": "male",
    "confidence": 0.989,
    "all_probabilities": {"male": 0.989, "female": 0.01}
  },
  "age": { "prediction": "middle", "confidence": 0.85 },
  "accent": {
    "prediction": "castellano",
    "region": "center",
    "region_name": "Castellano (Madrid)",
    "confidence": 0.76,
    "phonetic_markers": "theta, seseo"
  },
  "emotion": {
    "prediction": "neutral",
    "intensity": "medium",
    "confidence": 0.82
  },
  "processing_time_ms": 450,
  "audio_info": { "duration_seconds": 5.2 }
}
POST /api/voice/clone Rate limit: 10/min

Clone a voice from a reference audio sample. Returns synthesized speech in the cloned voice.

Request (form-data)

text: "Hola, bienvenido"  # max 800 chars
reference_audio: <file>  # 10s reference
language: "es"           # es|ca|eu|gl
quality_preset: "balanced"
  # fast:    temp=0.85, top_k=80
  # balanced: temp=0.65, top_k=50
  # high_quality: temp=0.45, top_k=30

Response

{
  "audio_url": "data:audio/wav;base64,...",
  "processing_time_ms": 2500,
  "model": "xtts_v2",
  "sample_rate": 24000,
  "quality_metrics": {
    "mos_score": 4.21,
    "similarity": 0.92,
    "naturalness": 0.88
  }
}
GET /health

Health check. Returns model load status and API version.

GET /api/v1/models

Returns loaded models, versions, and architecture details.

POST /api/caller/profile

VAPI caller intelligence — full caller profiling for agent personalization.

GET /api/v1/dev/*

Developer tools: file browser, metrics, model info, file content preview.

Model Deep Dive

Detailed architectures, class names, and specifications for every model in the pipeline.

Gender Detection

98.89% VERIFIED

backend/app/models/gender_model.py — class GenderDetectionModel

Input: Audio (batch, 1, samples) @ 16kHz
   ↓
Wav2Vec 2.0 Large
   facebook/wav2vec2-large
   960M params, hidden=1024
   ↓
Temporal Average Pooling
   (batch, time, 1024) → (batch, 1024)
   ↓
Classifier Head
   Linear(1024 → 256) + ReLU + Dropout(0.3)
   Linear(256 → 128)  + ReLU + Dropout(0.3)
   Linear(128 → 3)
   ↓
Output: [male, female, non-binary]
Performance
98.89% test / 99.90% validation
LibriSpeech — 251 speakers, 100h
Specs
Inference: ~100ms • Training: 30 epochs, lr 2e-5
Optimizer: AdamW • Scheduler: linear warmup
Key Methods
forward(audio) → (logits, probs)
predict(audio) → Dict

Age Detection

TRAINING IN PROGRESS

backend/app/models/age_model.py — class AgeDetectionModel

Input: Audio (batch, 1, samples) @ 16kHz
   ↓
CNN Feature Extractor
   MFCC 40 coefficients
   Pitch, rate, energy features
   ↓
Transformer Encoder
   6 layers, 8 heads, hidden=512
   ↓
Attention Pooling + MLP
   1024 → 512 → 256 → 5
   ↓
Output: [18-25, 26-35, 36-45, 46-55, 56+]
Target
5-group classification
VCTK + LibriSpeech corpora
Specs
Params: 12.4M • Inference: ~95ms
Training: 50 epochs, batch 32, lr 1e-3
Optimizer: AdamW + cosine annealing

Accent Detection

TRAINING IN PROGRESS

backend/app/models/accent_model.py — class AccentDetectionModel

Input: Audio (batch, samples) @ 16kHz
   ↓
Wav2Vec 2.0 XLSR-53
   facebook/wav2vec2-large-xlsr-53
   960M params, multilingual pretrain
   ↓
Multi-head Attention Pooling
   Attention weights: Linear(1024→1)
   Softmax over time dimension
   ↓
Classifier
   Linear(1024→512→256→8)
   ↓
Output: 8 Spanish regional accents
8 Spanish Regions
Castellano (Madrid) • Andaluz • Catalán-accented
Gallego-accented • Vasco-accented • Canario
Murciano • Valenciano-accented
Specs
Inference: ~150ms • Training: 40 epochs
Dataset: Common Voice Spanish (1,850 spk, 320h)
Multi-task loss: age 0.25, gender 0.35, accent 0.40

Emotion Detection

INTEGRATED

backend/app/models/emotion_detector.py — class EmotionDetector

Input: Audio @ 16kHz
   ↓
Wav2Vec 2.0 Base
   facebook/wav2vec2-base
   Hidden size: 768
   ↓
Attention Temporal PoolingMLP Classifier
   768 → 256 → 128 → 6
   ↓
Output: [happy, sad, angry,
         fear, surprise, neutral]
   + intensity: low|medium|high
Training Data
RAVDESS • IEMOCAP • EMODB • MSP-Podcast
Augmentation
Noise injection • Speed perturbation • Pitch shift
SpecAugment • Time stretch ±15%

Model Manager — Lazy Loading Architecture

backend/app/models/model_manager.py — Singleton pattern, loads models on first /analyze request

Device Support
CPU (default) • CUDA • MPS (macOS Metal)
Error Handling
Individual model failures don't block pipeline
Cache Directory
.cache/models/
Audio Preprocessing
16kHz mono • soundfile/torchaudio decode

Datasets & Training Pipeline

Dataset implementations, preprocessing, and training configuration details.

LibriSpeech

TaskGender detection (primary)
Speakers251 (test) / 2,458 (full)
Hours100h (test) / 960h (full)
LanguageEnglish
LabelsMale / Female
ClassLibriSpeechGenderDataset
Pathsrc/data/datasets/

Common Voice Spanish

TaskAccent detection
Speakers1,850+
Hours320h
Regions8 Spanish accents
SourceMozilla Foundation
ClassCommonVoiceDataset
Pathsrc/data/datasets/

Common Voice Iberian

TaskCross-lingual voice cloning
Catalan45h
Basque12h
Galician18h
UseZeroVoice low-resource eval

VCTK Corpus

TaskAge + gender detection
Speakers110 (48% M, 52% F)
Hours44h, studio-quality
Age range18-77 years
QualityStudio recording, 48kHz

Training Pipeline

Trainer Class
src/training/trainer.py

TrainingConfig:
  epochs, batch_size, lr
  scheduler: "cosine"
  early_stopping: True
  patience: 10
  device: "mps" | "cuda" | "cpu"
Audio Augmentation
src/data/preprocessing/

Pitch shift: ±2 semitones
Time stretch: 0.9-1.1x
Noise (SNR 10-30dB)
SpecAugment
Gain: ±3dB
Checkpoints & Logging
src/training/callbacks.py

EarlyStoppingCallback
CheckpointCallback
TensorBoardCallback

Checkpoint dir:
/Volumes/SD/laia-voice/
  models/checkpoints/
Config File
config/training_config.yaml

sample_rate: 16000
max_length: 10.0s
label_smoothing: 0.1
class_weights: "balanced"
optimizer: "adamw"
metrics: accuracy, F1,
  precision, recall, CM

Dependencies & Quick Setup

Everything you need to run the Laia platform locally or in Docker.

Python Backend

# Core ML
torch >= 2.0.0
torchaudio >= 2.0.0
transformers >= 4.33.0, < 4.40.0
datasets >= 2.14.0

# FastAPI
fastapi >= 0.109.0
uvicorn[standard] >= 0.27.0
pydantic >= 2.5.0
pydantic-settings >= 2.1.0
slowapi >= 0.1.9

# Audio
soundfile >= 0.12.1
librosa >= 0.10.0

# Voice Synthesis
TTS >= 0.22.0  # Coqui XTTS-v2

# Data Science
numpy, pandas, scipy, scikit-learn
cd backend
python -m venv venv && source venv/bin/activate
pip install -r requirements.txt
python main.py  # → http://localhost:8081

Node.js Frontend

# Core
next: 16.1.6
react: 19.2.3
typescript: 5

# UI & Styling
tailwindcss: 4
shadcn: 4.0.0
lucide-react: 0.577.0
framer-motion: 12.35.1

# State & Data
zustand: 5.0.11
recharts: 3.8.0

# Utilities
class-variance-authority: 0.7.1
clsx: 2.1.1
tailwind-merge: 3.5.0
cd frontend
npm install
npm run dev  # → http://localhost:4300

Docker Deployment

Multi-service Docker Compose setup at reproducibility/docker/

docker-compose up demo

FastAPI on :8000

docker-compose up training

GPU training service

docker-compose up tensorboard

TensorBoard on :6006

docker-compose up laia-research

Jupyter on :8888

Base Image
nvidia/cuda:12.1.0-cudnn8-runtime-ubuntu22.04
Ports
8000 (API) • 8888 (Jupyter) • 6006 (TensorBoard)
GPU Config
docker-compose-gpu.yml for NVIDIA GPU access

Team & Contact

The researchers and engineers behind Laia Voice AI Platform.

EZ

Enrique Zueco

Research Lead

ML

Miguel Laguna

Engineering

Laia Smart Solution SL

Zaragoza, Spain