File size: 1,398 Bytes
76db545
096b19d
 
 
 
76db545
ca322f7
520ca12
76db545
 
 
 
 
 
 
096b19d
76db545
 
096b19d
76db545
 
096b19d
76db545
096b19d
76db545
096b19d
76db545
096b19d
 
 
 
61e52d7
096b19d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
61e52d7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
---
title: Sahel-Voice-Lab
emoji: 🌍
colorFrom: blue
colorTo: green
sdk: gradio
sdk_version: "5.25.0"
app_file: app.py
hardware: cpu-basic
pinned: false
license: mit
tags:
  - bambara
  - fula
  - speech-recognition
  - language-learning
  - west-africa
  - low-resource-nlp
  - memory
---

# 🌍 Sahel-Voice-Lab — Internal Edition

**Phase 1 · The Memory Loop**

A self-learning voice assistant for Bambara and Fula. Teach it words — it remembers them forever.

## Stack (100% non-Meta)
| Component | Model |
|-----------|-------|
| STT | `openai/whisper-large-v3-turbo` |
| LLM | `Qwen/Qwen2.5-72B-Instruct` (set `LLM_MODEL_ID` env var to override) |
| TTS | Waxal — Phase 2 |
| Memory | HF Dataset `vocabulary.jsonl` |

## How it works
1. Press Push-to-Talk → speak in Bambara, Fula, French, or English
2. Whisper transcribes your speech
3. Gemma reads the vocabulary it has learned so far, then:
   - **Teaching mode**: detects "X means Y" → saves the word pair to the Hub
   - **Question mode**: answers using vocabulary as source of truth
   - **Conversation mode**: replies naturally
4. The last 5 learned words are always visible

## Space secrets required
| Key | Value |
|-----|-------|
| `HF_TOKEN` | Your HF write-access token |
| `FEEDBACK_REPO_ID` | `ous-sow/sahel-agri-feedback` |
| `LLM_MODEL_ID` | `Qwen/Qwen2.5-72B-Instruct` (or any HF Serverless-supported model) |