Proudly debugging the system since 1981

Tag: homeassistant

Piper su Home Assistant: voci custom, troppi compromessi

Ho provato ad aggiungere una voce italiana personalizzata a Piper su Home Assistant (add-on), oltre a quelle già disponibili (Riccardo e Paola), ma alla fine ho deciso di rinunciare: funziona “a metà”, e per renderla davvero usabile con l’assistente vocale serve una modifica fragile che rischia di rompersi a ogni aggiornamento.

Nei primi tentativi ho seguito la strada più logica: scaricare un modello da Hugging Face e inserirlo nella cartella condivisa di Home Assistant. Ho creato via SSH la directory /share/piper e ci ho copiato i due file necessari del modello (il .onnx e il relativo .onnx.json).

All’inizio Piper non partiva nemmeno: dai log compariva un errore esplicito VoiceNotFoundError: giorgio. Il motivo era banale ma insidioso: avevo il file di configurazione col nome sbagliato (es. giorgio.json invece di giorgio.onnx.json). Dopo aver rinominato correttamente il file, l’add-on ha ripreso ad avviarsi senza errori.

Il problema vero è arrivato dopo: la voce “Giorgio” non compariva in nessuna lista, né nella configurazione dell’add-on, né nella selezione della voce dell’assistente vocale (pipeline). Ho provato anche a rinominare i file con uno schema più “standard” (tipo it_IT-giorgio-…), riavvii e reload dell’integrazione, ma niente.

A quel punto ho capito il limite: l’elenco delle voci mostrato nell’interfaccia dipende dal catalogo voices.json, che l’add-on scarica automaticamente e aggiorna all’avvio (nei log si vede il download e il salvataggio in /data/voices.json). Quindi sì, potrei entrare nel container e modificarlo, ma dovrei poi bloccare o gestire gli aggiornamenti (o accettare che le modifiche vengano sovrascritte). Troppo rischio e troppa manutenzione per un “semplice” cambio voce.

Morale: voce custom ok per esperimenti, ma per una configurazione stabile dell’assistente vocale ho preferito restare su voci ufficialmente supportate dal catalogo

Come ho configurato un assistente vocale locale con Anker PowerConf su Home Assistant OS

Ciao! Dopo un lungo percorso di test e configurazione, ho finalmente un assistente vocale locale funzionante sul mio Raspberry Pi con Home Assistant OS, usando l’Anker PowerConf come speakerphone USB. Wake word “Hey raspy”, voce italiana “Riccardo low” e trascrizione Whisper locale (lenta ma gratuita). Ecco il mio viaggio, strumenti usati, problemi risolti e risorse.

Strumenti utilizzati

  • Hardware: Anker PowerConf (speaker + microfono USB), Raspberry Pi (HA OS 2026.2.1).
  • Software:
    • Assist Microphone (add-on principale per input/output audio).
    • openWakeWord (wake word “Hey raspy”).
    • Wyoming Faster Whisper (STT locale).
    • Piper TTS (“Riccardo low”).

Config Assist Microphone finale:​

textsound_enabled: true
noise_suppression: 5
auto_gain: 3
mic_volume_multiplier: 3
sound_volume_multiplier: 1
debug_logging: true

Passi della configurazione

  1. PowerConf USB: Riconosciuto come alsa_input.usb-Anker_PowerConf.mono-fallback / alsa_output.usb-Anker_PowerConf.analog-stereo (ha audio info).
  2. Add-on installati:
    • openWakeWord.
    • Faster Whisper.
    • Piper TTS.
    • Assist Microphone (input/output PowerConf).
  3. Pipeline (Impostazioni → Assistenti vocali):
    • Wake word: openWakeWord → “Hey raspy”.
    • STT: Faster Whisper.
    • TTS: Piper → “Riccardo low”.
  4. Test: “Hey raspy, che ora è?” → wake word, trascrizione, TTS dal PowerConf.

Difficoltà e soluzioni

  • PowerConf riconosciuto ma ALSA vuoto (arecord -l vuoto): sudo alsa force-reload + restart PipeWire. Confermato con pactl list sources short.
  • openWakeWord instabile (1/20): YAML config: textthreshold: 0.2 trigger_level: 1 debug_logging: true
    • Assist Microphone auto_gain: 3, mic_volume_multiplier: 3 → ~70-80% affidabile.
  • Errore “assistente non connette a HA”: Impostazione corretta URL di Home assistant in Configurazione → Rete
  • Whisper lento (10-20s): Funziona locale; opzione futura Whisper Cloud.

Risorse utili

Funziona per comandi base, wake word migliorato ma non perfetto. Whisper locale gratuito ma lento.
L’ agente di conversazione e’ stato realizzato con Extended OpenAI Conversation, una estensione disponibile su HACS che permette di usare LLM di altre provider diversi da OpenAI. La scelta e’ stata per un proxy OpenWebUI che a sua volta rimanda a Groq.

Penso passero a Whisper cloud in quanto le limitate risorse del raspberry permettono di far girare solo un modello piccolo (tiny e small.int8) che non solo e’ lento ma anche impreciso, specie con la lingua italiana per la quale non e’ disponibile un modello specifico ma si deve usare il modello internazionale.

Home Assistant e Yi Home

Qualche anno fa mi ero imbarcato, senza troppo successo, in un progetto di decodifica delle comunicazioni tra le telecamere Yi Home e il suo cloud per renderle utilizzabile il flusso senza l’odiosa app che ai tempi aveva smesso di funzionare bene. Il problema era abbastanza complesso, la chiave non era facilmente ricavabile e poi la app è tornata a funzionare, tutto sommato, bene e quindi il progetto si è arenato.

Ora, da qualche tempo l’app è stata letteralmente riempita di pubblicità e per motivi diversi è tornata quindi ad essere inutilizzabile, MA qualche brava persona ha rilasciato dei firmware modificati per fare tante belle cose.

In base al modello si può trovare il firmware modificato su:

Per quanto riguarda ho utilizzato esclusivamente il firmware Yi Hack V5 su due telecamere Yi Dome e una Yi Outdoor. L’obbiettivo era rendere le telecamere integrate con HomeAssistant.

Il risultato è lontano dall’essere perfetto per via delle limitazioni dell’hardware delle telecamere, veramente essenziale, dal fatto che si usa una scheda microsd come file system con tanto di memoria virtuale e che i firmware modificati non sono bugfree (ma cosa lo è?).

Pero si riesce ad avere un flusso video in tempo reale, la notifica dei movimenti, e la registrazione del video del movimento. Senza perdere le funzionalità dell’app proprietaria. Magari in un prossimo articolo scenderò un po più in dettaglio sia per Home Assistant (che ho installato su un raspberry pi 5 nuovo) sia sulle telecamere.

Installiamo home-assistant

Oramai seguo il filone della de-cloudificazione … anche perchè di gente che parla di cloud, di come è bello e di quanto è vantaggioso ce ne sono finche volete. E perchè un altro servizio cloud mi ha fatto arrabbiare. Alexa di Amazon in particolare.

Volevo programmare l’accesione di una luce esterna, dopo il tramonto, qualora avvenisse il rilevamento di movimento di un sensore infrarossi.

Bene, mi procuro una spina wifi. Il sensore già ce l’ho, lo sposto dallo studio ad una opportuna posizione esterna, lo rinomino per non avere dubbi dove sia tra qualche mese e qui si rompe Alexa. Il sensore rinominato sull’app di Xiaomi non appare più tra i dispositivo noti ad Alexa. E non c’e’ nulla da fare. Cerca nuovo dispositivo fallito. Rimuovi la Skill, rimetti la Skill … alla fine sparisce anche l’altro sensore.

E non c’è nulla di più frustrante per chi mette crea e mette a posto sistemi informativi, come l’autore di questo post, che non avere nessuna possibilità di intervento. Nessun log, nessun errore, nessuna configuazione da aggiustare, nessun codice da debuggare. Niente il tuo sensore IR è sparito, non si sà perchè e puoi solo sperare che riappaia.

La soluzione? Gestiamoci la domotica in locale con Home-assistant. Normalmente si installerebbe su un Raspberry, ma ho un PC x86 sempre accesso con potenza e spazio di archiviazione in eccesso percui scelgo la via della virtual machine.

Probabilmente drovò flashare le webcam e forse non solo. Ma vediamo che succede.

Documenterò soprattutto cosa va male e cose non è come sulla documentazione ufficiale ed, eventualmente, il risultato finale se positivo. Per ora sono partito da qua https://www.home-assistant.io/installation/#generic-x86-64

© 2026 b0sh.net

Tema di Anders NorenSu ↑