Text to speech

Startseite Foren Deutsches LiveCode-Forum Text to speech

Ansicht von 4 Antwort-Themen
  • Autor
    Beiträge
    • #21802
      Herby
      Teilnehmer

        Hallo,

        laut Release-Info sollte die Version 9.6 nun auch unter Android einen Text in Sprache ausgeben können.
        ( New text to speech library for iOS, Android and macOS (Indy/Business only) ) <– Indy habe ich.

        Also habe ich dies gleich ausprobiert : revSpeak „Text“
        Der Lautsprecher von meinem Android-Smartphone schweigt aber weiter.

        Kann mir jemand hierzu einen Tipp geben ?

        Beste Grüße Herby

      • #21808
        Klaus Major
        Administrator

          Hast Du es mal mit manueller Inklusion versucht und in der Liste der Inklusionen bei den „Standalone Application Settings“ die „Speech Library“ angehakt?

        • #21826
          Torsten
          Teilnehmer

            Ich kann erstmal bestätigen, dass es mit revSpeak NICHT geht. Kann auch nicht, da revSpeak nicht für mobile zuständig ist. Der korrekte Befehl lautet in 9.6.0: speechSpeakUtterance

            Der funktioniert bei mir sowohl auf MacOs als auf Android aber auch nicht 🙁

            In der Bug-Liste ist er auch noch nicht eingetragen, hab es jetzt mal gemacht.

            Der Befehl scheint noch sehr neu zu sein, es gibt weder auf dem Livecode-Server noch im Forum etwas dazu.

            Beste Grüße
            Torsten

          • #21830
            Klaus Major
            Administrator

              Ah, danke, danach hatte ich gesucht, toll, noch eine platformabhängige Syntax!?

              Der Unterschied zu „revspeak“ scheint wohl zu groß zu sein, um diese Syntax „revspeak…“ auch auf diese neue Engine „zu mappen“!?

              OK, habe es auf meinem Mac ans Laufen bekommen, man muss die Lib zunächst (EINMAL) initialisieren, wohl am besten bei „openstack“ in der Runtime.

              Das klappt hier:

              ...
              put speechInitializeLibrary() into tDummy
              speechSpeakUtterance "Hallo Freunde der Nacht!"
              ...

              Und ja „revspeak“ klappt auch weiterhin.

              Gruß

              Klaus

            • #21832
              Klaus Major
              Administrator

                Korrektur laut Mailingliste:

                on mouseup
                 ## Das ist in der Tat ein HANDLER!
                 speechInitializeLibrary
                end mouseup
                
                ## Diese Nachricht wird bei obigem Befehl gesendet.
                ## Parameter = TRUE oder FALSE
                on speechLibraryInitialized pSuccess
                
                  ## Library erfolgreich initialisiert, sprechen Sie jetzt:
                 if pSuccess then
                  speechSpeakUtterance "Hallo Freunde der Nacht!"
                
                   ## Lib wieder ENTladen, reicht wohl auch EINMAL beim Schliessen des Stacks
                  get speechfinalizeLibrary()
                 end if
                end speechLibraryInitialized

                Gruß

                Klaus

                • #21838
                  Torsten
                  Teilnehmer

                    Hi Klaus,

                    ich habe das Script on Matthias getestet und es funktioniert so NICHT auf Android.

                    Zum Glück hat Panos geantwortet und den richtigen Tipp gegeben: man muss die Library schon beim Starten des Stacks laden und erst wieder rauswerfen, wenn der Stack beendet wird.
                    Ich habe einen Test-Stack gebaut, mit dem man das ausprobieren kann und in dem entsprechenden Thread reingehängt:
                    https://quality.livecode.com/show_bug.cgi?id=22837

                    Also nochmal zusammenfassend:

                    1. Im Stack-Script folgende Handler einfügen

                    on preopenstack
                       speechInitializeLibrary
                    end preopenstack
                    
                    on closestack
                       speechfinalizeLibrary
                    end closestack

                    2. Jetzt kann man irgendwo in seinem Code das entsprechende Kommando einfügen und es spricht 🙂

                    speechSpeakUtterance "Ich gehorche Dir, mein Gebieter"

                    3. WICHTIG: Beim Standalone-Building muss man die Library MANUELL inkludieren, automatisch wird das nnoch nix. Also „Select inclusions for the standalone application“ anlklickn und dann auf der Inklusions-Seite die „Speech Library“ anklicken.

                    Die Speech-Library kann noch mehr, z.B. kann man auch zwischen verschiedenen Stimmen auswählen. Auch das habe ich in meinem TestStack implementiert, einfahc mal anschauen.

                    Ok, wieder was dazugelernt. Ich glaube, an dieser Stelle könnte das Dictionary etwas mehr Informationen enthalten, es erklärt sich nämlich nicht auf der Hilfeseite, dass man die Library überhaupt initialisieren soll und dann auch noch auf diese Weise. Mal sehen, wann das kommt 🙂

                    Ich hoffe, wir haben Herby jetzt ordentlich helfen können.

                    Happy coding,
                    Torsten

              Ansicht von 4 Antwort-Themen
              • Du musst angemeldet sein, um auf dieses Thema antworten zu können.