Einfache TTS PHP-Class über Google Translate

Ja die Tante Google lallt ein wenig.

Hoffe das gibt sich wieder

Gruß Martin

Hallo hat einer etwas im Bezug auf die langsame Wiedergabe gefunden.
Suche auch schon eine ganze weile, leider ohne erfolgt.

Gruß
astrastar

Leider nein, habe auch schon einiges probiert. Aber ohne Erfolg.

Ich probiere gerade eine Alternative zu finden, aber so richtig fündig im Opensource Bereich bin ich noch nicht geworden.
Zumindest nichts was so einfach anzusteuern und mit dieser Qualität ist.

Gruß
astrastar

Hallo,

kann es sein, dass dies nicht mehr funktioniert ?
Ich habe im Netz einen Hinweis gefunden, dass google die Abfrage seit de 30.11.12 blockiert .

Ich bekomme jedenfalls immer einen 404 Error.

Beste Grü0e

Frank

Hallo,
doch funktioniert noch muss nur die Zeile gegen die hier austauschen.

http://translate.google.de/translate_tts?tl=de&q={$text} 

geht tatsächlich - ich dachte, ich haette das so schonmal probiert, aber da muss wohl ein tippfehler
gewesen sein.

Besten Dank,

Frank

Ich muss mich mal hier einhängen, weil ich bei der Suche nach TTS Lösungen auf diesen Thread gestoßen bin und die Stimme von Google echt super klingt.

Einzige Frage, dic ich habe:

Das Skript läuft sehr gut auf dem Server aber wie bekomme ich die Spachausgabe auf den Client? Ich möchte z.B. erreichen, dass auf dem Tablet im Flur eine Sprachmeldung ausgegeben wird.

Keiner eine Idee?

Ich hatte das mal mit nem Squeezeserver und auf ipad die iPeng App gelöst.

Auf meinem Tablet ist Windows 7 installiert.
Kann ich da einen Mediaplayer installieren und die Sonds darüber ausgeben lassen oder geht das nur auf dem Server?

Hallo,

ich benutze schon seit längerem erfolgreich die Sprachausgabe über Google translate. Doch plötzlich geht das nicht mehr. Ich erhalte folgende Fehlermeldung:

Warning: file_get_contents(http://translate.google.de/translate_tts?tl=de&q=Danke)::slight_smile: failed to open stream: HTTP request failed! HTTP/1.0 503 Service Unavailable

Folgende skriptzeile ist das:

            $this->mp3data = file_get_contents("http://translate.google.de/translate_tts?tl=de&q={$textneu1url}");

In der Fehlermeldung erscheint bei dem & Zeichen ein „amp;“ darf das sein? Denn wenn ich im Browser den Link ohne das „amp;“ eingebe kommt die Ausgabe auch, sonst geht’s nicht.

  1. Mögliches Problem, könnte auch so eine Captcha eingabe sein von Google, diese mußte ich einmalig am PC eingeben. Dann aber nicht mehr. Kann das am IPS Server eine Rolle spielen?

Wer hat damit aktuell Erfahrungen, wie man am besten Sprachtexte ausgibt.

Vielen Dank für eure Hilfe

Der Aufruf hat sich geändert wenn man das Capcha umgehen will. Da muss am Ende noch zusätzlich was angegeben werden. Hab es grade nicht greifbar.

Moin,

Habe leider das selbe Problem, bin aber bisher noch nicht dazugekommen mich damit zu beschäftigen. Vielleicht wird es ja was am Wochenende!

Viele Grüße
Ralf

Wenn ich zu hause bin kopiere ich die Zeile hier hoch.

So, hier wie versprochen die Anpassung der Zeile, welche den Text übergibt:


$this->mp3data = file_get_contents("http://translate.google.de/translate_tts?tl=de&q={$text}&client=t");

Hallo,

vielen Dank für die Hilfe, das klappt wunderbar. Ab jetzt wird wieder gesprochen.

Grüße Helmut

Moin,

auch von mir besten Dank! :slight_smile:

Viele Grüße
Ralf

Hallo Leute,

Ich habs jetzt auch mal ausprobiert und das Skript entsprechend angepasst:

<?php
// FileName: tts.php
/*
 *  A PHP Class that converts Text into Speech using Google's Text to Speech API
 *
 * Author:
 * Abu Ashraf Masnun
 * http://masnun.com
 *
 */

class TextToSpeech {
    public $mp3data;
    function __construct($text="") {
        $text = trim($text);
        if(!empty($text)) {
            $text = urlencode($text);
#            $this->mp3data = file_get_contents("http://translate.google.de/translate_tts?q={$text}");
            $this->mp3data = file_get_contents("http://translate.google.de/translate_tts?tl=de&q={$text}&client=t");
        }
    }

    function setText($text) {
        $text = trim($text);
        if(!empty($text)) {
            $text = urlencode($text);
#            $this->mp3data = file_get_contents("http://translate.google.de/translate_tts?q={$text}");
				$this->mp3data = file_get_contents("http://translate.google.de/translate_tts?tl=de&q={$text}&client=t");
            return $mp3data;
        } else { return false; }
    }

    function saveToFile($filename) {
        $filename = trim($filename);
        if(!empty($filename)) {
            return file_put_contents($filename,$this->mp3data);
        } else { return false; }
    }

}




#require "tts.php";

$path = IPS_GetKernelDir()."/media/";

$tts = new TextToSpeech("Hallo Welt!");
$tts->saveToFile($path."test_tts.mp3");


?>

Bekomme aber immer wieder:

Warning:  file_get_contents(http://translate.google.de/translate_tts?tl=de&q=Hallo+Welt%21&client=t): failed to open stream: HTTP request failed! HTTP/1.0 503 Service Unavailable
 in C:\IP-Symcon\scripts\29961.ips.php on line 19

Habt ihr ne Idee? :confused:

Ist zwar nicht direkt eine Antwort auf deine Frage. Aber ein anderer PHP-Code löst dein Win 8.1 Problem nicht :wink: Bei SonosBY oder IPSSonos wird nichts anderes gemacht als hier. Funktioniert als das eine bei dir nicht unter Win 8.1, dann funktioniert das andere auch nicht. Also ist die Lösung nicht viele verschiedene Skripte zu testen, sondern der Ursache auf die Schliche zu kommen oder auf ein anderes Win umzustellen.

Grüße,
Chris