Help in finding a reliable STT for Italian

some week has passed but I’m still struggling. I have a doubt before open an issue: it is corret my understanding that skip_words added in _common.yaml should work to ALL the default intent?

Whisper works good for me in Italian. model large-v2 float16
I’m using wyoming whisper hosted in Windows 11 in docker. I use WLS 2 and docker on Windows, Gpu Nvidia rtx 3060 12 gb.
I’m running containers in Windows and it woks super good using in the same time:

  • Frigate
  • compre face
  • double take
  • wyoming whisper
  • wyoming piper

Just install Wsl Ubuntu, update it, install docker Windows and make sure you have all the drivers installed.
Then open Ubuntu and in the terminal run the docker run command.

docker run -d \
  --name wyoming-whisper \
  --restart unless-stopped \
  --gpus all \
  -e MODEL=large-v2 \
  -e LANGUAGE=it \
  -e COMPUTE_TYPE=float16  \
  -e BEAM_SIZE=5 \
  -p 10300:10300 \
  -v /opt/wyoming/whisper:/data \
  slackr31337/wyoming-whisper-gpu:latest

so wyoming whisper will be available on port 10300 of Ip of your windows machine.

Visto che l’argomento tratta di stt in italiano rispondo in italiano per mia comodità.
Avrò visitato questa pagina per mesi, oltre a svariate ricerche. anche io usavo il modello large v2 di whisper come approccio locale, ma non era sufficiente, probabilmente nel mio caso non per il modello in se, ma a causa di “voice assistant pe” che uso come satelliti, mi spiego:
dai test fatti, usando whisper large v2 in italiano, usando il microfono del mio telefono, commette pochissimi errori, se non nulli, usando invece il voice assistant pe, probabilmente a causa degli scarsi microfoni utilizzati, sbaglia parecchio. Mi sono intestardito ad usarlo lo stesso ritrovandomi costretto a gridare, scandendo bene le parole come un cretino nel tentativo di farmi comprendere, migliorava ma rimane una seccatura. La cosa strana è che se invece uso l’stt di nabu casa (quello che probabilmente usa Azure di Microsoft online), il voice assistant pe non ha nessun problema, pochissimi errori commessi. L’unica spiegazione che mi sono dato è che forse faranno del post processing dell’audio per migliorarlo prima di darlo in pasto all’stt non saprei.

Ma torniamo a noi: di recente ho trovato quest’altra strada con cui mi stro trovando meglio, e dalla felicità mi sentivo di condividere il risultato con altri poveri disgraziati come me che sono alla ricerca della stessa cosa :slight_smile:

anzitutto sto usando questo

un fork di wyoming faster whisper CHE NON USA FASTER WHISPER, invece usa l’stt di Nvidia NeMo (quindi si, necessaria gpu nvidia).
Ma non basta, serve usare il modello uscito da poco su huggingface che supporta il multilingua compreso l’italiano:

ma non basta: sono ignorante in materia, dico spudoratamente che ho fatto tutti i passaggi guidato da chatgpt, ma il succo è che bisogna modificare i file, sicuramente il main.py in particolare la riga:
languages=[“en”] if args.language else [“en”], # Parakeet is English-only
perchè lui utilizzava la v2 che era solo inglese.
l’ho modificato in languages=[args.language] if args.language else [“it-IT”]. Se non si fa questo passaggio, quando si cerca di aggiungerlo alla pipeline di home assistant lo troverete in grigio non selezionabile (a causa della lingua errata).

In piu, per i piu temerari, questo progetto è fantastico in quanto permette di riconoscere la voce dell’interlocutore dando un audio di circa 30 secondi di ogni persona. Se non lo si vuole, o per semplicità all’inizio, basta non inserire nel compose --embeddings-file cosi ignorerà tutta quella parte. Ma ho finito con l’usarla e mi piace molto, si creano automazioni sfiziose.
Ricapitolando mi sembra: piu preciso e piu veloce di faster whisper large v2, a parità di hardware, e in più ha il bonus del riconoscimento dell’interlocutore (senza aggiungere alcun delay). Non riesco (per mia incompetenza) a dirvi nel dettaglio tutti i passaggi che ho fatto, ma se nella mia ignoranza con l’aiuto di chatgpt ce l’ho fatta, puo farcela chiunque. Spero di essere stato d’aiuto a qualcuno.

2 Likes

I can offer to test my project. So far, only manual server startup is available for using parakeet v3. In the int8, it should run fast enough even on the CPU. It would be interesting to hear feedback on the quality of recognition.

clone the repository, install libraries, and run the server python -m wyoming_onnxasr --model nemo-parakeet-tdt-0.6b-v3 --uri tcp://0.0.0.0:10305 --quantization int8

In the future, we’ll need to translate the README since a multilingual model has appeared, but we haven’t gotten around to it yet.

mi hai messo una bella pulce nell’orecchio. Non ho idea di come fare per copiare la tua idea. Ma inizierò la ricerca.

Innanzitutto devo trovare il modo per fare il deploy sul mio server unraid dove ho una GPU. Poi cercherò di cambiare gli args.

Ottimo! Mi fa piacere.
Io uso proxmox, ho una VM Debian 12 con il passthrough della gpu. Installato docker, portainer, e il necessario per far funzionare la gpu dentro i container (NVIDIA container toolkit). Poi clone della repository che ho linkato, modifica dei file, build del dockerfile. Se posso e nel mio piccolo riesco, felice di aiutare. Good luck :wink:

Hi Jokerigno,

I use Vosk and I can guarantee you it’s incredibly fast. My Home Assistant instance runs on a very weak PC (check out the first photo), and Vosk is installed as an add-on. But I can guarantee you, it’s a lightning-fast.

These are the specs of the PC where Proxmox runs:

These are the resources used by Home Assistant, where 53 rather complex automations are running:

I can’t share the video with you to show you Vosk’s speed because the platform doesn’t accept them, but I can guarantee you it’s instantaneous.

Ciao, is not only about fast. It is realiable? What hw are you using? I mean are you using HA Voice preview to send messages?

Ciao, docker funziona un po diverso, credo. O meglio sarebbe più semplice. MA credo non così semplice. per me.

Posso garantirti che riesce tranquillamente a decifrare frasi tipo: “che tempo farà domani pomeriggio a Milano [qualsiasi altra città]?” senza sbagliare.

Ecco un esempio dal mio PC

Provai vosk con gli Voice Assistant PE, per carità, velocissimo, ma non riuscii a risolvere lo sporadico problema di una lettera fantasma all’inizio delle frasi e comunque per me era poco preciso nel contesto di una stanza con un voice Assistant pe nel centro, sbagliava spesso se non mi impegnavo a scandire bene le parole e alzare la voce. Magari con un raspberry, microfono buono collegato, installando wyoming satellite, potrebbe funzionare decisamente meglio. Ma ormai ho comprato i PE, uno per stanza, e in ogni caso usando il wyoming satellite si perdono diverse funzioni che non sono state ancora implementate (conversazioni continue ecc).

Ciao Domenico
il problema che hai evidenziato quasi sempre dipende dalla qualità dell’audio che deve essere processato da vosk (o whisper) e a differenza di te non ho acquistato Voice Assistant PE proprio perché non ha un buon apparato microfonico e di elaborazione audio tale da gestire correttamente l’audio ambientale (una stanza di medie dimensioni con rumori in sottofondo, come tv, musica, altri che parlano, ecc…). Ho accumulato una discreta esperienza con Rhasspy e ora sono alla ricerca di un dispositivo che elabori l’audio ad un livello professionale.

Sono completamente d’accordo con te, purtroppo l’ho scoperto a dispositivo acquistato, e mi sembra di capire che Jokerigno è nella mia stessa barca, per quello mi sono sentito di descrivere la soluzione finale che ho adottato che al momento con i PE e lingua italiana mi sta dando il miglior risultato. E in più aggiunge il riconoscimento di chi parla che non è poco. Fa piacere comunque ascoltare ciò che gli altri hanno riscontrato e cosa usano, grazie a tutti.

Io con docker e nvidia 3060 12gb con whisper v3 italiano va una bomba, non sbaglia sia con PE sia con l’assistente vocale fatto da me

Potresti condividere il compose che usi per vedere esattamente il container/modello/impostazioni con cui ti trovi bene?

uso docker run da wls2, alzando el beam size si ha piu qualita’

docker run -d \
  --name wyoming-whisper \
  --restart unless-stopped \
  --gpus all \
  -e MODEL=large-v3 \
  -e LANGUAGE=it \
  -e COMPUTE_TYPE=float16 \
  -e BEAM_SIZE=5 \
  -p 10300:10300 \
  -v /opt/wyoming/whisper:/data \
  slackr31337/wyoming-whisper-gpu:latest


Ti ringrazio. Prima usavo la tua stessa immagine, provai sia v2 che v3 ma ricordo di avere avuto problemi di tanto in tanto col pe in salone. Felice che a te funzioni bene, magari sarà così anche per altri. Finora con NVIDIA NeMo ho i risultati migliori.