Repository navigation
Plan Audio Drills
Source of truth: this wiki page.
Written 2026-10-05.
Hands-free audio drills (Pimsleur): prompt → pause → native answer, playable with screen off. an on-demand feature.
Decided with the owner:
-
Answers are graded for the listening and speaking skills. If grading
does not work with the screen off, the app says so and offers the choice.
I read "provide option to keep screen off" as offering both:
- keep the screen on, dimmed, and graded;
- or keep it off, and not graded.
- New words too: the drill introduces new words by ear, Pimsleur-style, and repeats them at growing gaps within the session.
-
Background playback uses the
audio_serviceplugin (MIT, 0.18.19), which the owner approved.
-
Speech is the phone's own:
flutter_ttsfor voices,speech_to_textfor recognition (ADR-0014). Both run while the app is open; nothing plays in the background. - The listening and speaking skills each have their own schedule. The speaking drill already grades what the recogniser heard, and names the sound when the learner said the word next to it.
- The Sound switch, the volume message and autoplay (ADR-0026) all apply.
- There is no media notification, and no lock-screen or headphone control.
Started on demand, from Today or a language's page, for a chosen length, such as 10, 20 or 30 minutes. It mixes two kinds of item:
-
Speaking:
- a prompt in the learner's language: "How do you say: milk?";
- a pause while the learner says it, and the phone listens;
- the answer in the language's voice, said twice.
-
Listening:
- the word or phrase in the language's voice;
- a pause while the learner says what it means, and the phone listens in the learner's language;
- the meaning.
New words are introduced by ear: heard twice, then said after the voice. Each is then asked again at growing gaps within the session, roughly seconds, then a minute, then several minutes, as Pimsleur's graduated recall does.
-
audio_service:- a foreground service with a media notification;
- controls for pause, skip and stop, from the lock screen and from headphones;
- started while the app is open, as Android requires.
- The queue: due listening and speaking pairs first, then new words, to the chosen length.
-
Grading:
- each answer is heard by the recogniser and graded as the speaking drill grades it, in the target language for speaking and in the learner's language for listening;
- grades are recorded as those skills' reviews;
- a new word introduced counts as taught.
-
With the screen off: Android limits the microphone in the
background. The service declares that it uses the microphone, and the
app checks once whether recognition works with the screen off.
- If it does not, the app says so and offers the choice above.
- Ungraded items are not recorded.
- Voices: a voice is needed in the learner's language too, for the prompts. Without one, or without a voice for the language learnt, the drill says so and does not start.
- Tests for the queue, the gaps for new words, grading both ways, the ungraded fallback, and the controls.
- How long the pause before the answer is, fixed or growing with the item.
- Where it is started: Today, a language's page, or both.
- Whether it stops at the end of a time, or after a number of items.
About 12–16 hours. Confidence: low, until it is tried on phones of different Android versions with the screen off.
See also: Roadmap · Plans-Index · Home
1. Learner guides
- Learner Guide
- Getting Started
- Today and Daily Lessons
- Drills and Skills
- Courses and Paths
- Proficiency Levels
- Scripts and Readings
- Readings ISO 15919
- Speaking and Listening
- Progress and Stats
- Profiles and Settings
- Backup and Restore
- Reporting a Problem
2. Deck building guides
- Deck Building Guide
- Deck Format
- Romanising Indic Languages
- Deck Licences and Quoted Books
- Deck Tools
3. Review guides
4. Translation guide
5. Building on iOS
6. Roadmap
7. Sources and attributions
8. Contribution and agentic coding