Skript: Text zu Sprache (Google) vom Terminal

Heute teile ich Ihnen ein sehr nützliches Skript zum Konvertieren von Text in Sprache mithilfe der Sprachmaschine von Google. Der Hauptvorteil dieses Skripts besteht darin, dass es das von Google festgelegte 100-Byte-Limit "umgeht". Um ehrlich zu sein, wird diese Grenze eingehalten, aber alle Zeilen werden automatisch gesendet, was bedeutet, dass diese Einschränkung vom Benutzer nicht bemerkt wird. Die anspruchsvollsten werden jedoch feststellen, dass die Konvertierung nicht die gleiche Qualität aufweist wie die, die wir in Google Translate erhalten können, hauptsächlich aufgrund dieser Begrenzung, und dass es nicht möglich ist, den gesamten Text auf einmal zu übergeben. Positiv zu vermerken ist, dass Sie mit diesem Skript auch die Sprache des zu konvertierenden Textes angeben können.

Lassen Sie uns nach der Klärung sehen, welche Schritte zu befolgen sind.

Treppe

1. - Erstellen Sie eine Datei mit dem Namen t2s.sh.

2. - Kopieren Sie den folgenden Inhalt:

#! / bin / bash ################################# # Speech Script von Dan Fountain # # Geändert von UsemosLinux # # TalkToDanF@gmail.com # ################################## INPUT = $ * STRINGNUM = 0 ary = ($ {INPUT: 2}) echo "---------------------------" echo "Speech Script von Dan Fountain" echo "TalkToDanF @ gmail.com "echo" --------------------------- "für die Eingabe von" $ {! ary [@]} "do SHORTTMP [ $ STRINGNUM] = "$ {SHORTTMP [$ STRINGNUM]} $ {ary [$ key]}" LENGTH = $ (echo $ {# SHORTTMP [$ STRINGNUM]}) #echo "Wort: $ key, $ {ary [$ Schlüssel]} "#echo" Hinzufügen zu: $ STRINGNUM "if [[" $ LENGTH "-lt" 100 "]]; dann #echo neue Zeile starten SHORT [$ STRINGNUM] = $ {SHORTTMP [$ STRINGNUM]} sonst STRINGNUM = $ (($ STRINGNUM + 1)) SHORTTMP [$ STRINGNUM] = "$ {ary [$ key]}" SHORT [ $ STRINGNUM] = "$ {ary [$ key]}" fi für Eingabe in "$ {! SHORT [@]}" do #echo "Zeile: $ key ist: $ {SHORT [$ key]}" echo " Spielzeile: $ (($ key + 1)) von $ (($ STRINGNUM + 1)) "mplayer" http://translate.google.com/translate_ttsdh = UTF-8 &tl = $ {1} & q = $ {SHORT [$ key]} "erledigt

3. - Erteilen Sie dem Skript Ausführungsberechtigungen:

sudo chmod + x t2s.sh.

4. - Führen Sie das als Parameter übergebene Skript aus: a) den dem Text entsprechenden Sprachcode, b) den zu konvertierenden Text. Zum Beispiel:

./t2s.sh de Dies ist ein sehr interessanter Text zum Konvertieren.
Tipp: Bei einigen Terminalemulatoren können Sie Text durch einfaches Ziehen einfügen. So ist es möglich, einen Text in Firefox auszuwählen und auf das Terminal zu ziehen.

Das war's, hoffe es gefällt euch.


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.

  1.   Yoyo sagte

    Wie cool, vielen Dank 😉

    Und was für eine schöne Stimme das Mädchen hat, ich glaube ich habe mich verliebt 😛

    1.    Darkguzz sagte

      Entschuldigung, können Sie mir mit Chinesisch helfen? Es erkennt keine chinesischen Schriftzeichen, nur Pinyin.

  2.   Shadow sagte

    Dies ist gut für ein Skript, das die E-Mails überprüft, oder für einen personalisierten Alarm, der Ihnen beim Aufwachen die Prognose und die ausstehenden Nachrichten xD anzeigt

  3.   Yoyo sagte

    Hier habe ich ein Testvideo gemacht 😛 https://www.youtube.com/watch?v=O3IeK7PjA_0

    1.    Lass uns Linux benutzen sagte

      Gut! Vielen Dank!

  4.   Benctrox sagte

    Es klingt sehr gut, ich musste nur mpg123 🙂 installieren

  5.   Porter sagte

    Tube, um mpg123 zu installieren, aber es ist cool, wenn es einige Wörter nicht akzeptiert, sagt es einen richtigen Tilde-Buchstaben usw.

    EH EH

  6.   paul honorato sagte

    Die Virendatenbank wurde aktualisiert (?)

    1.    jalbrhcp sagte

      apt update && ./t2.sh de Die Virendatenbank wurde aktualisiert

  7.   Udo sagte

    Hahaha Ausgezeichnet, ich habe schon einige Verwendungszwecke dafür, sinnliche Stimme ohne Zweifel =), danke fürs Teilen.

  8.   Jörg Moratilla sagte

    Als Mac OSX-Benutzer war es mir nicht möglich, das Skript zu verwenden, da ich mpg123 nicht aktiviert habe. Wenn Sie das Skript ändern und VLC verwenden, können wir es unter Mac OS X ordnungsgemäß verwenden.

    http://pastebin.com/C2Mkp1Qy

    1.    Rolo sagte

      Das Problem ist, dass vlc sicher eingeschaltet bleibt und nicht geschlossen wird, wenn die Ausführung abgeschlossen ist. Sie können cvlc verwenden, um das Öffnen der grafischen Oberfläche zu verhindern

      1.    Rolo sagte

        es könnte gesetzt werden
        cvlc –play-and-exit «https://translate.google.com/translate_tts?tl=$[$key]}»
        so dass es am Ende der Reproduktion schließt

  9.   neysonv sagte

    Hallo Leute, ich bekomme diesen Fehler. Mal sehen, ob mir jemand sagt, wo das Problem liegt
    Spiellinie: 1 von 1
    HTTP-Anforderung fehlgeschlagen: 404 Nicht gefunden
    [mpg123.c: 610] Fehler: Zugriff auf http-Ressource http://translate.google.com/translate_tts?tl=hola&q= das ist gescheitert.

    1.    neysonv sagte

      [Code] Spielzeile: 1 von 1
      HTTP-Anforderung fehlgeschlagen: 404 Nicht gefunden
      [mpg123.c: 610] Fehler: Zugriff auf http-Ressource http://translate.google.com/translate_tts?tl=hola&q= das ist gescheitert. [/ code]

    2.    Lass uns Linux benutzen sagte

      Das Problem ist, dass Sie das Skript falsch verwenden.
      Wenn Sie es ausführen, müssen Sie die Sprache des Textes als ersten Parameter übergeben, wie im Beispiel im Beitrag gezeigt.
      Ich gebe Ihnen ein anderes Beispiel:
      ./t2s.sh in Dies ist ein einfaches Beispiel.
      Beachten Sie, dass nach ts2.sh "en" folgt (was "Englisch" bedeutet, dh Englisch). Verwenden Sie für Spanisch "es" und dann die Phrase in der Sprache, die Sie konvertieren möchten.
      Umarmung! Paul.

  10.   anonym sagte

    Sie kennen den Sprachbefehl nein? hehe

    espeak -v ist-das «hallo»

    1.    Lass uns Linux benutzen sagte

      Ja, aber nicht dasselbe. Diese Stimme ist so viel besser. 🙂

      1.    anonyme Notiz sagte

        sind wir uns einig!
        Viele Grüße!

  11.   Sara sagte

    Für diejenigen, die Probleme mit mpg123 -q haben oder es nicht mögen, können Sie zu mplayer wechseln

    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]}»

    1.    Guido sagte

      Besser "mplayer -really-quiet", damit die Ausgabe nicht mit Text gefüllt wird

  12.   Ralf sagte

    Eine sehr gute Idee, Google für meine Anwendungen zu verwenden, passt mir wie angegossen.
    http://github.com/alfa30/t2v

  13.   Darkguzz sagte

    Noch eine Frage; Könnte mir jemand sagen, wie man das ausgegebene Audio aufzeichnet ???

    1.    Jose GDF sagte

      Ich antworte dir selbst, weil ich es gerade bekommen habe. Mit mpg123 habe ich Zeile 38 des Skripts folgendermaßen geändert:

      mpg123 -q -w audio.wav «http://translate.google.com/translate_tts?tl=$[1[&q=$[SHORT[$key]}»

      Ich habe -w audio.wav hinzugefügt. Dadurch wird eine WAV-Datei mit dem Audio der Phrase erstellt, aber da ich sie verlassen habe, ist sie nicht zu hören. Wenn Sie den Satz auch hören möchten, müssen Sie eine weitere Zeile hinzufügen. Sie würden beide so aussehen:

      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]}"

      Sicherlich könnte es auf eine andere effizientere und sauberere Weise gemacht werden, aber zumindest funktioniert es für mich.

      1.    Darkguzz sagte

        Ausgezeichneter José GDF, ich habe Ihre Methode mit sehr guten Ergebnissen ausprobiert, Grüße.

      2.    Sojabohnenöl sagte

        Um Datenverkehr in der zweiten Ausführung zu sparen, können Sie die in der ersten generierte WAV-Datei reproduzieren

      3.    Jose GDF sagte

        Nun ja, mit einem Player, den wir installiert haben. Mit VLC Player wäre dies beispielsweise:

        vlc-audio.wav

        Nun, wer vlc sagt, sagt jeder andere Spieler, einschließlich derer, die per Terminal arbeiten.

        Um zu vermeiden, dass die Datei bei jeder Verwendung des Skripts überschrieben wird, sollte eine Variable für den Namen verwendet werden. Name, den der Benutzer vor dem Start eingeben würde (Befehl lesen) ... Aber das würde die Locke kräuseln 😀

  14.   drako sagte

    Ich habe es in PHP gemacht (um Audios für ein Asterisk-Telefonsystem zu erstellen *)


    $ url = 'http://translate.google.com/translate_tts?ie=UTF-8&q={query}% 0A & tl = is & prev = input ';

    if (count ($ argv) <= 1) {
    $ name = basename ($ argv [0]);
    sterben ($ name. 'Verwendung:'. $ name. '
    }
    array_shift ($ argv);
    $ query = implode ('', $ argv);
    $ filename = str_replace (Array ('', ',', '.'), '-', $ query);
    $ filename = str_replace ('-', '-', $ filename);

    $ 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);
    $ result = curl_exec ($ ch);
    curl_close ($ ch);

    $ path = getcwd (). '/'. $ filename;
    file_put_contents ($ path. '. mp3', $ result);
    @exec ("sox {$ path} .mp3 -b 16 -r 8000 -t wavpcm {$ path} .wav");
    @unlink ($ path. '. mp3');

    1.    Darkguzz sagte

      Wie wäre es, wenn ich es bereits geschafft hätte, das ausgegebene Audio mit diesem Befehl aufzunehmen:
      arecord ~ ​​/ zhongwen.mp3 & ./t2s.sh zh ni hao; fg
      und am Ende Strg + C, um die Aufnahme zu beenden.

      Ich hatte noch nie PHP benutzt
      Aber beim Laufen:
      php5 text-to-language.php ist Hallo
      Die Konsola beherbergt dies:
      sox FAIL-Formate: kein Handler für die Dateierweiterung `mp3 '

      Jeder Beitrag wird sehr geschätzt, ich werde es später noch einmal versuchen.

  15.   Kirian sagte

    2 Apps für Google Sprachübersetzer + Übersetzung von Text in Sprache:
    http://www.linuxhispano.net/2014/05/29/traductor-de-google-voz/

  16.   José sagte

    Ich denke, es ist der beste Weg zu konvertieren, die Stimme ist nicht so schlecht wie die anderen Optionen für Linux> _
    Gibt es eine Möglichkeit, eine Nur-Text-Datei zu lesen?
    Es wäre sehr nützlich, ganze Bücher in Audio umzuwandeln

  17.   Chuflas sagte

    Nun, es funktioniert nicht bei mir, ich weiß nicht warum, das kommt heraus:

    xxxxx: ~ / Documents / Linux $ ./t2s.sh ist hallo

    ---------
    Speech Script von Dan Fountain
    TalkToDanF@gmail.com
    ---------
    Spiellinie: 1 von 1
    http_open: HTTP / 1.0 400 Bad Request
    http://translate.google.com: Keine solche Datei oder Ordner

    Ich habe das mpg123 installiert und ich habe kleine Tests gemacht und nichts…. Danke im Voraus

  18.   Ignacio Cruz Martinez sagte

    Hallo, dieses Skript hat mir sehr gute Dienste geleistet, sowohl um den Ton zu hören als auch um die Wörter des Übersetzers aufzunehmen.

    Tatsächlich habe ich das Skript geändert, um es an meine Bedürfnisse anzupassen: Transformiere eine Liste von Wörtern im Text (Lemario) in Sprache; Speichern Sie meine Stimme in WAV, konvertieren Sie zu Ogg und benennen Sie sie nach dem gelesenen Wort.

    Ich habe dies in KDE mit Kdialog getan, um den Pfad anzugeben, in dem sich die Datei mit der Wortliste befindet, und das Verzeichnis, in dem das Sprachaudio gespeichert werden soll.

    Wenn die Konvertierung von WAV in OGG abgeschlossen ist, werden zwei Ordner erstellt, in denen die WAV auf der einen Seite und die Ogg auf der anderen Seite gespeichert sind.

    Zuerst machte es mich wütend, weil es die Wörter mit Akzenten nicht richtig las, aber ich fand, dass Sie "es & ie = UTF8" in den Code einfügen müssen. Für einen Moment habe ich die Zeichenkodierung vergessen.

    Ich überlasse Ihnen den Code des Skripts, das ich erstellt habe, falls es Ihnen hilft:

    #################################################### ########################

    #! / Bin / bash

    ####################################
    # Text-to-Speech-Vortrag #
    # Angepasst von Ignacio Cruz Martínez #
    # die mail ist geheim xD #
    ####################################

    Dialogfeld #KDE zur Angabe des Pfads und des Namens von Lemmary
    sounarchivo = $ (kdialog –inputbox «Geben Sie den Pfad und den Namen der Datei ein (mit einer Erweiterung, falls vorhanden):»)

    Dialogfeld #KDE, ​​um den Zielordner für Sprachdateien anzugeben
    path = $ (kdialog –inputbox «Geben Sie den Pfad zum Speichern des Voice-Audios ein:»)

    # bis cat werden alle Zeilen der Textdatei gelesen, jede Zeile besteht aus einem einzelnen Wort
    für ich in $ (Katze $ Soja-Datei)
    do
    echo $ i

    # Konvertieren Sie mit Google Übersetzer in Sprache. Vergessen Sie nicht die Codierung, damit Akzente gelesen werden
    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"

    # mit ffmpeg WAV-Dateien in ogg konvertieren
    ffmpeg -i "$ path" $ i.wav -acodec libvorbis "$ path" $ i.ogg
    erledigt

    #mit diesen Zeilen werden die Ordner erstellt, um die Sprachdateien in WAV oder OGG zu organisieren
    mkdir "$ path" WAV
    mv "$ path" *. wav "$ path" WAV

    mkdir "$ path" OGG
    mv "$ path" *. ogg "$ path" OGG

    Dialogfeld #KDE, ​​um anzuzeigen, dass der Auftrag abgeschlossen ist
    kdialog –msgbox 'Prozess beendet'

    #################################################### #####################

    Hat jemand von Ihnen Kenntnisse über die Lizenz zur Verwendung der generierten Sprachdateien?

    Einschränkung des Urheberrechts und verwandter Dinge. Das interessiert mich, weil ich vorhabe, einige dieser Sprachdateien zu verwenden, um Menschen zu unterstützen, die lesen und schreiben können. Im Grunde handelt es sich um ein gemeinnütziges Projekt.

    Und es ist so, dass dieses Tool die beste Intonation für die spanische Sprache hat, leider gibt es unter Linux nichts Vergleichbares. Mbrola hat mir viel Mühe gegeben, mich zusammen mit Gespeaker einzurichten.

    Danke und wir sehen uns.

    1.    Lass uns Linux benutzen sagte

      Keine Ahnung ... müsste sich die Google Übersetzer-Lizenzen ansehen.

  19.   Armando sagte

    Das Skript hat bei mir nicht funktioniert, anscheinend ist es ein Problem im Zusammenhang mit der URL. Für diejenigen, die interessiert sind, ist dies die richtige URL:
    http://translate.google.com/translate_tts?tl=es&q=Hola

  20.   Juajo sagte

    Hallo! Ich habe Tests mit Ihrem Skript durchgeführt und bei der Ausführung wurde mir mitgeteilt, dass das Audio nicht gefunden werden konnte. Daher habe ich die URL eingegeben und es scheint, dass Herr Google ein Captcha eingefügt hat ...

  21.   ' sagte

    Aktualisieren Sie das Skript