Repository navigation
Releases: janosdios/langteacher
Releases · janosdios/langteacher
Release list
v1.2.0
Added
- Input method and output method choice at the start of every session,
asked right after native language and saved toconfig.<hostname>.ini
alongside your other picks. Input can be voice (microphone + speech
recognition, the previous default) or text (typed at a prompt); output
can be voice (spoken aloud) or text (printed only). Choosing text for
either side skips its device-selection prompt and, at startup, its model
preload (Whisper for text input, the TTS voice model for text output),
so a text-only session starts faster and needs no microphone or speaker.
Changed
- In role-play mode, the tutor now introduces herself by name and role
together once the scenario starts, so her fixed tutor persona and the
in-scene character (e.g. a waiter, a shopkeeper) stay linked from the
first line instead of only being connected implicitly.
v1.1.0
Added
- Practice-mode selection at the start of every session: free conversation,
role-play, vocabulary quiz, translation practice, or a custom goal. In
role-play mode the tutor asks the student for a scenario and which of the
two roles they want to play, then stays in character for the rest of the
session. Built-in modes live in the newpractice_modes.py; a custom goal
is read from a.mdfile the student drops incustom_goals/(see
custom_goals/put_custom_goal_files_here.txt), listing the 5 most
recently modified files to choose from. The choice is asked fresh on
every startup and is never saved toconfig.<hostname>.ini. Custom goal
files can reference{NATIVE_LANGUAGE}/{TARGET_LANGUAGE}, substituted
with the session's actual languages, and can be as short as one line or a
full multi-paragraph drill with its own instructions -- the goal's text is
given to the tutor on its own line rather than wrapped inline in quotes, so
longer, structured goals stay readable in the assembled prompt. --practice-mode <mode>and--custom-goal <filename>flags for both
main.pyandllm_engine.py's standalone CLI, for scripted/non-interactive
runs. Passing--practice-modeskipsmain.py's interactive picker
entirely; an invalid mode, or--practice-mode customwithout a
--custom-goalnaming an existing file incustom_goals/, prints a clear
error and exits immediately instead of falling back silently. Passing
--custom-goalalone, with no--practice-mode, impliescustommode.--native-lang <language>flag forllm_engine.py's standalone CLI,
mirroring--lang-target/--level.--debugflag formain.py, enabling debug-level logging across all
engines (including the full assembled tutor system prompt on every turn),
and forllm_engine.py's,tts_engine.py's, andrag_engine.py's own
standalone CLIs.
Full Changelog: v1.0.0...v1.1.0
v1.0.0
First stable release. LangTeacher is a voice-based language tutor that runs entirely on your own hardware, verified on macOS, Windows, Linux, and Raspberry Pi 5+.
Changes since v0.1.0
- Split requirements for a lighter Raspberry Pi install
- Resample audio to the output device's native rate before playback
- Route STT test playback through a chosen device, add
--debugflag - Suffix log/transcript filenames with the machine's hostname
- Fix log encoding by specifying UTF-8 for log files and settings
- Fix missing vocabulary translations for genderless target languages
- Fix nonsensical vocabulary quiz prompts asking to translate a word already given in the target language
- Suppress noisy but non-fatal console output on the Pi
- Add CHANGELOG.md, version.py,
--versionflag, and bump_version.py - Documentation updates (Raspberry Pi push-to-talk/Wayland limitation,
stt_engine.pyflags) - Minor bug fixes and cleanup
v0.1.0
Full Changelog: https://github.com/janosdios/langteacher/commits/v0.1.0