/experiments/corpus/

The 38 synthetic voice memos used throughout Module 2 (scripts and answer key in memos.json, names.md, transcripts from Grok and a second ASR API)

Files in this folder

File / folderDescriptionSize
๐Ÿ“ ../Up one level-
๐Ÿ“ audio/Subfolder-
๐Ÿ“„ MAPPING.md5.5 KB
๐Ÿ“„ README.md6.9 KB
๐Ÿ“„ build_memos.py12.1 KB
๐Ÿ“„ lines.json10.4 KB
๐Ÿ“„ memos.json12.2 KB
๐Ÿ“„ name_scores.json2.0 KB
๐Ÿ“„ score_names.py2.5 KB
๐Ÿ“„ transcribe.py2.2 KB
๐Ÿ“„ transcripts_compat.json9.5 KB
๐Ÿ“„ transcripts_grok.json9.5 KB
๐Ÿ“„ transcripts_grok_terms.json9.5 KB
๐Ÿ“„ tts.log7.8 KB

README.md

Experiment corpus: 38 synthetic voice memos (English edition)

This is the shared input for the English module 2 experiments (2.1โ€“2.9). It holds 38 short voice memos in natural spoken American English, each 40โ€“90 words, recorded as if someone were talking into a phone. Every person in them is fictional. The memos mirror the Chinese corpus one to one: the ids are the same, and each memo does the same job its Chinese twin does. See MAPPING.md.

Across the 28 W+L memos there are 31 name mentions and 22 term mentions, the same per-role and per-term counts as the Chinese corpus. "I mean" appears in 11 of the 28 W+L memos and in 4 of the I memos. The scripts have no um/uh, because the ASR strips them anyway.

How the audio was made

The memos are read in the author's voice. This is a voice clone the author consented to, made with local Qwen3-TTS (Qwen/Qwen3-TTS-12Hz-1.7B-Base, via tts-clone qwen-clone on Apple Silicon). The clone works across languages: the reference recording is the author speaking Chinese. That recording lives in the private/ directory of the tts_clone_skill project and is not distributed. Synthesis is free and local, and took about 20 minutes for 38 memos (tts.log).

Files

Scoring rules

Reproduce

# 0. (optional) regenerate memos.json and lines.json from build_memos.py
.venv/bin/python experiments_en/corpus/build_memos.py
# 1. synthesize (needs the local tts-clone and the private reference audio)
tts-clone qwen-clone --ref-audio <reference.wav> --ref-text-file <reference.txt> \
  --lines-file experiments_en/corpus/lines.json --out-dir experiments_en/corpus/audio/
# 2. transcribe, three ways (skips any transcripts_*.json that already exists)
op run --env-file experiments/aib.env -- .venv/bin/python experiments_en/corpus/transcribe.py
# 3. score
.venv/bin/python experiments_en/corpus/score_names.py

Results (2026-10-14)

ASR names right terms right (case-sensitive)
Grok, no vocabulary 5/31 14/22 (10)
OpenAI-compatible route 8/31 20/22 (17)
Grok, names and terms in terms 27/31 22/22 (20)

The Chinese baseline was 4/31 names in both raw engines, 19โ€“20/22 terms, and 21/31 names with terms.

Names.

Names that survive raw ASR.

Terms. Raw grok gets fewer terms right than in Chinese: Koyebโ†’Coyab, vLLMโ†’ValM/VLM, LoRAโ†’"Elora", VoiceFlowโ†’"voice flow". compat gets 20/22. With terms, grok gets every term (two are uppercase VLLM) and 27/31 names. The four misses are W03 Aoife (the phrase is gone), W07 Saoirse ("Source says"), W12 Kaveh (Kavish) and W20 Niamh (Nave).

Things to know about the transcripts.

Scores after the Niamh โ†’ Xochitl swap (W+L, 31 name mentions): grok 3/31, compat 6/31, grok with terms 28/31. Terms unchanged (grok 14/22, compat 20/22, grok with terms 22/22).