Skip to content

Repository files navigation

French Learning Pipeline

A personal phrase-bank tool for spoken French. Ingests content (subtitles, YouTube videos, pasted text/news), tracks new vocabulary in a personal dictionary, and generates ready-to-use French phrases (conversation starters, reactions to news, opinions, descriptions of what you're consuming) with TTS audio, pushed live into Anki.

See /home/joe/.claude/plans/tranquil-juggling-canyon.md for the full design plan.

Setup

  1. Install AnkiConnect in Anki (Tools → Add-ons → Get Add-ons… → code 2055492159 → restart Anki). Verify:
    curl -s http://localhost:8765 -X POST -d '{"action": "version", "version": 6}'
    
  2. Create the virtualenv and install dependencies:
    python3 -m venv .venv
    .venv/bin/pip install -r requirements.txt
    .venv/bin/python -m spacy download fr_core_news_sm
    
  3. Copy .env.example to .env and fill in your ElevenLabs API key and chosen voice ID. Never commit .env.
  4. Initialize the database:
    sqlite3 data/french.db < french_learning/dictionary/schema.sql
    
  5. Create the Anki deck + note type:
    .venv/bin/python scripts/setup_anki.py
    

Usage

  • Drop a subtitle file, YouTube URL, or pasted text and run /process-content <source> in Claude Code to extract vocab and draft phrases.
  • Or just ask in conversation ("how do I say...") and Claude will draft a phrase directly.
  • scripts/generate_audio.py — generate TTS for approved phrases.
  • scripts/push_to_anki.py — push phrases with generated audio into Anki.
  • french_learning/tui — browse/curate the phrase bank and dictionary.

About

Personal French phrase-bank pipeline: content ingestion, vocab tracking, Claude-drafted spoken-French phrases, ElevenLabs TTS, AnkiConnect push, Textual TUI

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages