Commenti a "Fai parlare il tuo computer con Powershell e leggere un file di testo TXT"

I "Commenti" ad ogni articolo pubblicato sul nostro sito sono raccolti qui.
Regole del forum
Puoi rispondere alle discussioni già presenti, ma non aprirne di nuove.
Rispondi
Avatar utente
crazy.cat
Amministratore
Amministratore
Messaggi: 12502
Iscritto il: mer mag 01, 2013 4:02 pm
Località: Noventa Padovana
Contatta:

Commenti a "Fai parlare il tuo computer con Powershell e leggere un file di testo TXT"

Messaggio da crazy.cat »

Fai parlare il tuo computer con Powershell e leggere un file di testo TXT

Immagine

Tra le tante possibilità di PowerShell vi è anche quella del System.Speech, cioè possiamo far parlare il computer e leggere il contenuto di un file di testo TXT. Facciamo un paio di esempi pratici di applicazione di questa funzione. E’ arrivata quella lunghissima relazione del vostro capo, che non avete nessuna voglia di leggere, ma con poche righe di codice possiamo utilizzare PowerShell che la legga al nostro posto e noi l’ascoltiamo facendo altro. Il far parlare il computer, tramite PowerShell, lo possiamo usare per fare uno scherzo a qualcuno, oppure per dare un messaggio di benvenuto all’accensione del computer o in determinati orari. [continua..]

Inserite di seguito i vostri commenti.
System
System
Bot ufficiale TurboLab.it
Bot
Messaggi:
Iscritto il: sab dic 31, 2016 6:19 pm
Contatta: Contatta

Re: Commenti a "Fai parlare il tuo computer con Powershell e leggere un file di testo TXT"

Messaggio da System » dom ott 08, 2023 8:32 pm


Avatar utente
ctsvevo
Gran Maestro Revisore
Gran Maestro Revisore
Messaggi: 466
Iscritto il: sab lug 24, 2021 9:19 pm

Re: Commenti a "Fai parlare il tuo computer con Powershell e leggere un file di testo TXT"

Messaggio da ctsvevo »

Posso scrivere una cosa?

È un mio sogno trovare la "killer application" perfetta (meglio se open source e multipiattaforma) che purtroppo non esiste ancora!

Un'applicazione che consenta di trasformare:
- la voce in testo;
- il testo in voce;
- il testo in traduzione scritta in un'altra lingua;
- il testo in traduzione audio in un'altra lingua;
- la voce in traduzione scritta in un'altra lingua;
- la voce in traduzione audio in un'altra lingua.

La sto aspettando da una vita, ormai.
I trucchi per fare ciascuna di queste operazione sono parecchi (Telegram, siti specifici, eccetera) ma nessuno che proponga un programma del genere!
Avatar utente
Zigul
VIP
VIP
Messaggi: 220
Iscritto il: dom ott 08, 2023 12:11 am

Re: Commenti a "Fai parlare il tuo computer con Powershell e leggere un file di testo TXT"

Messaggio da Zigul »

Non li ho mai utilizzati, ma so che ci sono diversi progetti per assistenti vocali in Python, quindi open source e multipiattaforma, solitamente chiamati "Jarvis" o in modo simile (con riferimento all'assistente AI di Iron Man) che possono, fra le altre potenzialità, anche leggere, tradurre, etc.
Avatar utente
ctsvevo
Gran Maestro Revisore
Gran Maestro Revisore
Messaggi: 466
Iscritto il: sab lug 24, 2021 9:19 pm

Re: Commenti a "Fai parlare il tuo computer con Powershell e leggere un file di testo TXT"

Messaggio da ctsvevo »

Qualcosa la provai tempo fa, ma nulla di così convincente...
Avatar utente
Zigul
VIP
VIP
Messaggi: 220
Iscritto il: dom ott 08, 2023 12:11 am

Re: Commenti a "Fai parlare il tuo computer con Powershell e leggere un file di testo TXT"

Messaggio da Zigul »

Un modo vergognosamente rudimentale per passare altri tipi di file a Narrator, potrebbe essere automatizzare con Powershell le operazioni per aprire il file con la sua applicazione predefinita, selezionare tutto il testo con ctrl+a, copiarlo con ctrl+c, chiudere l'applicazione con alt+F4, inviare il testo copiato alla shell e farlo leggere al Narrator.
Uno script, che usa le impostazioni predefinite del Narrator, potrebbe essere qualcosa tipo questo:

$text = Read-host "Inserire il percorso completo del file da leggere"
& $text
$wshell = New-Object -ComObject wscript.shell
sleep 15
$wshell.SendKeys("^{a}") ; sleep 1
$wshell.SendKeys("^{c}") ; sleep 1
$wshell.SendKeys("%{F4}")
$imported = Get-Clipboard

Add-Type -AssemblyName System.speech
$Narrator = New-Object System.Speech.Synthesis.SpeechSynthesizer
$Narrator.Speak($imported)

Lo sleep di 15 secondi serve per dar tempo all'apertura del file, ma chi ha PC performanti può anche ridurlo. Da considerare che tutto il testo viene selezionato, come detto, con la combinazione ctrl+a che, nelle vecchie versioni di MS Office (ad esempio la 2007), invece allinea il testo al centro, non seleziona tutto; in tal caso o in casi simili quindi lo script fallirà. Da ricordare che se il file ha un nome con uno o più spazi non bisogna includerlo, come solitamente si usa, fra virgolette, altrimenti lo script non funzionerà. Per interrompere la lettura è sufficiente chiudere la finestra di Powershell.
Avatar utente
crazy.cat
Amministratore
Amministratore
Messaggi: 12502
Iscritto il: mer mag 01, 2013 4:02 pm
Località: Noventa Padovana
Contatta:

Re: Commenti a "Fai parlare il tuo computer con Powershell e leggere un file di testo TXT"

Messaggio da crazy.cat »

Zigul ha scritto: lun ott 09, 2023 4:09 pm Un modo vergognosamente rudimentale per passare altri tipi di file a Narrator,
Grazie, lo proverò sicuramente appena riesco.

Update: Provato ma con un file doc di office 2019 non funziona, non mi sembra prelevi nessun dato perché nella clipboard non sembra esserci nulla.
Ottengo un errore con questa riga "& $text"
InvalidOperation: The expression after '&' in a pipeline element produced an object that was not valid. It must result in a command name, a script block, or a CommandInfo object.
Inoltre dopo la prima riga si ferma e premo Invio per farlo proseguire.
“Se tutti i documenti raccontavano la stessa favola, ecco che la menzogna diventava un fatto storico, quindi vera.”
Avatar utente
Zigul
VIP
VIP
Messaggi: 220
Iscritto il: dom ott 08, 2023 12:11 am

Re: Commenti a "Fai parlare il tuo computer con Powershell e leggere un file di testo TXT"

Messaggio da Zigul »

Il messaggio di errore che hai avuto è replicabile inserendo una pipe ("|") prima di "& $text", tuttavia nello script postato la pipe non c'è. Ho provato a fare copia e incolla dal post a un file "blocco note", cambiato l'estensione in .ps1, eseguito e sembra funzionare tutto correttamente.
Dopo aver inserito il percorso con il file devi premere invio per confermare, non prosegue in automatico, così da avere la possibilità di rimuovere le eventuali virgolette o correggere possibili errori di battitura.
Avatar utente
Zigul
VIP
VIP
Messaggi: 220
Iscritto il: dom ott 08, 2023 12:11 am

Re: Commenti a "Fai parlare il tuo computer con Powershell e leggere un file di testo TXT"

Messaggio da Zigul »

@crazy.cat
Hai avuto modo di riprovare lo script? Funziona o hai ricevuto altri errori?
Avatar utente
crazy.cat
Amministratore
Amministratore
Messaggi: 12502
Iscritto il: mer mag 01, 2013 4:02 pm
Località: Noventa Padovana
Contatta:

Re: Commenti a "Fai parlare il tuo computer con Powershell e leggere un file di testo TXT"

Messaggio da crazy.cat »

Zigul ha scritto: gio ott 12, 2023 4:06 pm @crazy.cat
Hai avuto modo di riprovare lo script? Funziona o hai ricevuto altri errori?
Proverò nel weekend. Questa è una settimana di delirio puro.
“Se tutti i documenti raccontavano la stessa favola, ecco che la menzogna diventava un fatto storico, quindi vera.”
Avatar utente
crazy.cat
Amministratore
Amministratore
Messaggi: 12502
Iscritto il: mer mag 01, 2013 4:02 pm
Località: Noventa Padovana
Contatta:

Re: Commenti a "Fai parlare il tuo computer con Powershell e leggere un file di testo TXT"

Messaggio da crazy.cat »

Zigul ha scritto: gio ott 12, 2023 4:06 pm @crazy.cat
Hai avuto modo di riprovare lo script? Funziona o hai ricevuto altri errori?
Non riesco a farlo funzionare, ho provato qualche variante nello script, con il pipe ottengo un errore e non legge nulla
PowerShell 7.3.8
PS C:\Users\crazy.cat> d:\test.ps1
InvalidOperation: D:\test.ps1:2
Line |
2 | | & $text
| ~~~~~
| The expression after '&' in a pipeline element produced an object that was not valid. It must result in a
| command name, a script block, or a CommandInfo object.
PS C:\Users\crazy.cat> d:\test.ps1
InvalidOperation: D:\test.ps1:2
Line |
2 | | &$text
| ~~~~~
| The expression after '&' in a pipeline element produced an object that was not valid. It must result in a
| command name, a script block, or a CommandInfo object.
Senza il pipe appare la richiesta di premere invio, ritorna l'errore di prima, dopo i 15 secondi inizia a dire qualcosa ma non è certo il contenuto del file doc o docx che gli avevo fatto aprire.
PowerShell 7.3.8
PS C:\Users\crazy.cat> d:\test.ps1
d:\test.doc:
InvalidOperation: D:\test.ps1:2
Line |
2 | & $text
| ~~~~~
| The expression after '&' in a pipeline element produced an object that was not valid. It must result in a
| command name, a script block, or a CommandInfo object.
Ho corretto il tuo script più sopra, è scritto giusto ora?
Dal messaggio d'errore mi sembra di capire che non gli piace $text messo in quella posizione.
“Se tutti i documenti raccontavano la stessa favola, ecco che la menzogna diventava un fatto storico, quindi vera.”
Avatar utente
Zigul
VIP
VIP
Messaggi: 220
Iscritto il: dom ott 08, 2023 12:11 am

Re: Commenti a "Fai parlare il tuo computer con Powershell e leggere un file di testo TXT"

Messaggio da Zigul »

Lo script originale funziona se togli la pipe prima di "& $text"; non so come ci sia andata a finire, ma non deve esserci. Funziona sia con Word che Pdf.
Avatar utente
crazy.cat
Amministratore
Amministratore
Messaggi: 12502
Iscritto il: mer mag 01, 2013 4:02 pm
Località: Noventa Padovana
Contatta:

Re: Commenti a "Fai parlare il tuo computer con Powershell e leggere un file di testo TXT"

Messaggio da crazy.cat »

Zigul ha scritto: ven ott 13, 2023 10:16 am Funziona sia con Word che Pdf.
A me non va proprio, ci rinuncio.
Grazie lo stesso
“Se tutti i documenti raccontavano la stessa favola, ecco che la menzogna diventava un fatto storico, quindi vera.”
Avatar utente
Zigul
VIP
VIP
Messaggi: 220
Iscritto il: dom ott 08, 2023 12:11 am

Re: Commenti a "Fai parlare il tuo computer con Powershell e leggere un file di testo TXT"

Messaggio da Zigul »

L'ho provato su altre macchine, anche sulla Sandbox di Windows, anche usando Powershell 7, ma sembra funzionare comunque. Se vuoi, mandami un messaggio in privato con gli errori che ti dà, così provo a risolvere (e magari imparo qualcosa di nuovo).
Avatar utente
crazy.cat
Amministratore
Amministratore
Messaggi: 12502
Iscritto il: mer mag 01, 2013 4:02 pm
Località: Noventa Padovana
Contatta:

Re: Commenti a "Fai parlare il tuo computer con Powershell e leggere un file di testo TXT"

Messaggio da crazy.cat »

Zigul ha scritto: dom ott 15, 2023 11:11 am Se vuoi, mandami un messaggio in privato con gli errori che ti dà, così provo a risolvere (e magari imparo qualcosa di nuovo).
Messaggio inviato. :grazie
“Se tutti i documenti raccontavano la stessa favola, ecco che la menzogna diventava un fatto storico, quindi vera.”
Avatar utente
crazy.cat
Amministratore
Amministratore
Messaggi: 12502
Iscritto il: mer mag 01, 2013 4:02 pm
Località: Noventa Padovana
Contatta:

Re: Commenti a "Fai parlare il tuo computer con Powershell e leggere un file di testo TXT"

Messaggio da crazy.cat »

Zigul ha scritto: dom ott 15, 2023 11:11 am L'ho provato su altre macchine, anche sulla Sandbox di Windows, anche usando Powershell 7, ma sembra funzionare comunque. Se vuoi, mandami un messaggio in privato con gli errori che ti dà, così provo a risolvere (e magari imparo qualcosa di nuovo).
Mi sono arreso, quando ti ho scritto funzionava, il giorno dopo non leggeva più.
Non so cosa dire.
“Se tutti i documenti raccontavano la stessa favola, ecco che la menzogna diventava un fatto storico, quindi vera.”
Avatar utente
Zigul
VIP
VIP
Messaggi: 220
Iscritto il: dom ott 08, 2023 12:11 am

Re: Commenti a "Fai parlare il tuo computer con Powershell e leggere un file di testo TXT"

Messaggio da Zigul »

Così a naso, posso solo ricordarti di non usare le virgolette nel percorso del file, aumentare lo sleep di 15 se il file è lento ad aprirsi, accertarti che il programma che apre il file usi la combinazone ctrl+a per selezionare tutto, e infine di non cliccare in giro mentre lo script è in funzione altrimenti non riesce a gestire le finestre.
System
System
Bot ufficiale TurboLab.it
Bot
Messaggi:
Iscritto il: sab dic 31, 2016 6:19 pm
Contatta: Contatta

Re: Re: Commenti a "Fai parlare il tuo computer con Powershell e leggere un file di testo TXT"

Messaggio da System » mar ott 17, 2023 5:49 pm


Rispondi
  • Argomenti simili
    Risposte
    Visite
    Ultimo messaggio