Proudly debugging the system since 1981

Tag: whisper

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.

Bot Voice To Text

Nella sua semplicità è il bot (gestito da un workflow N8N) che uso più spesso. I messaggi vocali sono lenti e inefficienti, l’accelerazione 1.5x o 2x risolve solo in parte il problema. Poter leggere velocemente, o scansionare, il contenuto di un vocale senza dover essere bloccato due minuti per ascoltarlo tutto è una fantastica comodità.

Ho migliorare un pochettino il workflow per gestire correttamente anche l’inoltro, sempre tramite telegram, di una MP3. Il motivo scatenante è stato che non volevo ascoltare un podcast di un ora per una piccola frazione di informazione, durata 5 minuti, annegata chissà dove.

Ho per cui modificato la gestione dell’input, cambiato i timeout di risposta, e gestito l’output di più di 2000 caratteri con lo stesso sistema del bot assistente personale.

Per trascrivere un ora di podcast l’hardware a mia disposizione ha impiegato 22 minuti, ma va bene. Non avevo fretta. E’ comunque una velocità superiore al doppio e mentre il silicio lavorava io potevo fare altro.

Il punto di partenza è stato quanto descritto in questo articolo. Il bot è sempre disponibile pubblicamente su http://t.me/b0sh8_bot anche se non tutti i giorni e non H24.

Di seguito il workflow aggiornato.

Workflow AI, un altro caso d’uso

Credo che sta cosa mi stia sfuggendo di mano. Ho messo insieme un po’ tutto. Riconoscimento vocale, chatbot potenziato con rag, embedding, sintesi della risposta e sintesi vocale in uscita.

Risultato: una assistente personale a portata di messaggistica istantanea con due tipi di memoria, una a breve termine per sostenere efficacemente una conversazione, e una a lungo termine supportata dal RAG. L’embedding si attiva inserendo nel messaggio di input una parola chiave. Il sistema inoltre risponde (anche) a voce se l’interazione iniziale avviene mediante voce o solo scritto se l’interazione e’ stata iniziata in forma testuale.

Lo utilzzero’ davvero? Non lo so, ma potrebbe essere che si … specie per via della memoria a lungo termine, in modo che posso di fatto prendere appunti velocemente e poi poterci accedere in modo altrettanto facile e veloce.

Intanto il trascrittore di vocali, nato per provare, l’ho usato varie volte.

Il tutto, come negli esempi precedenti, e’ selfhosted. Utilizzo:

N8n e un caso d’uso

N8n è un bel progettino per realizzare workflow automatizzati, mettendoci dentro un po di AI.

Come da esperienze precedenti ho provato a farlo funzionare utilizzando il meno possibile servizi su cloud, più che altro per essere consapevole di come funziona ogni passaggio.

Per cui, primo passo installo N8N con una immagine che gira in locale su docker. Niente di difficile. Le istruzioni sul repository sono facili. N8N parte, richiede una mail di registrazione per sbloccare un po’ di funzionalità in modo gratuito. Va bene, anche se non ho verificato bene la differenza tra con e senza registrazione.

A questo punto mi pongo il problema di cosa fargli fare. Ce ne sarebbero mille ma di cose ma provo ad implementare una trascrizione di audio mediante telegram. L’obbiettivo è avere facilmente la trascrizione di messaggio audio provenienti da varie piattaforme di messaggistica, non necessariamente solo telegram.

Continua a leggere

© 2026 b0sh.net

Tema di Anders NorenSu ↑