João Victor Carvalho
Machine Learning EngineerSpeech & LLM systemsKansas City · Central Time

I build speech AI for languages that were never written down, and the LLM agents that earn trust before they ship.

Technical lead at a speech-AI lab serving oral-language communities. I own the stack end to end: self-supervised acoustic units and vocoders, LLM Guide and Validator agents with an evaluation harness as the release gate, and the FastAPI backend and voice apps that five field products run on.

Start a projectLet's talk See the workFour case studies Open to full-time roles and contract work
João Victor Carvalho presenting the Tripod pipeline, next to a slide titled Honest Limitations
Missional AI Summit · Silicon Valley · 2026
speech → 100 discrete units → speech, no text in between vowel-likefricativenasalsilence
Move your pointer across the strip to change the unit resolution. This is the idea behind the Tripod pipeline: an acoustic tokenizer turns speech into a small vocabulary of units, a vocoder turns units back into a voice, and nothing in between needs an alphabet.

Three things I do well

Most of my work sits where research-grade speech models meet a product that real people, often with no written language and spotty connectivity, have to use every day. I take the whole problem: model, evaluation, backend, app.

01 · Speech

Speech AI for low-resource and unwritten languages

Text-free pipelines: self-supervised acoustic units (XEUS), motif tokenizers, pitch-conditioned unit vocoders (HiFi-GAN), ASR and TTS adaptation, data collection with speakers in the field.

Built the full Tripod speech pipeline and ran pilots with Terena and Sateré-Mawé speakers in Brazil.

02 · Agents

LLM agents you can actually ship

Multi-role agents on the Claude API with explicit tool boundaries, a validator role that refuses and redirects, and an evaluation harness (golden sessions, LLM judge, per-role cost accounting, budget gates) as the release gate.

Nothing reaches a field team until it passes the harness; the same pattern served 50+ enterprise clients at an ed-tech company.

03 · Product

Backends and voice-first apps around the model

FastAPI, SQLAlchemy and PostgreSQL on Cloud Run with auth, app-scoped access and migrations; Flutter apps for iOS, Android and web; React consoles for the team behind the model.

One shared backend behind five products, from audio capture to a screen-text-free LLM room.

Selected work

Each entry is the problem as the team had it, what I built, and what came out of it. The lab work is methods-level; the data and the languages' material stay with the communities.

Tripod speech pipeline

OBT Lab (YWAM Kansas City) · Dec 2025 – present
PyTorchXEUSHiFi-GAN v2BPE16 kHz
Problem

Communities with oral-only languages needed a way to produce and check translated speech with no writing system to lean on, and no existing model knew their language.

Built

A text-free pipeline end to end: an XEUS-based acoustic tokenizer with a vocabulary of 100 discrete units, a BPE motif tokenizer over those units, a pitch-conditioned HiFi-GAN v2 unit vocoder at 16 kHz, and Tripod Lab, the experiment-tracking and training dashboard with staged quality gates that decides what moves forward.

Result

A working speech-to-units-to-speech loop, pilots with Terena and Sateré-Mawé speakers, and a method the linguistics lead could turn into specifications and tickets for the rest of the team.

Internalization Room

OBT Lab · LLM agents in a screen-text-free room
Claude APIFlutterTTSSSELLM judge
Problem

Walk a translation team through a passage by voice alone, with an AI guide that helps without taking over, and a way to prove each prompt or model change did not make it worse.

Built

Guide and Validator roles on Claude with explicit tool boundaries, text-to-speech and server-sent events inside a Flutter room with no on-screen text; plus the evaluation harness: a fixed set of golden sessions replayed and scored by an LLM judge, per-role cost accounting and budget gates wired in as the release gate.

Result

Prompt and model changes ship only after the harness passes, with cost per session known before release. The same harness runs a regression suite over the agents' tool use.

One backend, five field products

OBT Lab · platform and apps
FastAPISQLAlchemyPostgreSQLCloud RunAlembicReact
Problem

Five products (Internalization Room, Facilitator Desk, Sound Necklace, Oral Collector, Annotation Studio) built by a small team, each needing auth, storage, access rules and secrets, without five backends.

Built

A shared FastAPI, SQLAlchemy and PostgreSQL backend on Google Cloud Run with authentication, app-scoped access control, Alembic migrations and Secret Manager; the Oral Collector Flutter app for monolingual audio capture on iOS, Android and web; and the React/TypeScript consoles (Tripod Console, Meaning Map UI, Annotation Studio for layer-wise studies of XEUS).

Result

One codebase the whole lab deploys from, with a multi-agent development workflow (isolated worktrees, dedicated reviewers, Linear) that lets two or three engineers ship like a larger team.

Multi-agent content generation for enterprises

Maria Educação, São Paulo · Nov 2024 – Nov 2025 · ML Engineer, Tech Lead (Jan–Mar 2025)
LLM agentsRAGMicroservicesCI/CD
Problem

Generate personalized educational content for dozens of enterprise clients with answers accurate enough to put in front of teachers and students.

Built

Multi-agent architectures and monitoring pipelines over enterprise content indexing, with human-in-the-loop validation; non-blocking microservices for generation; CI/CD for tests and linting. As Tech Lead, worked with the CTO to scale the ML products and bridged the product and engineering squads.

Result

Personalized generation for 50+ B2B clients with higher answer accuracy and lower operating cost.

maestri-flow

Open source · Claude Code + Maestri
PythonMCPLinearAgent skills
What

The setup I use to take a Linear ticket to a merged pull request with coding agents: agent skills, Maestri roles, a local decision inbox exposed over MCP so a human settles only the real decisions, and a single end-to-end test slot.

Most of this code is private, and the language material belongs to the communities who recorded it. I am glad to walk through architecture, evaluation results and code on a call.

How I work

Habits from shipping models to people who cannot file a bug report in writing.

Evaluation is the release gate

A prompt or model change is a code change. It ships when the golden sessions pass and the cost per session is known, not when it looks good in a demo.

Test first, then the feature

Backends and apps grow behind tests; migrations are proven by snapshot, upgrade and downgrade before they touch a database with field data.

Specs the whole team can read

I turn a linguist's method into specifications, tickets and acceptance criteria, and review the engineers' work against them.

Agents as teammates, with a human on the decisions

Isolated worktrees, one reviewer per task, and a decision inbox so the people decide only what the ticket and the docs do not settle.

Record

Speaker, Missional AI Summit, Santa Clara, CA
Presented the Tripod speech pipeline and its open problems to a closed session of organizations building AI for Bible translation.
2026
1st place, AWS DeepRacer for undergraduates
São Paulo, Brazil. Reinforcement learning on a physical track.
2023
5th in Brazil, AWS DeepRacer qualifiers
National phase at CSBC, the Brazilian Computing Society congress, among 150 participants.
2024
AWS DeepRacer instructor
Taught reinforcement learning to 20+ students at the Federal University of Ceará and ran a university-wide race with AWS.
2023–24
Published paper, CSBC
"Comparação de Desempenho entre Soluções de Interoperabilidade", on interoperability performance.
2022
Research, Insight Data Science Lab (Samsung/CRIA)
Explainable AI and health-insight features for Samsung smartwatches from sensor data and microservices.
2021–23

Education

B.S. Software Engineering, Federal University of Ceará
GPA 3.6/4.0 (9.0/10).
2020–25
Visiting student, University of São Paulo
NLP and deep learning, ICMC São Carlos.
2025–26
Languages
Portuguese (native), English (advanced).
Contact

Let's build something people can hear.

Have a speech or LLM problem with real users behind it? Send a few lines about the problem and the constraints, and we can take it from there.