# This file is part of Dragonfly.
# (c) Copyright 2007, 2008 by Christo Butcher
# Licensed under the LGPL.
# Dragonfly 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 3 of the License, or
# (at your option) any later version.
# Dragonfly 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 Dragonfly. If not, see
Dictation container base class
This class is used to store the recognized results of dictation elements
within voice-commands. It offers access to both the raw spoken-form words
and be formatted written-form text.
The formatted text can be retrieved using
:meth:`~DictationContainerBase.format` or simply by calling ``str(...)``
on a dictation container object. A tuple of the raw spoken words can be
retrieved using :attr:`~DictationContainerBase.words`.
# Dictation base class -- base class for SR engine-specific containers
# of dictated words.
Container class for dictated words as recognized by the
This base class implements the general functionality of dictation
container classes. Each supported engine should have a derived
dictation container class which performs the actual engine-
specific formatting of dictated text.
def __init__(self, words):
A dictation container is created by passing it a sequence
of words as recognized by the backend SR engine.
Each word must be a Unicode string.
:param words: A sequence of Unicode strings.
:type words: sequence-of-unicode
self._words = tuple(words)
self._formatted = None
if self._formatted is None:
self._formatted = self.format()
message = u"%s(%s)" % (self.__class__.__name__,
""" Sequence of the words forming this dictation. """
[docs] def format(self):
""" Format and return this dictation as a Unicode object. """
return u" ".join(self._words)