This is a Python interface to SSIP.

Full range of SSIP commands is implemented including callback handling.  See
the section "Python API" in Speech Dispatcher documentation for more
information.

If you have any questions, suggestions, etc., feel free to contact us at the
mailing list <speechd-discuss@nongnu.org>.

-- Tomas Cerha <cerha@freebsoft.org>


Copyright (C) 2008 Brailcom, o.p.s

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.
