---
title: Ankira - German Dictation Trainer
emoji: ✍️
colorFrom: indigo
colorTo: green
sdk: gradio
sdk_version: 6.18.0
app_file: app.py
pinned: false
tags:
- track:backyard
- sponsor:modal
- achievement:llama
---
Linkedin post: https://www.linkedin.com/posts/michael-gamov_hackathon-hugginface-edtech-share-7472436888662966272-0TPq/?utm_source=share&utm_medium=member_desktop&rcm=ACoAAARyRM4B0zn7KlZSgZZbrgv0njDErnlWPuo
# Ankira: German Dictation Trainer
A mobile-first dictation trainer. Enter the words you want to practice, get a
short German dictation read aloud, write it by hand, then photograph your page
to see a word-level diff against the original.
Original plan included importing well-remembered words from Anki cards for practice, thus ANKIra.
# Models used
- https://huggingface.co/LiquidAI/LFM2.5-8B-A1B-GGUF
- https://huggingface.co/Qwen/Qwen3-VL-8B-Instruct-GGUF
- https://huggingface.co/bosonai/higgs-audio-v3-tts-4b
# Running
No models run in this Space — every inference is an HTTP call to a Modal
endpoint. Configure these as **Space secrets**:
| Secret | Points at |
| --- | --- |
| `MODAL_LLM_URL` | LFM2.5 llama-server base URL (OpenAI-compatible chat completions) |
| `MODAL_TTS_URL` | Higgs Audio v3 TTS (`/v1/audio/speech`; base URL also accepted) |
| `MODAL_OCR_URL` | Qwen3-VL llama-server base URL (multimodal chat completions) |
| `MODAL_KEY` | Modal proxy-auth token id (sent as the `Modal-Key` header) |
| `MODAL_SECRET` | Modal proxy-auth token secret (sent as the `Modal-Secret` header) |
`MODAL_KEY` and `MODAL_SECRET` go together: the endpoints are deployed with
`requires_proxy_auth=True`, and the client only sends the auth headers when both
are set. Create the token in the Modal dashboard (Settings → Proxy Auth Tokens).
# Our Team
- [@nofate](https://huggingface.co/nofater) Michael Gamov
- [@latticetower](https://huggingface.co/latticetower) Tatiana Malygina
# Demo