+ Antworten
Seite 1 von 5 1 2 3 ... LetzteLetzte
Ergebnis 1 bis 10 von 48
  1. #1
    Registriert seit
    Sep 2009
    Beiträge
    199

    Standard Einfache TTS PHP-Class über Google Translate

    Hallo,

    bin zufällig auf diese TTS-Klasse gestoßen. Sie benutzt die SPrachausgabe der Übersetzungsfunktion von google und speichert den Text als mp3.
    Für andere Sprachen einfach die Domain-Endung anpassen.

    Code stammt von dieser Seite: Google's Text to Speech API : A PHP Wrapper Class | maSnun's blog
    PHP-Code:
    <?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}");
            }
        }

        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}");
                return 
    $mp3data;
            } else { return 
    false; }
        }

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

    }
    ?>
    Hier ein Beispiel:

    PHP-Code:
    <?php
    require "tts.php";

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

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

  2. #2
    Registriert seit
    Aug 2005
    Ort
    Fürstenfeldbruck-Aich (Bayern)
    Beiträge
    4,052

    Hallo hirschbrat,

    funktioniert super und ist auch eine Lösung vor alle bei denen die Sprachpakete nicht funktionieren.

    Die Sprache kannst Du auch mit einem angehängten Parameter 'tl=en' für englisch oder 'tl=de' für deutsch ändern.

    PHP-Code:
    http://translate.google.de/translate_tts?tl=en&q={$text} 
    Die Qualität der Stimme läßt sich auch sehen.

    Nur aufpassen beim programmieren. Die API läßt nur max. 100 Zeichen zu.
    Gruß
    Werner

    Komponenten:: Homematic(CCU) 250DP, EATON-MOELLER, 1-Wire, WMRS200, 15" Touchdisplay
    Software::
    IPS V4.x, iMobile, WebFront, Logitech Media Server 7.8.x, SONOS
    Hardware:: IPS-Server: ESXi 6.x, Windows 10 Ent, 4 Kerne, 8GB RAM

  3. #3
    Registriert seit
    Dec 2006
    Ort
    Friedberg (Hessen)
    Beiträge
    1,768

    Schöne Sache. Vielen Dank für den Hinweis.

    Wie kann man da denn Umlaute darstellen. Da kommt bei mir nur Schrott raus.
    Viele Grüße Rainer
    Windows 10,IPS V 5.5 + Testsysteme -- FHZ immer noch-- PiVCCU3 -- Phillips Hue --1-Wire, Anwesendheits-Tracker, ESP-Easy und viele, viele Spielereien , I-View, Rasperry 3,4, Zero, Tinkerboard, Nello, Nuki

  4. #4
    Registriert seit
    Jul 2010
    Ort
    Hamburg
    Beiträge
    182

    Da sich die Stimme nochmals deutlich verbessert hat. Wäre es inzwischen vielleicht auch Interessant ob, bzw. wie man Umlaute ausgeben kann. Hat das jemand schon gelöst?

  5. #5
    Registriert seit
    Oct 2005
    Ort
    Gehrden / Hannover
    Beiträge
    501

    Versien inkl. Umlaute

    Ungetestet:

    PHP-Code:
    <?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(utf8_encode($text));
                
    $this->mp3data file_get_contents("http://translate.google.de/translate_tts?ie=UTF-8&q={$text}");
            }
        }

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

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

    }
    ?>
    FHZ1300 | 2x JeeLink | AVR-NETIO | FS20 | 1-Wire | 2x XBEE Pro | 4x XBEE 2.5 (als Zigbee Mesh) | eDip | 7x Jeenode | JeeNode EtherCard | CUL Stick
    3x Fritz!Box, WHS, XBMC, IPS-Server (Atom)

  6. #6
    Registriert seit
    Jun 2011
    Beiträge
    21

    Standard Funktioniert das noch?

    ich bekommen folgende Fehlermeldung
    Warning: file_get_contents(http://translate.google.de/translate...de&amp;q=Hallo) [function.file-get-contents]: failed to open stream: Ein Systemaufruf ist wider Erwarten fehlgeschlagen.
    in [SpeakGoogel] on line 20

  7. #7
    Registriert seit
    Feb 2009
    Beiträge
    219

    Zitat Zitat von Arcalix Beitrag anzeigen
    ich bekommen folgende Fehlermeldung
    Warning: file_get_contents(http://translate.google.de/translate_tts?tl=de&q=Hallo) [function.file-get-contents]: failed to open stream: Ein Systemaufruf ist wider Erwarten fehlgeschlagen.
    in [SpeakGoogel] on line 20
    Ist da vielleicht ein Schreibfehler drin?

    SpeakGoogel-> SpeakGoogle

    Gruß NBA

  8. #8
    Registriert seit
    Aug 2005
    Ort
    Fürstenfeldbruck-Aich (Bayern)
    Beiträge
    4,052

    Ich denke das ist das selbe Problem wie derzeit überall bei G..gle. Sie andern die Aufrufparameter.
    Gruß
    Werner

    Komponenten:: Homematic(CCU) 250DP, EATON-MOELLER, 1-Wire, WMRS200, 15" Touchdisplay
    Software::
    IPS V4.x, iMobile, WebFront, Logitech Media Server 7.8.x, SONOS
    Hardware:: IPS-Server: ESXi 6.x, Windows 10 Ent, 4 Kerne, 8GB RAM

  9. #9
    Registriert seit
    Jan 2007
    Ort
    Nidda(Hessen)
    Beiträge
    7,337

    HTML-Code:
    http://translate.google.de/translate_tts?ie=UTF-8&q=Hallo%20wie%20geht%20es%20dir
    Geht, bei direkter Eingabe im Browser.
    Gruß Rainer


    Unmögliches wird sofort erledigt, Wunder dauern etwas länger.


  10. #10
    Registriert seit
    Jun 2011
    Beiträge
    21

    Standard Kann das bitte jemand ausprobieren?

    Zitat Zitat von NBA Beitrag anzeigen
    Ist da vielleicht ein Schreibfehler drin?

    SpeakGoogel-> SpeakGoogle

    Gruß NBA
    Ja Aber das ist nicht das Problem, wenn man sich innerhalb von 2 Wochen das komplette Symcon reinzieht betitelt man schon mal ein Script schlampig..

    Zitat Zitat von wgreipl Beitrag anzeigen
    Ich denke das ist das selbe Problem wie derzeit überall bei G..gle. Sie andern die Aufrufparameter.
    Zitat Zitat von RWN Beitrag anzeigen
    HTML-Code:
    http://translate.google.de/translate_tts?ie=UTF-8&q=Hallo%20wie%20geht%20es%20dir
    Geht, bei direkter Eingabe im Browser.
    Genau, bei direkter Eingabe in den Browser funktioniert es bei mir auch mit dem Link aus PHP, kann das jemand mal bei sich ausprobieren(also die Funktion über PHP!) damit ich mir sicher bin das es nicht an meiner Konfiguration liegt? (Welche Medien-Instanzen brauch ich?) In anderen Foren hab ich gelesen das "Google" evtl. den externen Zugriff über PHP sperrt
    Geändert von Arcalix (03.07.11 um 11:41 Uhr)

Ähnliche Themen

  1. PHP und einfache Mathematik.
    Von Tobias81 im Forum Skripte, PHP, SQL
    Antworten: 3
    Letzter Beitrag: 22.10.08, 21:35