Oggi condivido con voi uno script molto utile per convertire il testo in parlato utilizzando il motore vocale di Google. Il vantaggio principale di questo script è che "aggira" il limite di 100 byte imposto da Google. In realtà, ad essere onesti, rispetta questo limite ma invia tutte le linee automaticamente, il che significa che questa limitazione passa inosservata all'utente. I più esigenti noteranno però che la conversione non è della stessa qualità di quella che possiamo ottenere in Google Translate, principalmente a causa di questo limite e che non è possibile far passare l'intero testo in un colpo solo. Come punto positivo, va aggiunto che questo script consente anche di specificare la lingua del testo da convertire.
Chiarito, vediamo quali sono i passaggi da seguire.
Passi da intraprendere
1. - Crea un file con il nome t2s.sh.
2. - Copia il seguente contenuto:
#! / bin / bash ################################ # Script vocale di Dan Fountain # # Modificato da UsemosLinux # # TalkToDanF@gmail.com # ############################### INPUT = $ * STRINGNUM = 0 ary = ($ {INPUT: 2}) echo "---------------------------" echo "Speech Script di Dan Fountain" echo "TalkToDanF @ gmail.com "echo" --------------------------- "per la chiave in" $ {! ary [@]} "fai SHORTTMP [ $ STRINGNUM] = "$ {SHORTTMP [$ STRINGNUM]} $ {ary [$ key]}" LENGTH = $ (echo $ {# SHORTTMP [$ STRINGNUM]}) #echo "parola: $ key, $ {ary [$ key]} "#echo" aggiunta a: $ STRINGNUM "if [[" $ LENGTH "-lt" 100 "]]; quindi #echo inizia una nuova riga SHORT [$ STRINGNUM] = $ {SHORTTMP [$ STRINGNUM]} altrimenti STRINGNUM = $ (($ STRINGNUM + 1)) SHORTTMP [$ STRINGNUM] = "$ {ary [$ key]}" SHORT [ $ STRINGNUM] = "$ {ary [$ key]}" fi fatto per la chiave nella riga "$ {! SHORT [@]}" do #echo ": $ key è: $ {SHORT [$ key]}" echo " Linea di riproduzione: $ (($ key + 1)) di $ (($ STRINGNUM + 1)) "mplayer" http://translate.google.com/translate_tts? ie = UTF-8 &tl = $ {1} & q = $ {SHORT [$ key]} "fatto
3. - Concedi autorizzazioni di esecuzione allo script:
sudo chmod + x t2s.sh
4. - Eseguire lo script passando come parametri: a) il codice della lingua corrispondente al testo, b) il testo da convertire. Per esempio:
./t2s.sh it Questo è un testo molto interessante da convertire.
Questo è tutto, spero che ti piaccia.
Che bello, grazie mille 😉
E che bella voce ha la ragazza, penso di essermi innamorato 😛
Mi scusi, potete aiutarmi con il cinese? Non rileva i caratteri cinesi, solo il pinyin.
Questo va bene come per uno script che controlla la posta o per un allarme personalizzato che al risveglio ti dice le previsioni e i messaggi in sospeso xD
Qui ho fatto un video di prova 😛 https://www.youtube.com/watch?v=O3IeK7PjA_0
Buona! Grazie!
Suona molto bene, ho dovuto installare solo mpg123 🙂
Ho dovuto installare mpg123 ma è stato bello, quindi se non accetta alcune parole, dice una lettera di spunta a destra ecc.
EH EH
Il database dei virus è stato aggiornato (?)
apt update && ./t2.sh it Il database dei virus è stato aggiornato
Hahaha Eccellente, ne ho già alcuni usi, voce sensuale senza dubbio =), grazie per la condivisione.
Come utente Mac OSX, non è stato possibile per me utilizzare lo script poiché non ho mpg123, quindi modificando lo script e utilizzando VLC, possiamo lasciarlo funzionare correttamente in Mac OS X.
http://pastebin.com/C2Mkp1Qy
il problema è che vlc rimane sicuramente acceso e non si chiude quando termina l'esecuzione e potresti usare cvlc per impedire l'apertura dell'interfaccia grafica
potrebbe essere messo
cvlc –play-and-exit «https://translate.google.com/translate_tts?tl=$[$key]}»
in modo che si chiuda alla fine della riproduzione
Ciao ragazzi ricevo questo errore, vediamo se qualcuno mi dice qual è il problema
Linea di gioco: 1 di 1
Richiesta HTTP non riuscita: 404 non trovato
[mpg123.c: 610] errore: accesso alla risorsa http http://translate.google.com/translate_tts?tl=hola&q= il fallito.
[codice] Linea di riproduzione: 1 di 1
Richiesta HTTP non riuscita: 404 non trovato
[mpg123.c: 610] errore: accesso alla risorsa http http://translate.google.com/translate_tts?tl=hola&q= il fallito. [/ codice]
Il problema è che stai usando lo script in modo sbagliato.
Quando lo esegui, devi passare la lingua del testo come primo parametro, come mostrato nell'esempio nel post.
Ti faccio un altro esempio:
./t2s.sh in Questo è un semplice esempio.
Notare che dopo ts2.sh segue "en" (che significa "inglese", cioè inglese). Per lo spagnolo, usa "es" e poi la frase nella lingua che desideri convertire.
Abbraccio! Paolo.
conosci il comando di pronuncia no? hehe
espeak -v è-il «ciao»
Sì, ma non lo stesso. Questa voce è molto meglio. 🙂
siamo d'accordo!
Saluti!
Per coloro che hanno problemi con mpg123 -q o non gli piace, puoi passare a mplayer
mpg123 -q «http://translate.google.com/translate_tts?tl=$[1-lex.europa.eu&q=$[SHORT[$key]}»
mplayer «http://translate.google.com/translate_tts?tl=$[1[&q=$[SHORT[$key]}»
Meglio "mplayer –really-quiet" in modo da non riempire l'output di testo
Un'ottima idea di usare Google per le mie applicazioni mi sta come un guanto.
http://github.com/alfa30/t2v
Un'altra domanda; Qualcuno potrebbe dirmi come registrare l'audio in uscita ???
Ti rispondo io stesso, perché l'ho appena ricevuto. Usando mpg123, ho modificato la riga 38 dello script, in questo modo:
mpg123 -q -w audio.wav «http://translate.google.com/translate_tts?tl=$[1-lex.europa.eu&q=$[SHORT[$key]}»
Ho aggiunto -w audio.wav. Questo crea un file wav con l'audio della frase, ma come l'ho lasciato, non si sente. Se vuoi ascoltare anche la frase, devi aggiungere un'altra riga. Sareste entrambi così:
mpg123 -q -w audio.wav «http://translate.google.com/translate_tts?tl=$[1[&q=$[SHORT[$key]}» &
mpg123 -q «http://translate.google.com/translate_tts?tl=$[1-lex.europa.eu&q=$[SHORT[$key]}»
Sicuramente potrebbe essere fatto in un altro modo più efficiente e pulito, ma almeno per me funziona.
Ottimo José GDF, ho provato il tuo metodo con ottimi risultati, saluti.
Per risparmiare traffico nella seconda esecuzione potresti riprodurre il .wav che hai generato nella prima
Ebbene sì, utilizzando un lettore che abbiamo installato. Ad esempio, con VLC Player sarebbe:
vlc-audio.wav
Bene, chi dice vlc, dice qualsiasi altro giocatore, compresi quelli che funzionano da terminale.
E per evitare di sovrascrivere il file ogni volta che viene utilizzato lo script, è necessario utilizzare una variabile per il nome. Nome che l'utente inserirà (comando di lettura) prima di iniziare ... Ma sarebbe arricciare il ricciolo 😀
L'ho fatto in PHP (per creare audio per un sistema telefonico Asterisk *)
$ url = "http://translate.google.com/translate_tts?ie=UTF-8&q={query}% 0A & tl = è & prev = input ';
if (count ($ argv) <= 1) {
$ nome = basename ($ argv [0]);
die ($ nome. 'utilizzo:'. $ nome. '
}
array_shift ($ argv);
$ query = implode ('', $ argv);
$ filename = str_replace (array ('', ',', '.'), '-', $ query);
$ nomefile = str_replace ('-', '-', $ nomefile);
$ url = str_replace ('{query}', rawurlencode ($ query), $ url);
$ Ch = curl_init ();
curl_setopt ($ ch, CURLOPT_URL, $ url);
curl_setopt ($ ch, CURLOPT_HEADER, 0);
curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true);
$ risultato = curl_exec ($ ch);
curl_close ($ ch);
$ percorso = getcwd (). '/'. $ nomefile;
file_put_contents ($ percorso. '. mp3', $ risultato);
@exec ("sox {$ percorso} .mp3 -b 16 -r 8000 -t wavpcm {$ percorso} .wav");
@unlink ($ percorso. '. mp3');
Che ne dici se sono già riuscito a registrare l'audio in uscita con questo comando:
arecord ~ / zhongwen.mp3 & ./t2s.sh zh ni hao; fg
e alla fine ctrl + c per interrompere la registrazione.
Non avevo mai usato php
Ma durante l'esecuzione:
php5 text-to-speech.php è Hello
la konsola ospita questo:
Formati sox FAIL: nessun gestore per l'estensione file `mp3 ′
Ogni contributo è molto apprezzato, riproverò più tardi.
2 app per traduttore di lingua google + traduzione da testo a discorso:
http://www.linuxhispano.net/2014/05/29/traductor-de-google-voz/
Penso che sia il modo migliore per convertire, la voce non è così male come le altre opzioni per Linux> _
C'è un modo per far leggere un file di testo normale?
Sarebbe molto utile convertire interi libri in audio
Beh, per me non funziona, non so perché, viene fuori:
xxxxx: ~ / Documents / Linux $ ./t2s.sh è ciao
---------
Discorso di Dan Fountain
TalkToDanF@gmail.com
---------
Linea di gioco: 1 di 1
http_open: HTTP / 1.0 400 richiesta non valida
http://translate.google.com: Nessun file o directory con questo nome
Ho installato mpg123 e ho fatto piccoli test e niente…. Grazie in anticipo
Ciao, questo copione mi è servito molto bene, sia per ascoltare il suono che per registrare le parole del traduttore.
Infatti, ho modificato il copione per adattarlo a una mia esigenza: trasformare un elenco di parole in testo (lemario) in discorso; salva la mia voce in wav, converti in ogg e nominali in base alla parola letta.
L'ho fatto in KDE usando Kdialog per specificare il percorso in cui si trova il file con l'elenco delle parole e la directory in cui voglio che l'audio della voce venga salvato.
Quando la conversione da WAV a OGG è terminata, crea due cartelle in cui vengono memorizzati il wav su un lato e l'ogg sull'altro.
All'inizio mi ha fatto arrabbiare perché non leggeva correttamente le parole con gli accenti, ma ho scoperto che devi aggiungere "es & ie = UTF8" nel codice. Per un attimo ho dimenticato la codifica dei caratteri.
Vi lascio il codice dello script che ho realizzato nel caso vi aiuti:
################################################ #####################
#! / Bin / bash
################################
# Lezione di sintesi vocale #
# Adattato da Ignacio Cruz Martínez #
# la posta è segreta xD #
################################
Finestra di dialogo #KDE per specificare il percorso e il nome del lemmario
soyunarchivo = $ (kdialog –inputbox «Inserisci il percorso e il nome del file (con un'estensione se ne ha una):»)
Finestra di dialogo #KDE per specificare la cartella di destinazione per i file vocali
path = $ (kdialog –inputbox «Inserisci il percorso per salvare l'audio vocale:»)
# attraverso cat vengono lette tutte le righe del file di testo, ogni riga consiste di una singola parola
for i in $ (cat $ soyunfile)
do
echo $ i
# conversione in parlato utilizzando google translate, non dimenticare la codifica in modo che legga gli accenti
mpg123 -q -w "$ path" $ i.wav "http://translate.google.com/translate_tts?tl=es&ie=UTF8&q=$i"
mpg123 -q "http://translate.google.com/translate_tts?tl=es&ie=UTF8&q=$i"
# utilizzando ffmpeg per convertire i file wav in ogg
ffmpeg -i "$ percorso" $ i.wav -acodec libvorbis "$ percorso" $ i.ogg
fatto
#con queste righe vengono create le cartelle per organizzare i file vocali in WAV o OGG
mkdir "$ percorso" WAV
mv "$ percorso" *. wav "$ percorso" WAV
mkdir "$ percorso" OGG
mv "$ percorso" *. ogg "$ percorso" OGG
Finestra di dialogo #KDE per indicare che il lavoro è terminato
kdialog –msgbox "Processo terminato"
################################################ ###################
Qualcuno di voi conosce la licenza per utilizzare i file vocali generati?
Limitazione per copyright e cose correlate. Questo mi interessa perché ho intenzione di utilizzare alcuni di questi file vocali per supportare le persone che stanno per diventare alfabetizzate, fondamentalmente è un progetto senza scopo di lucro.
Ed è che questo strumento ha la migliore intonazione per la lingua spagnola, sfortunatamente in Linux non c'è niente di simile. Mbrola mi ha dato molti problemi a mettermi in piedi insieme a Gespeaker.
Grazie e arrivederci.
Non ne ho idea ... dovrei guardare le licenze di Google Translator.
Lo Script per me non ha funzionato, a quanto pare è un problema legato all'URL, per chi fosse interessato questo è l'URL corretto:
http://translate.google.com/translate_tts?tl=es&q=Hola
Ciao! Ho fatto dei test con il tuo script e durante l'esecuzione, mi ha detto che non riusciva a trovare l'audio, quindi ho inserito l'URL e sembra che il signor Google abbia messo un captcha ...
aggiorna lo script