1bit.MONSTERDocs GitHub ↗

Voice-Trained Tutor: Training an Agent from a Real Teacher's Audio

Goal: an AI math tutor whose pedagogy (not just content) comes from a real human teacher — trained on their audio, so prosody, pacing, and encouragement (inflection) are learned, not synthesized. Research summary, pipeline, and recording spec. No AI-generated "teaching style" — the teacher's own voice and moves are the training signal.

Why audio (not text)

Text fine-tuning captures what a teacher says but not how. Full-duplex speech models trained on spoken dialogue learn paralinguistics directly (tone, timing, overlap, encouragement) because there is no text bottleneck. OpenAI's GPT-4o / Google's Gemini Live do this closed-source; open options exist.

Open models that support full-audio fine-tuning

Model Why Training
Moshi (Kyutai, MIT) Speech-text foundation model; full-duplex (handles overlap/interruption); prosody learned end-to-end kyutai-labs/moshi-finetune: stereo audio (teacher L / student R) → dataset → LoRA. 7B, one A100 80GB comfortable
Qwen3-Omni (30B-A3B) Stronger general model, audio in/audio out LoRA/QLoRA (reportedly fits 24GB), ms-swift / LLaMA-Factory; data = interleaved audio clips + text JSONL
MiniCPM-o 2.6 8B, lighter omni model Audio fine-tuning via LLaMA-Factory (mllm_audio_demo format)

Closed (no fine-tuning access): GPT-4o, Gemini Live.

The verbal training loop

1. RECORD      Real teacher + student, two mics, stereo (see spec below).
2. AUTO-DATA   moshi-finetune: VAD → align channels → Mimi audio tokens.
               Optional ASR transcripts = auxiliary text stream (stabilizes
               training, enables text prompts too).
3. TRAIN       LoRA SFT on Moshi (~7B). Start with 10–50 hrs of audio.
4. EVAL        Listening is the only honest eval: teacher rates generated
               sessions (blinded) vs base model.
5. ITERATE     Bad turns → find similar real audio → add → retrain.

Single-mic fallback: speaker diarization

Diarization ("who spoke when") is standard in WhisperX (open, local, pyannote), Otter, Rev, Fireflies, Descript, MS Word transcribe, newer Whisper.

Key rule: the training signal is the audio slices, not the transcript. Cut the original audio at diarization boundaries and reassemble into teacher-channel / student-channel stereo. Transcript is only the auxiliary text.

Caveats:

Recording spec (stereo path — makes diarization optional)

Serving

Voice models do NOT run on the 1bit-MONSTER text engine — serving is a separate stack (Moshi's own inference / vLLM for Qwen3-Omni). Training is GPU work regardless; the engine is irrelevant until a text-only distillation is wanted.

Ceilings

ConvoLearn (Stanford, MIT, masharma/convolearn on HF): 2,134 dialogues typed by 323 credentialed teachers against a simulated student (Gemini-1.5-Pro), labeled across 6 dialogic dimensions (cognitive engagement, formative assessment, accountability, cultural responsiveness, metacognition, power dynamics), with effectiveness/completeness ratings. QLoRA on Mistral-7B over the 1,250-dialogue HQ subset ≈ Claude Sonnet 4.5 in blinded teacher ratings. Format lesson: progressive samples — predict each teacher turn given all prior context. Same filtering lesson: keystroke-rate check to catch pasted AI text; dual-annotator quality screening.