• OBSBOT DE
  • Pneumatici
  • Pneumatici
  • Europcar IT
  • OBSBOT DE
  • Caffè Vergnano
  • Pneumatici
  • OBSBOT DE
  • OBSBOT DE
  • OBSBOT DE
  • Tappeto.it
  • Europcar IT

Rhasspy 2.5 rilasciato: novità e miglioramenti per l'uso domestico

Rhasspy è l’assistente vocale open‑source più completo per chi desidera una soluzione completamente offline. La versione 2.5.0, pubblicata a inizio 2024, introduce cambiamenti strutturali, nuovi servizi e ottimizzazioni mirate a rendere più semplice e affidabile l’integrazione con i sistemi di automazione domestica più diffusi. Questo articolo fornisce una panoramica esaustiva, suddivisa in sezioni tematiche, per aiutare sia gli utenti esperti sia i neofiti a comprendere, installare e sfruttare al meglio le nuove funzionalità.


Indice dei contenuti

  • Panoramica di Rhasspy 2.5
  • Architettura a micro‑servizi
  • Novità principali
  • Miglioramenti di performance e stabilità
  • Guida all'installazione passo‑passo
  • Configurazione avanzata e profili lingua
  • Integrazione con Home Assistant, Node‑RED e MQTT
  • Esempi pratici di utilizzo domestico
  • Confronto con la versione 2.4
  • Best practice per la messa in produzione
  • Domande frequenti

Panoramica di Rhasspy 2.5

Rhasspy 2.5 è una suite di servizi indipendenti che comunicano tramite MQTT usando un’estensione del protocollo Hermes. Il design modulare permette di sostituire o personalizzare singoli componenti (Riconoscimento vocale, Intent parsing, TTS, ecc.) senza dover ricompilare l’intera piattaforma.

Le principali caratteristiche introdotte nella 2.5 includono:

  • Supporto nativo a WebSocket API per interazioni in tempo reale.
  • Nuovo servizio di wake‑word basato su Porcupine, più leggero e configurabile.
  • Ristrutturazione del profilo lingua con file .ini più leggibili.
  • Ottimizzazioni per Raspberry Pi 4, Jetson Nano e dispositivi Intel NUC.
  • Capacità di auto‑scalare i servizi in ambienti Docker‑Compose o Kubernetes.

Queste novità mirano a ridurre la latenza di risposta (sub‑200 ms in media), a migliorare la robustezza del sistema e a semplificare le operazioni di manutenzione.

Architettura a micro‑servizi di Rhasspy 2.5


Architettura a micro‑servizi

Con la versione 2.5, Rhasspy ha abbandonato il modello monolitico per adottare una architettura a micro‑servizi. Ogni componente è containerizzato e comunica tramite MQTT. La tabella seguente riassume i servizi principali e le loro responsabilità.

ServizioFunzioneProtocollo di comunicazioneOpzioni di sostituzione
Audio CaptureCattura audio dal microfono e lo invia al pipeline di elaborazione.MQTT (topic: rhasspy/audio)Alsa, PulseAudio, WASAPI
Wake‑wordRileva la parola di attivazione.MQTT (topic: rhasspy/wakeword/detected)Porcupine, Snowboy (legacy)
Speech‑to‑Text (STT)Trascrive l’audio in testo.MQTT (topic: rhasspy/stt/text)Kaldi, Vosk, DeepSpeech
Intent ParserAnalizza il testo e genera l’intent JSON.MQTT (topic: rhasspy/nlu/intent)Hermes, Snips NLU, Rasa
Text‑to‑Speech (TTS)Converte il testo di risposta in audio.MQTT (topic: rhasspy/tts/audio)eSpeak, Pico, Coqui TTS
Web UIInterfaccia grafica per configurazione e test.HTTP + WebSocketDocker‑Compose, Portainer

Questa separazione consente di aggiornare o sostituire singoli servizi senza interrompere l’intera piattaforma, riducendo al minimo i tempi di inattività.


Novità principali di Rhasspy 2.5

1. Wake‑word basato su Porcupine

Il nuovo motore di wake‑word utilizza Porcupine, una libreria leggera e cross‑platform sviluppata da Picovoice. Le caratteristiche chiave includono:

  • Consumo di meno del 30 % delle risorse rispetto a Snowboy.
  • Possibilità di addestrare parole chiave personalizzate tramite l’interfaccia web.
  • Supporto nativo per ARM64 e x86_64.

2. Supporto esteso a lingue e dialetti

Oltre alle lingue già supportate (inglese, tedesco, spagnolo, francese, italiano, ecc.), la versione 2.5 aggiunge:

  • Italiano (dialetto napoletano) – modello STT dedicato.
  • Portoghese (Brasile) – vocabolario NLU aggiornato.
  • Polacco – integrazione con il modello Vosk.

I profili lingua sono ora contenuti in file .ini più leggibili, facilitando la personalizzazione e la condivisione.

3. API WebSocket bidirezionale

La nuova API WebSocket permette di:

  • Inviare comandi di test in tempo reale dalla UI senza ricaricare la pagina.
  • Ricevere eventi di intent e audio direttamente nel browser.
  • Sviluppare applicazioni client personalizzate (es. dashboard domotiche) con latenza inferiore a 100 ms.

4. Sistema di logging centralizzato

Ogni servizio ora invia i propri log a un topic MQTT dedicato (rhasspy/logs/+), permettendo di aggregare e visualizzare i messaggi tramite strumenti come Grafana Loki o ELK Stack. Il nuovo Log Viewer integrato nella Web UI consente di filtrare per servizio, livello di severità e intervallo temporale.

5. Auto‑scaling con Docker‑Compose

Il file docker-compose.yml fornito include opzioni di replica per i servizi più pesanti (STT, TTS). È possibile impostare il numero di repliche con la variabile REPLICAS e il sistema distribuirà automaticamente le richieste tramite il broker MQTT.


Miglioramenti di performance e stabilità

Oltre alle novità funzionali, Rhasspy 2.5 introduce una serie di ottimizzazioni tecniche:

  • Riduzione della latenza di riconoscimento da 300 ms a 180 ms su Raspberry Pi 4 (CPU 1.5 GHz, 2 GB RAM).
  • Gestione migliorata della memoria grazie a buffer audio dinamici, evitando overflow in caso di rumore continuo.
  • Supporto a GPU NVIDIA Jetson per accelerare il modello Kaldi con TensorRT.
  • Riconnessione automatica al broker MQTT in caso di perdita di rete, con back‑off esponenziale.
  • Aggiornamenti di sicurezza per le dipendenze Python (≥ 3.11) e librerie C++.

Questi miglioramenti rendono Rhasspy più adatto a scenari “always‑on” dove la disponibilità è critica (es. assistenza per persone con disabilità).


Guida all'installazione passo‑passo

Di seguito è riportata una procedura completa per installare Rhasspy 2.5 su una Raspberry Pi 4 (OS Raspberry Pi OS 64‑bit). La stessa procedura è valida, con leggere variazioni, per altre piattaforme Linux.

Prerequisiti hardware e software

  1. Raspberry Pi 4, modello 2 GB o superiore.
  2. Microfono USB a bassa latenza (es. Blue Snowball).
  3. Connessione a rete locale (cavo Ethernet consigliato).
  4. Docker Engine ≥ 20.10 e Docker‑Compose ≥ 2.5.

Passo 1 – Installazione di Docker e Docker‑Compose

sudo apt update && sudo apt upgrade -ysudo apt install -y ca-certificates curl gnupg lsb-releasecurl -fsSL | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpgecho "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] \ $(lsb_release -cs) stable" | \sudo tee /etc/apt/sources.list.d/docker.list > /dev/nullsudo apt updatesudo apt install -y docker-ce docker-ce-cli containerd.iosudo usermod -aG docker $USERnewgrp dockerdocker version

Installa Docker‑Compose:

sudo curl -L " -s)-$(uname -m)" \ -o /usr/local/bin/docker-composesudo chmod +x /usr/local/bin/docker-composedocker-compose version

Passo 2 – Creazione della cartella di progetto

mkdir -p ~/rhasspy && cd ~/rhasspy

Passo 3 – Scaricare il file docker‑compose.yml di Rhasspy 2.5

cat > docker-compose.yml <<'EOF'version: '3.8' services: mqtt: image: eclipse-mosquitto:2 container_name: rhasspy_mqtt restart: unless-stopped ports: - "1883:1883" volumes: - ./mosquitto/config:/mosquitto/config - ./mosquitto/data:/mosquitto/data rhasspy: image: rhasspy/rhasspy:2.5.0 container_name: rhasspy_core restart: unless-stopped depends_on: - mqtt ports: - "12101:12101" # Web UI - "12321:12321" # Audio (optional) environment: - LANG=en - PROFILE=en - MQTT_HOST=rhasspy_mqtt - MQTT_PORT=1883 volumes: - ./profiles:/profiles - ./config:/etc/rhasspyEOF

Passo 4 – Configurare il profilo lingua

Copia il profilo italiano predefinito e personalizzalo:

mkdir -p profiles/itdocker run --rm -v $(pwd)/profiles/it:/profiles rhasspy/rhasspy:2.5.0 \ --profile it --download-profile

Il file settings.ini all’interno della cartella profiles/it può essere modificato per attivare il nuovo wake‑word Porcupine o cambiare il modello STT.

Passo 5 – Avviare i container

docker-compose up -d

Verifica che i container siano in esecuzione:

docker ps

Passo 6 – Accesso alla Web UI

Apri il browser e naviga verso . La schermata di benvenuto ti guiderà nella configurazione della sorgente audio e nella prova del wake‑word.

Box riassuntivo – Checklist rapida

Checklist di installazione
  • Docker e Docker‑Compose installati.
  • File docker-compose.yml presente nella directory di lavoro.
  • Profilo lingua configurato (es. profiles/it).
  • Porta 12101 aperta nella rete locale.
  • Microfono riconosciuto dal container (verifica con arecord -l).

Configurazione avanzata e profili lingua

Rhasspy 2.5 permette di personalizzare quasi ogni aspetto dell’assistente. Di seguito le impostazioni più rilevanti, suddivise per categoria.

Wake‑word

ParametroValore di defaultDescrizione
wake_wordporcupineMotore di attivazione (porcupine, snowboy, none).
porcupine_keyword_path/usr/share/porcupine/keyword/hey_rhasspy.ppnPercorso al file .ppn della parola chiave.
porcupine_sensitivity0.5Sensibilità (0‑1). Valori più alti aumentano i falsi positivi.

Per aggiungere una parola chiave personalizzata, carica il file .ppn nella cartella /profiles/it/wake-word e aggiorna il percorso nel file settings.ini.

Speech‑to‑Text (STT)

Rhasspy 2.5 supporta diversi back‑end STT. Il più consigliato per l’italiano è Vosk, in quanto non richiede GPU e ha una precisione superiore al 93 % su dataset di casa.

[stt]system=voskmodel=it

Se si dispone di una GPU NVIDIA, è possibile abilitare il modello Kaldi con supporto CUDA:

[stt]system=kaldimodel=ituse_cuda=true

Intent Parsing (NLU)

Rhasspy utilizza una sintassi basata su intent templates. Esempio di file intent.yaml per la gestione delle luci:

intents: LightState: - "[accendi|spegni] [la] luce [in] {room}"slots: room: - "soggiorno" - "cucina" - "camera"

Con la versione 2.5 è possibile includere espressioni regolari nei slot, migliorando la flessibilità:

slots: temperature: type: number range: "10-30"

Text‑to‑Speech (TTS)

Il motore di default è eSpeak NG, ma Rhasspy 2.5 aggiunge il supporto a Coqui TTS. Per attivarlo:

[tts]system=coquivoice=en_us/vctk

Coqui produce una voce più naturale, ma richiede più risorse CPU. È consigliato su piattaforme con almeno 2 GB di RAM.

Web UI personalizzata

È possibile modificare il file ui-config.json per aggiungere pulsanti personalizzati o cambiare il tema colore. Un esempio di configurazione per il tema scuro:

{"theme": "dark", "showAudio": true, "customButtons": [ {"label": "Apri garage", "intent": "OpenGarage"} ]}

Integrazione con Home Assistant, Node‑RED e MQTT

Rhasspy è progettato per comunicare con le piattaforme di automazione più diffuse. Di seguito le modalità di integrazione più comuni.

Home Assistant

Per collegare Rhasspy a Home Assistant, aggiungi il broker MQTT di Rhasspy come integration e configura il componente mqtt_eventstream in configuration.yaml:

mqtt: broker: 192.168.1.10 port: 1883 intent_script: LightState: speech: text: "Accendo la luce in {{ room }}" action: service: light.toggle data_template: entity_id: "light.{{ room }}"

In Home Assistant, il messaggio JSON inviato da Rhasspy (rhasspy/nlu/intent) viene tradotto automaticamente in un intent script.

Node‑RED

Node‑RED può ricevere gli intent tramite il nodo mqtt in sottoscrivendosi al topic rhasspy/nlu/intent. Un esempio di flow:

  1. Nodo mqtt in – topic: rhasspy/nlu/intent.
  2. Nodo switch – verifica il campo intent.name.
  3. Per LightState, usa un nodo call service di Home Assistant per accendere/spegnere la luce.

Il diagramma sottostante mostra il flusso completo.

Flow Node‑RED per gestire gli intent di Rhasspy

Messaggi MQTT di sistema

Rhasspy 2.5 aggiunge nuovi topic di monitoraggio:

TopicTipo di messaggioUso tipico
rhasspy/audio/recordedbinaryAudio raw registrato, utile per debug.
rhasspy/logs/+stringLog di tutti i servizi, filtrabili per livello.
rhasspy/wakeword/detectedjsonEvento di wake‑word con timestamp.
rhasspy/tts/audiobinaryAudio sintetizzato da inviare a speaker.

Questi topic consentono di costruire dashboard di monitoraggio in tempo reale con Grafana o di creare script di automazione personalizzati.


Esempi pratici di utilizzo domestico

Di seguito tre scenari tipici, completi di configurazione e flusso di dati.

Scenario 1 – Controllo luci con comando vocale

  1. Utente dice: “Accendi la luce in cucina”.
  2. Il microfono invia l’audio a Audio Capture.
  3. Il servizio Wake‑word riconosce “Hey Rhasspy”.
  4. Il servizio STT trascrive l’audio in testo.
  5. Il Intent Parser genera l’evento JSON:
    {"text": "accendi la luce in cucina", "intent": {"name": "LightState"}, "slots": {"state": "on", "room": "cucina"}}
  6. L’evento è pubblicato su rhasspy/nlu/intent e consumato da Home Assistant.
  7. Home Assistant attiva lo script light.toggle sull’entità light.cucina.
  8. Rhasspy invia un messaggio TTS “La luce in cucina è accesa” al topic rhasspy/tts/audio, che viene riprodotto dallo speaker.

Scenario 2 – Aggiornamento meteo personalizzato

Utilizzando le API locali di OpenWeatherMap (senza invio dati a terzi) è possibile creare un “intent” chiamato GetWeather:

intents: GetWeather: - "Qual è il meteo a {city}"slots: city: - "Roma" - "Milano" - "Napoli"

Il flusso:

  1. L’utente chiede “Qual è il meteo a Roma”.
  2. Rhasspy genera l’intent con slot city=Roma.
  3. Node‑RED riceve l’intent, chiama un nodo http request locale per recuperare il meteo.
  4. Il risultato (es. “15 °C, cielo sereno”) è inviato a Rhasspy tramite il topic rhasspy/tts/speak per la sintesi vocale.

Scenario 3 – Controllo avanzato di media player con playlist dinamiche

Con il servizio media_player di Home Assistant, è possibile gestire playlist vocali:

intents: PlayMusic: - "Metti la playlist {playlist}"slots: playlist: - "rock" - "classica" - "jazz"

Flusso:

  1. L’utente dice “Metti la playlist rock”.
  2. Rhasspy invia l’intent a Home Assistant.
  3. Lo script Home Assistant chiama il servizio media_player.play_media con l’URL della playlist corrispondente.
  4. Il media player riproduce la musica e Rhasspy conferma con “Sto riproducendo la playlist rock”.

Confronto tra Rhasspy 2.4 e 2.5

Di seguito una tabella comparativa dei punti chiave.

CaratteristicaRhasspy 2.4Rhasspy 2.5
Modello di wake‑wordSnowboy (legacy)Porcupine (default)
ArchitetturaMonolitica con pluginMicro‑servizi indipendenti
Supporto GPULimitato (solo CPU)Kaldi con CUDA, Jetson TensorRT
Latenza media (Raspberry Pi 4)≈ 300 ms≈ 180 ms
API WebSocketNoSì, bidirezionale
Log centralizzatiFile localeTopic MQTT + Viewer UI
Numero di repliche Docker1 per servizioScalabile (REPLICAS env)
Lingue aggiunte8+3 (napoletano, pt‑BR, pl)
Interfaccia di training wake‑wordLimitataEditor grafico integrato

Il passaggio a 2.5 è consigliato per chi necessita di maggiore scalabilità, bassa latenza e personalizzazione della parola di attivazione.


Best practice per la messa in produzione

  1. Isolare il broker MQTT: utilizza un broker dedicato (Mosquitto) con autenticazione username/password e TLS per proteggere i dati vocali.
  2. Monitorare le risorse: imposta alert su CPU > 80 % o RAM > 75 % usando Prometheus e visualizza i grafici in Grafana.
  3. Backup dei profili: copia periodicamente la cartella /profiles su storage esterno (es. NAS). Un semplice cron può automatizzare il processo.
  4. Ridurre il rumore di fondo: posiziona il microfono lontano da fonti di rumore (ventilatori, TV). Se necessario, abilita il filtro noise reduction in settings.ini.
  5. Test di regressione: usa lo script rhasspy-test (disponibile nella repo) per verificare che gli intent funzionino dopo ogni aggiornamento.
  6. Gestione delle versioni: conserva le versioni Docker con tag (es. rhasspy/rhasspy:2.5.0) per poter effettuare rollback rapidi.
  7. Sicurezza fisica: se il dispositivo è in un luogo pubblico, proteggi l’accesso alla porta 12101 con firewall o VPN.

Seguendo queste linee guida, è possibile garantire un funzionamento stabile e sicuro per settimane o mesi senza interventi manuali significativi.

Linkedin

Potrebbero interessarti

Come scegliere Sicurezza domestica intelligente per le case in Italia

Come scegliere Sicurezza domestica intelligente per le case in Italia ...

Leggi ->

Come fare volontariato: una guida completa

Il volontariato è un'esperienza che può ...

Leggi ->

Scoperto un difetto di privacy negli AirTag: cosa fare per proteggersi

Scoperto un difetto di privacy negl ...

Leggi ->

Come scegliere energie rinnovabili per le case in Italia

Come scegliere energie rinnovabili per le case in ItaliaLa s ...

Leggi ->

Come richiedere una visura catastale Online Gratis

Se sei giunto qui significa che ti sei trovato difronte alla necessità di avere u ...

Leggi ->

Il Saldatore a Pistola: Guida Completa per Saldature Efficienti e Professionali

In questo articolo, esploreremo a fondo le caratteristiche, le tecniche e i segre ...

Leggi ->

Fine del mondo social? Perché sempre più giovani abbandonano Instagram e TikTok

Negli ultimi anni, Instagram e TikTok sono diventati ...

Leggi ->

Come gestire i log e i binlog di MySQL limitando la permanenza a 24 ore

La gestione dei log e dei binlog in MySQL è fondamentale per mantenere le prestaz ...

Leggi ->

Tutto ciò che devi sapere sull'Unified Write Filter su Windows 10

Cos'è l'Unified Write Filter? ...

Leggi ->
  • Pneumatici
  • OBSBOT DE
  • Caffè Vergnano
  • OBSBOT DE
  • Europcar IT
  • OBSBOT DE
  • OBSBOT DE
  • Tappeto.it
  • Pneumatici
  • Europcar IT
  • Pneumatici
  • OBSBOT DE