Sostituisci Amazon Alexa con un sistema completamente privato e offline per controllare la tua musica Navidrome con comandi vocali in italiano.
Il Voice Assistant per Navidrome è un sistema completo di controllo vocale che ti permette di gestire la tua libreria musicale utilizzando comandi naturali in italiano, garantendo privacy totale e funzionamento completamente offline.
- 🔒 Privacy Totale: Funzionamento 100% offline, nessun dato inviato a servizi esterni
- 🎙️ Riconoscimento Vocale Avanzato: Strategia ibrida Vosk + Whisper per ottimale latenza/accuratezza
- 🇮🇹 Supporto Italiano: Elaborazione linguaggio naturale ottimizzata per comandi musicali italiani
- 🎵 Controllo Completo: Gestione artisti, album, playlist, volume, code di riproduzione
- 🌐 Interfaccia Web: Dashboard moderna per configurazione e monitoraggio
- ⚡ Performance Ottimizzate: Latenza < 200ms, accuratezza > 90%
- 🔧 Facile Installazione: Script automatizzato per setup completo
- Ubuntu 22.04 LTS (o distribuzione compatibile)
- Python 3.9+
- 4GB RAM (minimo 2GB)
- Microfono funzionante
- Server Navidrome attivo
# 1. Scarica il progetto
git clone https://github.com/voice-assistant/navidrome-voice.git
cd navidrome-voice
# 2. Esegui installazione automatica
chmod +x install.sh
./install.sh
# 3. Configura Navidrome
nano config/config.yaml
# Modifica username e password del tuo server Navidrome
# 4. Avvia il sistema
sudo systemctl start voice-assistant-navidrome
# 5. Accedi all'interfaccia web
# http://localhost:8080"Hey music, riproduci Beethoven"
"Metti un po' di jazz"
"Suona l'album Nona Sinfonia"
"Ascolta la playlist Favorites"
"Pausa" / "Metti in pausa"
"Riprendi" / "Continua"
"Stop" / "Ferma"
"Prossimo brano" / "Salta"
"Precedente" / "Torna indietro"
"Volume al 70%"
"Alza il volume"
"Abbassa il volume"
"Muto" / "Silenzia"
"Che cosa sta suonando?"
"Chi è l'artista?"
"Come si chiama questa canzone?"
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Microfono │───▶│ Audio Input │───▶│ Wake Word │
│ │ │ Manager │ │ Detection │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Navidrome │◀───│ Music │◀───│ Speech │
│ Server │ │ Controller │ │ Recognition │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│ │
┌──────────────────┐ ┌─────────────────┐
│ NLP Processor │◀───│ Text Processing│
│ │ │ │
└──────────────────┘ └─────────────────┘
- Audio Input Manager: Acquisizione e preprocessing audio
- Wake Word Detection: Rilevamento parole di attivazione personalizzabili
- Speech Recognition Engine: Motore ibrido Vosk + Whisper
- NLP Processor: Elaborazione linguaggio naturale per comandi musicali
- Music Controller: Gestione comandi e interfaccia con Navidrome
- Web Interface: Dashboard React per controllo e configurazione
| Configurazione | CPU | RAM | Storage | Rete |
|---|---|---|---|---|
| Minimo | 2 core, 1.5 GHz | 2 GB | 4 GB | 10 Mbps |
| Raccomandato | 4 core, 2.0 GHz | 4 GB | 8 GB SSD | 100 Mbps |
| Ottimale | 8 core, 3.0 GHz | 8 GB | 16 GB NVMe | 1 Gbps |
- Latenza Media: < 200ms per comandi comuni
- Accuratezza: > 90% in condizioni normali
- Throughput: 50+ comandi/minuto
- Uptime: > 99% con configurazione ottimale
- Utilizzo Risorse: < 500MB RAM su Raspberry Pi 4
# config/config.yaml
audio:
sample_rate: 16000
channels: 1
buffer_size: 1024
vad_threshold: 0.3
speech_recognition:
primary_engine: "vosk"
fallback_engine: "whisper"
confidence_threshold: 0.7
navidrome:
base_url: "http://localhost:4533"
username: "your_username"
password: "your_password"
system:
log_level: "INFO"
web_port: 8080Il sistema supporta wake word personalizzabili. Modifica la configurazione per utilizzare le tue frasi preferite:
wake_word:
enabled: true
words: ["hey music", "ok navidrome", "computer"]
threshold: 0.7L'interfaccia web fornisce controllo completo del sistema:
- Dashboard: Stato in tempo reale di tutti i componenti
- Controlli: Gestione manuale riproduzione e volume
- Configurazione: Setup guidato di tutti i parametri
- Statistiche: Metriche performance e utilizzo
- Monitoraggio: Log e diagnostica sistema
Accedi all'interfaccia su: http://localhost:8080
# Test completo del sistema
./test_system.sh
# Test specifici componenti
python test_suite.py
# Benchmark performance
python performance_optimizer.pyMicrofono non funziona:
sudo usermod -a -G audio $USER
pulseaudio --kill && pulseaudio --startErrore connessione Navidrome:
# Verifica connettività
curl http://localhost:4533
# Controlla configurazione
nano config/config.yamlPerformance degradate:
# Applica ottimizzazioni automatiche
python performance_optimizer.py- 📖 Documentazione Completa - Manuale tecnico dettagliato (50+ pagine)
- 🚀 Guida Rapida - Setup veloce in 5 minuti
- 🔧 API Reference - Documentazione endpoint REST
- 🛠️ Troubleshooting - Soluzioni problemi comuni
Il progetto è open source e accoglie contributi dalla community:
- Fork del repository
- Crea un branch per la tua feature (
git checkout -b feature/AmazingFeature) - Commit delle modifiche (
git commit -m 'Add some AmazingFeature') - Push del branch (
git push origin feature/AmazingFeature) - Apri una Pull Request
Questo progetto è rilasciato sotto licenza MIT. Vedi il file LICENSE per i dettagli.
- Vosk - Riconoscimento vocale offline
- OpenAI Whisper - Speech-to-text ad alta accuratezza
- openWakeWord - Wake word detection
- Navidrome - Server musicale moderno
- FastAPI - Framework web ad alte prestazioni
- 🐛 Bug Reports: GitHub Issues
- 💬 Discussioni: GitHub Discussions
- 📧 Email: support@voice-assistant.dev
🎵 Prendi il controllo della tua musica con la privacy che meriti! 🎵