Aujourd'hui, je partage avec vous un script très utile pour convertir du texte en parole à l'aide du moteur vocal de Google. Le principal avantage de ce script est qu'il "contourne" la limite de 100 octets imposée par Google. En fait, pour être honnête, il respecte cette limite mais envoie toutes les lignes automatiquement, donc cette limitation passe inaperçue par l'utilisateur. Les plus exigeants remarqueront cependant que la conversion n'est pas de la même qualité que celle que l'on peut obtenir dans Google Translate, principalement en raison de cette limite et qu'il n'est pas possible de passer tout le texte d'un seul coup. Comme point positif, il faut ajouter que ce script permet également de spécifier la langue du texte à convertir.
Après avoir clarifié, voyons quelles sont les étapes à suivre.
Pas à suivre
1. - Créez un fichier avec le nom t2s.sh.
2. - Copiez le contenu suivant:
#! / bin / bash ############################### # Speech Script par Dan Fountain # # Modifié par UsemosLinux # # TalkToDanF@gmail.com # ############################## INPUT = $ * STRINGNUM = 0 ary = ( $ {INPUT: 2}) echo "---------------------------" echo "Script de discours de Dan Fountain" echo "TalkToDanF @ gmail .com "echo" --------------------------- "pour la clé dans" $ {! ary [@]} "faire SHORTTMP [$ STRINGNUM] = "$ {SHORTTMP [$ STRINGNUM]} $ {ary [$ key]}" LENGTH = $ (echo $ {# SHORTTMP [$ STRINGNUM]}) #echo "mot: $ clé, $ {ary [$ clé ]} "#echo" ajout à: $ STRINGNUM "if [[" $ LENGTH "-lt" 100 "]]; puis #echo commençant une nouvelle ligne SHORT [$ STRINGNUM] = $ {SHORTTMP [$ STRINGNUM]} else STRINGNUM = $ (($ STRINGNUM + 1)) SHORTTMP [$ STRINGNUM] = "$ {ary [$ key]}" SHORT [ $ STRINGNUM] = "$ {ary [$ key]}" fi done for key in "$ {! SHORT [@]}" do #echo "line: $ key is: $ {SHORT [$ key]}" echo " Ligne de lecture: $ (($ key + 1)) sur $ (($ STRINGNUM + 1)) "mplayer" http://translate.google.com/translate_tts? ie = UTF-8 &tl = $ {1} & q = $ {SHORT [$ key]} "terminé
3. - Accordez les autorisations d'exécution au script:
sudo chmod + x t2s.sh
4. - Exécutez le script en passant comme paramètres: a) le code de langue correspondant au texte, b) le texte à convertir. Par exemple:
./t2s.sh fr C'est un texte très intéressant à convertir.
Voilà, j'espère que vous l'apprécierez.
Comme c'est cool, merci beaucoup 😉
Et quelle belle voix a la fille, je pense que je suis tombée amoureuse 😛
Excusez-moi, pouvez-vous m'aider avec le chinois? Je ne peux pas détecter les caractères chinois, seulement le pinyin.
C'est bon comme pour un script qui vérifie le courrier ou pour une alarme personnalisée qui au réveil vous indique les prévisions et les messages en attente xD
Ici j'ai fait une vidéo de test 😛 https://www.youtube.com/watch?v=O3IeK7PjA_0
Bien! Je vous remercie!
Cela semble très bien, je n'ai eu qu'à installer mpg123 🙂
Tube pour installer mpg123 mais c'est cool, que s'il n'accepte pas certains mots, il dit une bonne lettre de graduation, etc.
EH EH
La base de données virale a été mise à jour (?)
apt update && ./t2.sh fr La base de données virale a été mise à jour
Hahaha Excellent, j'en ai déjà quelques usages, voix sensuelle sans aucun doute =), merci pour le partage.
En tant qu'utilisateur Mac OSX, il ne m'a pas été possible d'utiliser le script car je n'ai pas mpg123, donc en modifiant le script et en utilisant VLC, nous pouvons le laisser fonctionner correctement sous Mac OS X.
http://pastebin.com/C2Mkp1Qy
le problème est que vlc reste sûrement activé et ne se ferme pas quand il a fini de s'exécuter et vous pouvez utiliser cvlc pour empêcher l'interface graphique de s'ouvrir
ça pourrait être mis
cvlc –play-and-exit «https://translate.google.com/translate_tts?tl=$ái1-lex.europa.eu&q=$[SHORT[$key]}»
pour qu'il se ferme à la fin de la reproduction
Salut les gars, j'ai cette erreur, voyons si quelqu'un me dit quel est le problème
Ligne de jeu: 1 sur 1
Échec de la requête HTTP: 404 introuvable
Erreur [mpg123.c: 610]: accès à la ressource http http://translate.google.com/translate_tts?tl=hola&q= l'échec.
[code] Ligne de lecture: 1 sur 1
Échec de la requête HTTP: 404 introuvable
Erreur [mpg123.c: 610]: accès à la ressource http http://translate.google.com/translate_tts?tl=hola&q= l'échec. [/ code]
Le problème est que vous utilisez mal le script.
Lorsque vous l'exécutez, vous devez passer la langue du texte comme premier paramètre, comme indiqué dans l'exemple de l'article.
Je vous donne un autre exemple:
./t2s.sh in Ceci est un exemple simple.
Notez qu'après ts2.sh, il suit "en" (qui signifie "anglais", c'est-à-dire anglais). Pour l'espagnol, utilisez «es», puis la phrase dans cette langue que vous souhaitez convertir.
Étreinte! Paul.
vous connaissez la commande de parole non? hehe
espeak -v est-le «bonjour»
Oui mais pas pareil. Cette voix est tellement meilleure. 🙂
nous sommes d'accord!
Salutations!
Pour ceux qui ont des problèmes avec mpg123 -q ou qui ne l'aiment pas, vous pouvez passer à 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]}»
Meilleur "mplayer -really-quiet" pour qu'il ne remplisse pas la sortie avec du texte
Une bonne idée d'utiliser google pour mes applications me va comme un gant.
http://github.com/alfa30/t2v
Une question de plus; Quelqu'un pourrait-il me dire comment enregistrer l'audio de sortie ???
Je vous réponds moi-même, parce que je viens de l'avoir. En utilisant mpg123, j'ai modifié la ligne 38 du script, ressemblant à ceci:
mpg123 -q -w audio.wav «http://translate.google.com/translate_tts?tl=$[1[&q=$[SHORT[$key]}»
J'ai ajouté -w audio.wav. Cela crée un fichier wav avec l'audio de la phrase, mais comme je l'ai laissé, il n'est pas entendu. Si vous souhaitez également entendre la phrase, vous devrez ajouter une autre ligne. Vous ressembleriez tous les deux à ceci:
mpg123 -q -w audio.wav «http://translate.google.com/translate_tts?tl=$[1-lex.europa.eu&q=$[SHORT[$key]}» &
mpg123 -q «http://translate.google.com/translate_tts?tl=$[1-lex.europa.eu&q=$[SHORT[$key]}»
Cela pourrait sûrement être fait d'une autre manière plus efficace et plus propre, mais au moins cela fonctionne pour moi.
Excellent José GDF, j'ai essayé votre méthode avec de très bons résultats, salutations.
Pour économiser du trafic dans la deuxième exécution, vous pouvez reproduire le .wav que vous avez généré dans la première
Eh bien oui, en utilisant un lecteur que nous avons installé. Par exemple, avec VLC Player, ce serait:
vlc-audio.wav
Eh bien, qui dit vlc, dit tout autre joueur, y compris ceux qui fonctionnent par terminal.
Et pour éviter d'écraser le fichier à chaque fois que le script est utilisé, une variable doit être utilisée pour le nom. Nom que l'utilisateur mettrait (commande de lecture) avant de commencer ... Mais ce serait boucler la boucle 😀
Je l'ai fait en PHP (pour créer des audios pour un central téléphonique Asterisk *)
$ url = 'http://translate.google.com/translate_tts?ie=UTF-8&q={requête}% 0A & tl = est & prev = entrée ';
si (compte ($ argv) <= 1) {
$ nom = nom de base ($ argv [0]);
die ($ name. 'usage:'. $ name. '
}
array_shift ($ argv);
$ query = implode ('', $ argv);
$ filename = str_replace (array ('', ',', '.'), '-', $ query);
$ filename = str_replace ('-', '-', $ filename);
$ url = str_replace ('{requête}', rawurlencode ($ query), $ url);
$ Ch = curl_init ();
curl_setopt ($ ch, CURLOPT_URL, $ url);
curl_setopt ($ ch, CURLOPT_HEADER, 0);
curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, vrai);
$ résultat = curl_exec ($ ch);
curl_close ($ ch);
$ chemin = getcwd (). '/'. $ nom de fichier;
file_put_contents ($ chemin. '. mp3', $ résultat);
@exec ("sox {$ chemin} .mp3 -b 16 -r 8000 -t wavpcm {$ chemin} .wav");
@unlink ($ chemin. '. mp3');
Et si j'ai déjà réussi à enregistrer l'audio de sortie avec cette commande:
arecord ~ / zhongwen.mp3 & ./t2s.sh zh ni hao; fg
et à la fin ctrl + c pour arrêter l'enregistrement.
Je n'avais jamais utilisé php
Mais lors de l'exécution:
php5 text-to-speech.php est Hello
la konsola héberge ceci:
formats sox FAIL: pas de gestionnaire pour l'extension de fichier `mp3 ′
Toute contribution est grandement appréciée, je réessayerai plus tard.
2 applications pour le traducteur de langue Google + la traduction de texte en parole:
http://www.linuxhispano.net/2014/05/29/traductor-de-google-voz/
Je pense que c'est le meilleur moyen de convertir, la voix n'est pas aussi mauvaise que les autres options pour Linux> _
Existe-t-il un moyen de le faire lire un fichier texte brut?
Il serait très utile de convertir des livres entiers en audio
Eh bien, ça ne marche pas pour moi, je ne sais pas pourquoi, ça sort:
xxxxx: ~ / Documents / Linux $ ./t2s.sh est bonjour
---------
Script de discours par Dan Fountain
TalkToDanF@gmail.com
---------
Ligne de jeu: 1 sur 1
http_open: HTTP / 1.0 400 Requête incorrecte
http://translate.google.com: Aucun fichier ou répertoire de ce nom
J'ai installé le mpg123 et j'ai fait de petits tests et rien…. Merci d'avance
Bonjour, ce script m'a très bien servi, à la fois pour écouter le son et pour enregistrer les paroles du traducteur.
En fait, j'ai modifié le script pour l'adapter à un besoin que j'ai: Transformer une liste de mots dans un texte (lemario) en parole; enregistrer ma voix en wav, convertir en ogg et les nommer selon le mot lu
J'ai fait cela dans KDE en utilisant Kdialog pour spécifier le chemin où se trouve le fichier avec la liste de mots et le répertoire où je veux que l'audio vocal soit enregistré.
Lorsque la conversion WAV en OGG est terminée, il crée deux dossiers dans lesquels le wav d'un côté et l'ogg de l'autre sont stockés.
Au début, j'étais en colère parce que je n'avais pas lu correctement les mots avec des accents, mais j'ai trouvé qu'il fallait ajouter "es & ie = UTF8" dans le code. Pendant un moment, j'ai oublié l'encodage des caractères.
Je vous laisse le code du script que j'ai fait au cas où cela vous aiderait:
################################################ #####################
#! / Bin / bash
###############################
# Conférence de synthèse vocale #
# Adapté par Ignacio Cruz Martínez #
# le mail est secret xD #
###############################
Boîte de dialogue #KDE pour spécifier le chemin et le nom du lemmary
soyunarchivo = $ (kdialog –inputbox «Entrez le chemin et le nom du fichier (avec une extension s'il en a une):»)
Boîte de dialogue #KDE pour spécifier le dossier de destination des fichiers vocaux
path = $ (kdialog –inputbox «Entrez le chemin pour enregistrer l'audio vocal:»)
# par cat toutes les lignes du fichier texte sont lues, chaque ligne se compose d'un seul mot
pour i en $ (cat $ soyunfile)
do
echo $ i
# conversion en parole en utilisant google translate, n'oubliez pas l'encodage pour qu'il lit les accents
mpg123 -q -w "$ chemin" $ 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"
# utiliser ffmpeg pour convertir des fichiers wav en ogg
ffmpeg -i "$ chemin" $ i.wav -acodec libvorbis "$ chemin" $ i.ogg
fait
# avec ces lignes les dossiers sont créés pour organiser les fichiers vocaux en WAV ou OGG
mkdir "$ chemin" WAV
mv "$ chemin" *. wav "$ chemin" WAV
mkdir "$ chemin" OGG
mv "$ chemin" *. ogg "$ chemin" OGG
Boîte de dialogue #KDE pour indiquer que le travail est terminé
kdialog –msgbox 'Processus terminé'
################################################ ###################
Maintenant, est-ce que l'un de vous a des connaissances sur la licence d'utilisation des fichiers vocaux générés?
Limitation du droit d'auteur et des choses connexes. Cela m'intéresse car je prévois d'utiliser certains de ces fichiers vocaux pour soutenir les personnes qui vont devenir alphabétisées, c'est essentiellement un projet à but non lucratif.
Et c'est que cet outil a la meilleure intonation pour la langue espagnole, malheureusement sous Linux il n'y a rien de similaire. Mbrola m'a donné beaucoup de mal à monter avec Gespeaker.
Merci et à bientôt.
Aucune idée ... il faudrait regarder les licences Google Translator.
Le script n'a pas fonctionné pour moi, apparemment c'est un problème lié à l'URL, pour ceux qui sont intéressés c'est l'URL correcte:
http://translate.google.com/translate_tts?tl=es&q=Hola
Salut! J'ai fait des tests avec votre script et lors de son exécution, il m'a dit qu'il ne pouvait pas trouver l'audio, donc j'ai entré l'URL et il semble que M. google a mis un captcha ...
mettre à jour le script