Giter Club home page Giter Club logo

remotetts's Introduction

RemoteTTS

The software realises a text-to-speech application using the operating systems TTS features. The text is provided via a TCP/UDP interface.
In addition, the software reports is state depending on the hosts power state, e.g. "bye-bye" when the host is goind to suspend or "alive" after it resumed to indicate the availability of the service. Therefore, <ServerRunning>1</ServerRunning> resp. <ServerRunning>0</ServerRunning> is send while 1 represents service alive and 0 indicates a shutdown / bye-bye of the service.

Using MS Windows, the program can detect resume and suspend events on its own an reports the status. This feature is not implemented for linux os.
Following a StackOverFlow thread On linux you can put the following shell script in /etc/pm/sleep.d which executes a program with arguments. You can start a program and notify your main application in some way :

#!/bin/bash
case $1 in
suspend)
    #suspending to RAM
    /Path/to/Program/remotetts --byebye
    ;;
resume)
    #resume from suspend
    sleep 3
    /Path/to/Program/remotetts --alive
    ;;
esac

The software provides a simple GUI for configuration.

A notification sound can be played prior to speak the submitted text (attention getter).

The project moved from SourceForge to GitHub end of February 2024.

Commandline Arguments

Synopsis

remotetts [argument]

Description

*No argument*   Start with GUI

--alive   Sending *resumed* messag and exit

--byebye   Sendimng *going to suspend* message and exit.

IP-Interface

The software takes incoming ASCII strings, starting with a trigger word.

Some special characters can be submitted using the HTML-Unicode replacement codes:

HTML-Code Special Character
&#176; °
&#178; ²
&#179; ³
&#246; ö
&#252; ü
&#196; Ä
&#214; Ö
&#220; Ü
&#223; ß

Synopsis

[trigger][argument]

Description

Trigger Argument Example message Note
PLAY WAV file to be played PLAYsound.wav The path to search for audio files can be configured.
SAY Text to be saied SAYHello World All incomming txts are stored in a pipe. If the system receives a SAY command and is not already speaking / playing, an introsoud is put before the SAY-text.

Dvelopment Environment

  • Qt 6.5.3 and MinGw

remotetts's People

Contributors

en3rgy avatar

Watchers

 avatar

remotetts's Issues

Implement SSDP for service status

Implement SSDP alive and bye-bye messages for transmitting the alive status, following the UPnP Stamdard §1.2

Multicast discovery messages to 239.255.255.250:1900.

Header:

NOTIFY * HTTP/1.1 
HOST: 239.255.255.250:1900 
CACHE-CONTROL: max-age = 3600 *(not for bye bye)*
LOCATION: http://192.168.0.10:8080/description.xml *(not for bye bye)*
NT: upnp:rootdevice
NTS: ssdp:byebye *or* ssdp:alive
SERVER: unix/5.1 UPnP/1.1 MyProduct/1.0 *(not for bye bye)*
USN: ...
BOOTID.UPNP.ORG: ...
CONFIGID.UPNP.ORG: ...
SEARCHPORT.UPNP.ORG: ... *(not for bye bye)*



HTTP-Body is empty, but the HTTP-Header has to be closed with an empty line.

Header fileds:

  • NT: Notification Type is either a device type (eg. urn:schemas-wifialliance-org:device:WFADevice:1), a service type (eg. urn:schemas-wifialliance-org:service:WFAWLANConfig:1) a device identifier (eg. uuid:a6df5df0-8662-491d-a89e-ffebc5d55db8) or upnp:rootdevice (advertised for all devices)
  • NTS: Notifcation Sub-Type, e.g. ssdp:alive, ssdp:byebye, ssdp:update
  • Location: URI of the UPnP device description (XML file), e.g. http://192.168.0.10:8080/description.xml
  • USN: Unique Service Name

Further reading: (https://wiki.osdev.org/Universal_Plug-n-Play)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.